@@ -112,6 +112,17 @@ def compound_metrics(self, **kwargs):
112112 return self .gitlab .http_get ('/sidekiq/compound_metrics' , ** kwargs )
113113
114114
115+ class Event (RESTObject ):
116+ _id_attr = None
117+ _short_print_attr = 'target_title'
118+
119+
120+ class EventManager (ListMixin , RESTManager ):
121+ _path = '/events'
122+ _obj_cls = Event
123+ _list_filters = ('action' , 'target_type' , 'before' , 'after' , 'sort' )
124+
125+
115126class UserActivities (RESTObject ):
116127 _id_attr = 'username'
117128
@@ -143,6 +154,16 @@ class UserEmailManager(RetrieveMixin, CreateMixin, DeleteMixin, RESTManager):
143154 _create_attrs = (('email' , ), tuple ())
144155
145156
157+ class UserEvent (Event ):
158+ pass
159+
160+
161+ class UserEventManager (EventManager ):
162+ _path = '/users/%(user_id)s/events'
163+ _obj_cls = UserEvent
164+ _from_parent_attrs = {'user_id' : 'id' }
165+
166+
146167class UserGPGKey (ObjectDeleteMixin , RESTObject ):
147168 pass
148169
@@ -224,6 +245,7 @@ class User(SaveMixin, ObjectDeleteMixin, RESTObject):
224245 _managers = (
225246 ('customattributes' , 'UserCustomAttributeManager' ),
226247 ('emails' , 'UserEmailManager' ),
248+ ('events' , 'UserEventManager' ),
227249 ('gpgkeys' , 'UserGPGKeyManager' ),
228250 ('impersonationtokens' , 'UserImpersonationTokenManager' ),
229251 ('keys' , 'UserKeyManager' ),
@@ -1161,12 +1183,11 @@ def enable(self, key_id, **kwargs):
11611183 self .gitlab .http_post (path , ** kwargs )
11621184
11631185
1164- class ProjectEvent (RESTObject ):
1165- _id_attr = None
1166- _short_print_attr = 'target_title'
1186+ class ProjectEvent (Event ):
1187+ pass
11671188
11681189
1169- class ProjectEventManager (ListMixin , RESTManager ):
1190+ class ProjectEventManager (EventManager ):
11701191 _path = '/projects/%(project_id)s/events'
11711192 _obj_cls = ProjectEvent
11721193 _from_parent_attrs = {'project_id' : 'id' }
0 commit comments