Skip to content

Navigation Menu

Sign in
Appearance settings

Search code, repositories, users, issues, pull requests...

Provide feedback

We read every piece of feedback, and take your input very seriously.

Saved searches

Use saved searches to filter your results more quickly

Appearance settings

Commit 1ca3080

Browse filesBrowse files
author
Gauvain Pocentek
committed
Add Gitlab and User events support
Closes python-gitlab#412
1 parent 96a1a78 commit 1ca3080
Copy full SHA for 1ca3080

File tree

Expand file treeCollapse file tree

7 files changed

+82
-41
lines changed
Open diff view settings
Filter options
Expand file treeCollapse file tree

7 files changed

+82
-41
lines changed
Open diff view settings
Collapse file

‎docs/api-objects.rst‎

Copy file name to clipboardExpand all lines: docs/api-objects.rst
+1Lines changed: 1 addition & 0 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -15,6 +15,7 @@ API examples
1515
gl_objects/deploy_keys
1616
gl_objects/deployments
1717
gl_objects/environments
18+
gl_objects/events
1819
gl_objects/features
1920
gl_objects/groups
2021
gl_objects/issues
Collapse file

‎docs/gl_objects/events.rst‎

Copy file name to clipboard
+48Lines changed: 48 additions & 0 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,48 @@
1+
######
2+
Events
3+
######
4+
5+
Reference
6+
---------
7+
8+
* v4 API:
9+
10+
+ :class:`gitlab.v4.objects.Event`
11+
+ :class:`gitlab.v4.objects.EventManager`
12+
+ :attr:`gitlab.Gitlab.events`
13+
+ :class:`gitlab.v4.objects.ProjectEvent`
14+
+ :class:`gitlab.v4.objects.ProjectEventManager`
15+
+ :attr:`gitlab.v4.objects.Project.events`
16+
+ :class:`gitlab.v4.objects.UserEvent`
17+
+ :class:`gitlab.v4.objects.UserEventManager`
18+
+ :attr:`gitlab.v4.objects.User.events`
19+
20+
* v3 API (projects events only):
21+
22+
+ :class:`gitlab.v3.objects.ProjectEvent`
23+
+ :class:`gitlab.v3.objects.ProjectEventManager`
24+
+ :attr:`gitlab.v3.objects.Project.events`
25+
+ :attr:`gitlab.Gitlab.project_events`
26+
27+
* GitLab API: https://docs.gitlab.com/ce/api/events.html
28+
29+
Examples
30+
--------
31+
32+
You can list events for an entire Gitlab instance (admin), users and projects.
33+
You can filter you events you want to retrieve using the ``action`` and
34+
``target_type`` attributes. The possibole values for these attributes are
35+
available on `the gitlab documentation
36+
<https://docs.gitlab.com/ce/api/events.html>`_.
37+
38+
List all the events (paginated)::
39+
40+
events = gl.events.list()
41+
42+
List the issue events on a project::
43+
44+
events = project.events.list(target_type='issue')
45+
46+
List the user events::
47+
48+
events = project.events.list()
Collapse file

‎docs/gl_objects/projects.py‎

Copy file name to clipboardExpand all lines: docs/gl_objects/projects.py
-6Lines changed: 0 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -69,12 +69,6 @@
6969
project.unarchive()
7070
# end archive
7171

72-
# events list
73-
gl.project_events.list(project_id=1)
74-
# or
75-
project.events.list()
76-
# end events list
77-
7872
# members list
7973
members = project.members.list()
8074
# end members list
Collapse file

‎docs/gl_objects/projects.rst‎

Copy file name to clipboardExpand all lines: docs/gl_objects/projects.rst
-30Lines changed: 0 additions & 30 deletions
  • Display the source diff
  • Display the rich diff
Original file line numberDiff line numberDiff line change
@@ -484,36 +484,6 @@ Delete a note for a resource:
484484
:start-after: # notes delete
485485
:end-before: # end notes delete
486486

487-
Project events
488-
==============
489-
490-
Reference
491-
---------
492-
493-
* v4 API:
494-
495-
+ :class:`gitlab.v4.objects.ProjectEvent`
496-
+ :class:`gitlab.v4.objects.ProjectEventManager`
497-
+ :attr:`gitlab.v4.objects.Project.events`
498-
499-
* v3 API:
500-
501-
+ :class:`gitlab.v3.objects.ProjectEvent`
502-
+ :class:`gitlab.v3.objects.ProjectEventManager`
503-
+ :attr:`gitlab.v3.objects.Project.events`
504-
+ :attr:`gitlab.Gitlab.project_events`
505-
506-
* GitLab API: https://docs.gitlab.com/ce/api/repository_files.html
507-
508-
Examples
509-
--------
510-
511-
List the project events:
512-
513-
.. literalinclude:: projects.py
514-
:start-after: # events list
515-
:end-before: # end events list
516-
517487
Project members
518488
===============
519489

Collapse file

‎gitlab/__init__.py‎

Copy file name to clipboardExpand all lines: gitlab/__init__.py
+1Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -125,6 +125,7 @@ def __init__(self, url, private_token=None, oauth_token=None, email=None,
125125
self.teams = objects.TeamManager(self)
126126
else:
127127
self.dockerfiles = objects.DockerfileManager(self)
128+
self.events = objects.EventManager(self)
128129
self.features = objects.FeatureManager(self)
129130
self.pagesdomains = objects.PagesDomainManager(self)
130131
self.user_activities = objects.UserActivitiesManager(self)
Collapse file

‎gitlab/v4/objects.py‎

Copy file name to clipboardExpand all lines: gitlab/v4/objects.py
+25-4Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -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+
115126
class 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+
146167
class 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'}
Collapse file

‎tools/python_test_v4.py‎

Copy file name to clipboardExpand all lines: tools/python_test_v4.py
+7-1Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,6 +95,9 @@
9595
# user projects list
9696
assert(len(new_user.projects.list()) == 0)
9797

98+
# events list
99+
new_user.events.list()
100+
98101
foobar_user = gl.users.create(
99102
{'email': 'foobar@example.com', 'username': 'foobar',
100103
'name': 'Foo Bar', 'password': 'foobar_password'})
@@ -408,7 +411,7 @@
408411
env.delete()
409412
assert(len(admin_project.environments.list()) == 0)
410413

411-
# events
414+
# project events
412415
admin_project.events.list()
413416

414417
# forks
@@ -640,3 +643,6 @@
640643

641644
# user activities
642645
gl.user_activities.list()
646+
647+
# events
648+
gl.events.list()

0 commit comments

Comments
0 (0)
Morty Proxy This is a proxified and sanitized view of the page, visit original site.