diff options
Diffstat (limited to 'gitlab/v4')
-rw-r--r-- | gitlab/v4/objects/__init__.py | 1 | ||||
-rw-r--r-- | gitlab/v4/objects/keys.py | 26 |
2 files changed, 27 insertions, 0 deletions
diff --git a/gitlab/v4/objects/__init__.py b/gitlab/v4/objects/__init__.py index 3317396..2dd7973 100644 --- a/gitlab/v4/objects/__init__.py +++ b/gitlab/v4/objects/__init__.py @@ -43,6 +43,7 @@ from .groups import * from .hooks import * from .issues import * from .jobs import * +from .keys import * from .labels import * from .ldap import * from .members import * diff --git a/gitlab/v4/objects/keys.py b/gitlab/v4/objects/keys.py new file mode 100644 index 0000000..7f8fa0e --- /dev/null +++ b/gitlab/v4/objects/keys.py @@ -0,0 +1,26 @@ +from gitlab.base import RESTManager, RESTObject +from gitlab.mixins import GetMixin + +__all__ = [ + "Key", + "KeyManager", +] + + +class Key(RESTObject): + pass + + +class KeyManager(GetMixin, RESTManager): + _path = "/keys" + _obj_cls = Key + + def get(self, id=None, **kwargs): + if id is not None: + return super(KeyManager, self).get(id, **kwargs) + + if "fingerprint" not in kwargs: + raise AttributeError("Missing attribute: id or fingerprint") + + server_data = self.gitlab.http_get(self.path, **kwargs) + return self._obj_cls(self, server_data) |