Skip to content

Commit

Permalink
Add support from listing group issues
Browse files Browse the repository at this point in the history
  • Loading branch information
Gauvain Pocentek committed Jul 24, 2016
1 parent 261f947 commit 580f21e
Show file tree
Hide file tree
Showing 4 changed files with 44 additions and 1 deletion.
10 changes: 10 additions & 0 deletions docs/gl_objects/issues.py
Expand Up @@ -8,6 +8,16 @@
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
Expand Down
16 changes: 16 additions & 0 deletions docs/gl_objects/issues.rst
Expand Up @@ -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
==============

Expand Down
2 changes: 2 additions & 0 deletions gitlab/__init__.py
Expand Up @@ -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
Expand Down Expand Up @@ -148,6 +149,7 @@ def __init__(self, url, private_token=None, email=None, password=None,
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)
Expand Down
17 changes: 16 additions & 1 deletion gitlab/objects.py
Expand Up @@ -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'
Expand Down Expand Up @@ -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
Expand Down

0 comments on commit 580f21e

Please sign in to comment.