@@ -112,6 +112,17 @@ def compound_metrics(self, **kwargs):
112
112
return self .gitlab .http_get ('/sidekiq/compound_metrics' , ** kwargs )
113
113
114
114
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
+
115
126
class UserActivities (RESTObject ):
116
127
_id_attr = 'username'
117
128
@@ -143,6 +154,16 @@ class UserEmailManager(RetrieveMixin, CreateMixin, DeleteMixin, RESTManager):
143
154
_create_attrs = (('email' , ), tuple ())
144
155
145
156
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
+
146
167
class UserGPGKey (ObjectDeleteMixin , RESTObject ):
147
168
pass
148
169
@@ -224,6 +245,7 @@ class User(SaveMixin, ObjectDeleteMixin, RESTObject):
224
245
_managers = (
225
246
('customattributes' , 'UserCustomAttributeManager' ),
226
247
('emails' , 'UserEmailManager' ),
248
+ ('events' , 'UserEventManager' ),
227
249
('gpgkeys' , 'UserGPGKeyManager' ),
228
250
('impersonationtokens' , 'UserImpersonationTokenManager' ),
229
251
('keys' , 'UserKeyManager' ),
@@ -1161,12 +1183,11 @@ def enable(self, key_id, **kwargs):
1161
1183
self .gitlab .http_post (path , ** kwargs )
1162
1184
1163
1185
1164
- class ProjectEvent (RESTObject ):
1165
- _id_attr = None
1166
- _short_print_attr = 'target_title'
1186
+ class ProjectEvent (Event ):
1187
+ pass
1167
1188
1168
1189
1169
- class ProjectEventManager (ListMixin , RESTManager ):
1190
+ class ProjectEventManager (EventManager ):
1170
1191
_path = '/projects/%(project_id)s/events'
1171
1192
_obj_cls = ProjectEvent
1172
1193
_from_parent_attrs = {'project_id' : 'id' }
0 commit comments