diff options
author | Gauvain Pocentek <gauvain@pocentek.net> | 2016-07-24 18:06:29 +0200 |
---|---|---|
committer | Gauvain Pocentek <gauvain@pocentek.net> | 2016-07-24 18:06:29 +0200 |
commit | 580f21ea9a80bfe7062296ac7684489d5375df69 (patch) | |
tree | a9f33f46af28fc403cb9046848d431d916a9ecd2 | |
parent | 261f9470f457673e8082e673fb09861a993fdabc (diff) | |
download | gitlab-580f21ea9a80bfe7062296ac7684489d5375df69.tar.gz |
Add support from listing group issues
-rw-r--r-- | docs/gl_objects/issues.py | 10 | ||||
-rw-r--r-- | docs/gl_objects/issues.rst | 16 | ||||
-rw-r--r-- | gitlab/__init__.py | 2 | ||||
-rw-r--r-- | gitlab/objects.py | 17 |
4 files changed, 44 insertions, 1 deletions
diff --git a/docs/gl_objects/issues.py b/docs/gl_objects/issues.py index e0eadbe..a378910 100644 --- a/docs/gl_objects/issues.py +++ b/docs/gl_objects/issues.py @@ -8,6 +8,16 @@ closed_issues = gl.issues.list(state='closed') tagged_issues = gl.issues.list(labels=['foo', 'bar']) # end filtered list +# group issues list +issues = gl.group_issues.list(group_id=1) +# or +issues = group.issues.list() +# Filter using the state, labels and milestone parameters +issues = group.issues.list(milestone='1.0', state='opened') +# Order using the order_by and sort parameters +issues = group.issues.list(order_by='created_at', sort='desc') +# end group issues list + # project issues list issues = gl.project_issues.list(project_id=1) # or diff --git a/docs/gl_objects/issues.rst b/docs/gl_objects/issues.rst index 335ec54..ac23043 100644 --- a/docs/gl_objects/issues.rst +++ b/docs/gl_objects/issues.rst @@ -25,6 +25,22 @@ Use the ``state`` and ``label`` parameters to filter the results. Use the :start-after: # filtered list :end-before: # end filtered list +Group issues +============ + +Use :class:`~gitlab.objects.GroupIssue` objects to manipulate issues. The +:attr:`gitlab.Gitlab.project_issues` and :attr:`Group.issues +<gitlab.objects.Group.issues>` manager objects provide helper functions. + +Examples +-------- + +List the group issues: + +.. literalinclude:: issues.py + :start-after: # group issues list + :end-before: # end group issues list + Project issues ============== diff --git a/gitlab/__init__.py b/gitlab/__init__.py index 30aad85..f819186 100644 --- a/gitlab/__init__.py +++ b/gitlab/__init__.py @@ -68,6 +68,7 @@ class Gitlab(object): user_emails (UserEmailManager): Manager for GitLab users' emails. user_keys (UserKeyManager): Manager for GitLab users' SSH keys. users (UserManager): Manager for GitLab users + group_issues (GroupIssueManager): Manager for GitLab group issues group_projects (GroupProjectManager): Manager for GitLab group projects group_members (GroupMemberManager): Manager for GitLab group members groups (GroupManager): Manager for GitLab members @@ -148,6 +149,7 @@ class Gitlab(object): self.user_emails = UserEmailManager(self) self.user_keys = UserKeyManager(self) self.users = UserManager(self) + self.group_issues = GroupIssueManager(self) self.group_projects = GroupProjectManager(self) self.group_members = GroupMemberManager(self) self.groups = GroupManager(self) diff --git a/gitlab/objects.py b/gitlab/objects.py index ea9f9ab..315abde 100644 --- a/gitlab/objects.py +++ b/gitlab/objects.py @@ -679,6 +679,20 @@ class ApplicationSettingsManager(BaseManager): obj_cls = ApplicationSettings +class GroupIssue(GitlabObject): + _url = '/groups/%(group_id)s/issues' + canGet = 'from_list' + canCreate = False + canUpdate = False + canDelete = False + requiredUrlAttrs = ['group_id'] + optionalListAttrs = ['state', 'labels', 'milestone', 'order_by', 'sort'] + + +class GroupIssueManager(BaseManager): + obj_cls = GroupIssue + + class GroupMember(GitlabObject): _url = '/groups/%(group_id)s/members' canGet = 'from_list' @@ -718,7 +732,8 @@ class Group(GitlabObject): optionalUpdateAttrs = ['name', 'path', 'description', 'visibility_level'] shortPrintAttr = 'name' managers = [('members', GroupMemberManager, [('group_id', 'id')]), - ('projects', GroupProjectManager, [('group_id', 'id')])] + ('projects', GroupProjectManager, [('group_id', 'id')]), + ('issues', GroupIssueManager, [('group_id', 'id')])] GUEST_ACCESS = 10 REPORTER_ACCESS = 20 |