summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGauvain Pocentek <gauvain@pocentek.net>2017-10-08 10:21:34 +0200
committerGauvain Pocentek <gauvain@pocentek.net>2017-10-08 10:21:34 +0200
commitd6fa94ef38c638206d1d18bbd6ddf3f56057b1ce (patch)
treec2aea9616fb921b21589c9493c2dfbd50077f22b
parent5945537c157818483a4a14138619fa6b9341e6b3 (diff)
downloadgitlab-d6fa94ef38c638206d1d18bbd6ddf3f56057b1ce.tar.gz
Add support for listing project users
https://docs.gitlab.com/ce/api/projects.html#get-project-users Closes #328
-rw-r--r--docs/gl_objects/projects.py7
-rw-r--r--docs/gl_objects/projects.rst6
-rw-r--r--gitlab/v4/objects.py12
3 files changed, 25 insertions, 0 deletions
diff --git a/docs/gl_objects/projects.py b/docs/gl_objects/projects.py
index 6ef6069..6cdd260 100644
--- a/docs/gl_objects/projects.py
+++ b/docs/gl_objects/projects.py
@@ -393,3 +393,10 @@ issue.notes.create({
"body": "See the [attached file]({})".format(uploaded_file["url"])
})
# end project file upload markdown custom
+
+# users list
+users = p.users.list()
+
+# search for users
+users = p.users.list(search='pattern')
+# end users list
diff --git a/docs/gl_objects/projects.rst b/docs/gl_objects/projects.rst
index 7f3d479..8465eb9 100644
--- a/docs/gl_objects/projects.rst
+++ b/docs/gl_objects/projects.rst
@@ -160,6 +160,12 @@ Get a list of contributors for the repository:
:start-after: # repository contributors
:end-before: # end repository contributors
+Get a list of users for the repository:
+
+.. literalinclude:: projects.py
+ :start-after: # users list
+ :end-before: # end users list
+
Project files
=============
diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py
index 0d8dffd..e43d65e 100644
--- a/gitlab/v4/objects.py
+++ b/gitlab/v4/objects.py
@@ -1616,6 +1616,17 @@ class ProjectTriggerManager(CRUDMixin, RESTManager):
_update_attrs = (('description', ), tuple())
+class ProjectUser(User):
+ pass
+
+
+class ProjectUserManager(ListMixin, RESTManager):
+ _path = '/projects/%(project_id)s/users'
+ _obj_cls = ProjectUser
+ _from_parent_attrs = {'project_id': 'id'}
+ _list_filters = ('search',)
+
+
class ProjectVariable(SaveMixin, ObjectDeleteMixin, RESTObject):
_id_attr = 'key'
@@ -1795,6 +1806,7 @@ class Project(SaveMixin, ObjectDeleteMixin, RESTObject):
('services', 'ProjectServiceManager'),
('snippets', 'ProjectSnippetManager'),
('tags', 'ProjectTagManager'),
+ ('users', 'ProjectUserManager'),
('triggers', 'ProjectTriggerManager'),
('variables', 'ProjectVariableManager'),
)