diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2018-01-21 18:30:38 +0100 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2018-01-21 18:30:38 +0100 |
commit | 1ca30807566ca3ac1bd295516a122cd75ba9031f (patch) | |
tree | 10657ecdfdf5d2eefda37f3d02a964d1d9d053b3 /gitlab/v4/objects.py | |
parent | 96a1a784bd0cc0d0ce9dc3a83ea3a46380adc905 (diff) | |
download | gitlab-1ca30807566ca3ac1bd295516a122cd75ba9031f.tar.gz |
Add Gitlab and User events support
Closes #412
Diffstat (limited to 'gitlab/v4/objects.py')
-rw-r--r-- | gitlab/v4/objects.py | 29 |
1 files changed, 25 insertions, 4 deletions
diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py index a5b603c..f8b0dce 100644 --- a/gitlab/v4/objects.py +++ b/gitlab/v4/objects.py @@ -112,6 +112,17 @@ class SidekiqManager(RESTManager): return self.gitlab.http_get('/sidekiq/compound_metrics', **kwargs) +class Event(RESTObject): + _id_attr = None + _short_print_attr = 'target_title' + + +class EventManager(ListMixin, RESTManager): + _path = '/events' + _obj_cls = Event + _list_filters = ('action', 'target_type', 'before', 'after', 'sort') + + class UserActivities(RESTObject): _id_attr = 'username' @@ -143,6 +154,16 @@ class UserEmailManager(RetrieveMixin, CreateMixin, DeleteMixin, RESTManager): _create_attrs = (('email', ), tuple()) +class UserEvent(Event): + pass + + +class UserEventManager(EventManager): + _path = '/users/%(user_id)s/events' + _obj_cls = UserEvent + _from_parent_attrs = {'user_id': 'id'} + + class UserGPGKey(ObjectDeleteMixin, RESTObject): pass @@ -224,6 +245,7 @@ class User(SaveMixin, ObjectDeleteMixin, RESTObject): _managers = ( ('customattributes', 'UserCustomAttributeManager'), ('emails', 'UserEmailManager'), + ('events', 'UserEventManager'), ('gpgkeys', 'UserGPGKeyManager'), ('impersonationtokens', 'UserImpersonationTokenManager'), ('keys', 'UserKeyManager'), @@ -1161,12 +1183,11 @@ class ProjectKeyManager(NoUpdateMixin, RESTManager): self.gitlab.http_post(path, **kwargs) -class ProjectEvent(RESTObject): - _id_attr = None - _short_print_attr = 'target_title' +class ProjectEvent(Event): + pass -class ProjectEventManager(ListMixin, RESTManager): +class ProjectEventManager(EventManager): _path = '/projects/%(project_id)s/events' _obj_cls = ProjectEvent _from_parent_attrs = {'project_id': 'id'} |