summaryrefslogtreecommitdiff
path: root/gitlab/v4/objects.py
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2018-01-21 18:30:38 +0100
committerGauvain Pocentek <gauvain@pocentek.net>2018-01-21 18:30:38 +0100
commit1ca30807566ca3ac1bd295516a122cd75ba9031f (patch)
tree10657ecdfdf5d2eefda37f3d02a964d1d9d053b3 /gitlab/v4/objects.py
parent96a1a784bd0cc0d0ce9dc3a83ea3a46380adc905 (diff)
downloadgitlab-1ca30807566ca3ac1bd295516a122cd75ba9031f.tar.gz
Add Gitlab and User events support
Closes #412
Diffstat (limited to 'gitlab/v4/objects.py')
-rw-r--r--gitlab/v4/objects.py29
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'}