diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2018-07-15 18:03:33 +0200 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2018-07-15 18:03:33 +0200 |
commit | 0379efaa641d22ccdb530214c56ec72891f73c4a (patch) | |
tree | 747af85e77f0a2655f04f594c4f00294d147c501 /gitlab | |
parent | 34619042e4839cf1f3031b1c3e6f791104f02dfe (diff) | |
download | gitlab-0379efaa641d22ccdb530214c56ec72891f73c4a.tar.gz |
Support group and global MR listing
Closes #553
Diffstat (limited to 'gitlab')
-rw-r--r-- | gitlab/__init__.py | 1 | ||||
-rw-r--r-- | gitlab/v4/objects.py | 29 |
2 files changed, 28 insertions, 2 deletions
diff --git a/gitlab/__init__.py b/gitlab/__init__.py index 1c13093..4b9c4f4 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -114,6 +114,7 @@ class Gitlab(object): self.ldapgroups = objects.LDAPGroupManager(self) self.licenses = objects.LicenseManager(self) self.namespaces = objects.NamespaceManager(self) + self.mergerequests = objects.MergeRequestManager(self) self.notificationsettings = objects.NotificationSettingsManager(self) self.projects = objects.ProjectManager(self) self.runners = objects.RunnerManager(self) diff --git a/gitlab/v4/objects.py b/gitlab/v4/objects.py index c266724..7f50440 100644 --- a/gitlab/v4/objects.py +++ b/gitlab/v4/objects.py @@ -710,8 +710,16 @@ class GroupMergeRequest(RESTObject): pass -class GroupMergeRequestManager(RESTManager): - pass +class GroupMergeRequestManager(ListMixin, RESTManager): + _path = '/groups/%(group_id)s/merge_requests' + _obj_cls = GroupMergeRequest + _from_parent_attrs = {'group_id': 'id'} + _list_filters = ('state', 'order_by', 'sort', 'milestone', 'view', + 'labels', 'created_after', 'created_before', + 'updated_after', 'updated_before', 'scope', 'author_id', + 'assignee_id', 'my_reaction_emoji', 'source_branch', + 'target_branch', 'search') + _types = {'labels': types.ListAttribute} class GroupMilestone(SaveMixin, ObjectDeleteMixin, RESTObject): @@ -842,6 +850,7 @@ class Group(SaveMixin, ObjectDeleteMixin, RESTObject): ('epics', 'GroupEpicManager'), ('issues', 'GroupIssueManager'), ('members', 'GroupMemberManager'), + ('mergerequests', 'GroupMergeRequestManager'), ('milestones', 'GroupMilestoneManager'), ('notificationsettings', 'GroupNotificationSettingsManager'), ('projects', 'GroupProjectManager'), @@ -1040,6 +1049,22 @@ class LicenseManager(RetrieveMixin, RESTManager): _optional_get_attrs = ('project', 'fullname') +class MergeRequest(RESTObject): + pass + + +class MergeRequestManager(ListMixin, RESTManager): + _path = '/merge_requests' + _obj_cls = MergeRequest + _from_parent_attrs = {'group_id': 'id'} + _list_filters = ('state', 'order_by', 'sort', 'milestone', 'view', + 'labels', 'created_after', 'created_before', + 'updated_after', 'updated_before', 'scope', 'author_id', + 'assignee_id', 'my_reaction_emoji', 'source_branch', + 'target_branch', 'search') + _types = {'labels': types.ListAttribute} + + class Snippet(UserAgentDetailMixin, SaveMixin, ObjectDeleteMixin, RESTObject): _short_print_attr = 'title' |