diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2016-06-19 16:08:01 +0200 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2016-06-19 16:08:01 +0200 |
commit | 68d15fdfd7cd92adbf54873b75c42e46f35dd918 (patch) | |
tree | 472a6ad58f63a6047932574a191c1ad4559f4541 /gitlab/objects.py | |
parent | 69e64a330292d149a60f606fd262942112021f94 (diff) | |
download | gitlab-68d15fdfd7cd92adbf54873b75c42e46f35dd918.tar.gz |
Make GroupProject more "python-gitlabish"
Diffstat (limited to 'gitlab/objects.py')
-rw-r--r-- | gitlab/objects.py | 35 |
1 files changed, 16 insertions, 19 deletions
diff --git a/gitlab/objects.py b/gitlab/objects.py index e56bfc4..83a8c8f 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -666,6 +666,20 @@ class GroupMemberManager(BaseManager): obj_cls = GroupMember +class GroupProject(GitlabObject): + _url = '/groups/%(group_id)s/projects' + canGet = 'from_list' + canCreate = False + canDelete = False + canUpdate = False + optionalListAttrs = ['archived', 'visibility', 'order_by', 'sort', + 'search', 'ci_enabled_first'] + + +class GroupProjectManager(BaseManager): + obj_cls = GroupProject + + class Group(GitlabObject): _url = '/groups' canUpdate = False @@ -673,7 +687,8 @@ class Group(GitlabObject): requiredCreateAttrs = ['name', 'path'] optionalCreateAttrs = ['description', 'visibility_level'] shortPrintAttr = 'name' - managers = [('members', GroupMemberManager, [('group_id', 'id')])] + managers = [('members', GroupMemberManager, [('group_id', 'id')]), + ('projects', GroupProjectManager, [('group_id', 'id')])] GUEST_ACCESS = 10 REPORTER_ACCESS = 20 @@ -725,24 +740,6 @@ class GroupManager(BaseManager): return self.gitlab._raw_list(url, self.obj_cls, **kwargs) -class GroupProject(GitlabObject): - def list_projects(self, gid, **kwargs): - """List projects in a group - - Attrs: - gid (int): ID of the group - - Returns: - list(Group): a list of projects in the group - """ - url = '/groups/%d/projects' % gid - return self.gitlab._raw_list(url, self.obj_cls, **kwargs) - - -class GroupProjectManager(BaseManager): - obj_cls = GroupProject - - class Hook(GitlabObject): _url = '/hooks' canUpdate = False |