Movatterモバイル変換


[0]ホーム

URL:


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

Sign up
Appearance settings

Commit1ca3080

Browse files
author
Gauvain Pocentek
committed
Add Gitlab and User events support
Closes#412
1 parent96a1a78 commit1ca3080

File tree

7 files changed

+82
-41
lines changed

7 files changed

+82
-41
lines changed

‎docs/api-objects.rst

Lines changed: 1 addition & 0 deletions
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

‎docs/gl_objects/events.rst

Lines changed: 48 additions & 0 deletions
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()

‎docs/gl_objects/projects.py

Lines 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

‎docs/gl_objects/projects.rst

Lines changed: 0 additions & 30 deletions
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

‎gitlab/__init__.py

Lines 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)

‎gitlab/v4/objects.py

Lines changed: 25 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -112,6 +112,17 @@ def compound_metrics(self, **kwargs):
112112
returnself.gitlab.http_get('/sidekiq/compound_metrics',**kwargs)
113113

114114

115+
classEvent(RESTObject):
116+
_id_attr=None
117+
_short_print_attr='target_title'
118+
119+
120+
classEventManager(ListMixin,RESTManager):
121+
_path='/events'
122+
_obj_cls=Event
123+
_list_filters= ('action','target_type','before','after','sort')
124+
125+
115126
classUserActivities(RESTObject):
116127
_id_attr='username'
117128

@@ -143,6 +154,16 @@ class UserEmailManager(RetrieveMixin, CreateMixin, DeleteMixin, RESTManager):
143154
_create_attrs= (('email', ),tuple())
144155

145156

157+
classUserEvent(Event):
158+
pass
159+
160+
161+
classUserEventManager(EventManager):
162+
_path='/users/%(user_id)s/events'
163+
_obj_cls=UserEvent
164+
_from_parent_attrs= {'user_id':'id'}
165+
166+
146167
classUserGPGKey(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-
classProjectEvent(RESTObject):
1165-
_id_attr=None
1166-
_short_print_attr='target_title'
1186+
classProjectEvent(Event):
1187+
pass
11671188

11681189

1169-
classProjectEventManager(ListMixin,RESTManager):
1190+
classProjectEventManager(EventManager):
11701191
_path='/projects/%(project_id)s/events'
11711192
_obj_cls=ProjectEvent
11721193
_from_parent_attrs= {'project_id':'id'}

‎tools/python_test_v4.py

Lines 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+
#projectevents
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)

[8]ページ先頭

©2009-2025 Movatter.jp