Skip to content

Commit bef579a

Browse files
committed
some small fixes, adding issues to the main github object.
1 parent 0440104 commit bef579a

File tree

5 files changed

+34
-15
lines changed

5 files changed

+34
-15
lines changed

pygithub3/github.py

Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -18,11 +18,13 @@ def __init__(self, **config):
1818
from pygithub3.services.repos import Repo
1919
from pygithub3.services.gists import Gist
2020
from pygithub3.services.git_data import GitData
21+
from pygithub3.services.issues import Issue
2122
from pygithub3.services.pull_requests import PullRequests
2223
self._users = User(**config)
2324
self._repos = Repo(**config)
2425
self._gists = Gist(**config)
2526
self._git_data = GitData(**config)
27+
self._issues = Issue(**config)
2628
self._pull_requests = PullRequests(**config)
2729

2830
@property
@@ -59,6 +61,13 @@ def git_data(self):
5961
"""
6062
return self._git_data
6163

64+
@property
65+
def issues(self):
66+
"""
67+
:ref:`Github Issues service <Issues service>`
68+
"""
69+
return self._issues
70+
6271
@property
6372
def pull_requests(self):
6473
"""

pygithub3/requests/issues/milestones.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,11 +5,11 @@
55

66
class List(Request):
77

8-
uri = 'issues/{user}/{repo}/milestones'
8+
uri = 'repos/{user}/{repo}/milestones'
99
resource = Milestone
1010

1111

1212
class Get(Request):
1313

14-
uri = 'issues/{user}/{repo}/milestones/{number}'
14+
uri = 'repos/{user}/{repo}/milestones/{number}'
1515
resource = Milestone

pygithub3/resources/issues.py

Lines changed: 14 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,21 +3,26 @@
33

44
from .base import Resource
55
from .users import User
6+
from .pull_requests import PullRequest
67

78

8-
class Issue(Resource):
9-
10-
_dates = ('created_at', 'updated_at', )
11-
_maps = {'pull_request': ..., 'milestone': Milestone, 'assignee': User, 'user': User}
12-
_collection_maps = {'labels': ..., }
13-
14-
def __str__(self):
15-
return '<Issue (%s)>' % getattr(self, 'title', '')
16-
179
class Milestone(Resource):
1810

1911
_dates = ('created_at', )
2012
_maps = {'creator': User}
2113

2214
def __str__(self):
2315
return '<Milestone (%s)>' % getattr(self, 'description', '')
16+
17+
class Label(Resource):
18+
def __str__(self):
19+
return '<Label (%s)>' % getattr(self, 'name', '')
20+
21+
class Issue(Resource):
22+
23+
_dates = ('created_at', 'updated_at', )
24+
_maps = {'pull_request': PullRequest, 'milestone': Milestone, 'assignee': User, 'user': User}
25+
_collection_maps = {'labels': Label, }
26+
27+
def __str__(self):
28+
return '<Issue (%s)>' % getattr(self, 'title', '')

pygithub3/services/issues/milestones.py

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,18 @@ class Milestones(Service):
99
<http://developer.github.com/v3/issues/milestones>`_
1010
"""
1111

12-
def list(self, user=None, repo=None):
12+
def list(self, user=None, repo=None, state='open', sort='due_date', direction='desc'):
1313
""" Get a repository's issues
1414
1515
:param str user: Username
1616
:param str repo: Repo Name
17+
:param str state: Filter out milestones only in a certain state. Options: open, closed. Default: open
18+
:param str sort: Options: 'due_date', 'completeness' Default: 'due_date'
19+
:param str direction: Options: 'asc', 'desc' Default: 'desc'
1720
:returns: A :doc:`result`
1821
"""
1922
request = self.request_builder('issues.milestones.list', user=user, repo=repo)
20-
return self._get_result(request, **self._get_mimetype_as_header())
23+
return self._get_result(request)
2124

2225
def get(self, number, user=None, repo=None):
2326
""" Get a single milestone

pygithub3/tests/services/test_issues.py

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -38,8 +38,10 @@ def test_LIST_with_user_and_repo(self, request_method):
3838
('get', _('repos/octocat/Hello-World/milestones')))
3939

4040
def test_LIST_with_state(self, request_method):
41-
# Fail for now; I don't know how to do this test yet
42-
self.ms.abc()
41+
request_method.return_value = mock_response_result()
42+
self.ms.list(user='octocat', repo='Hello-World', state='closed').all()
43+
self.assertEqual(request_method.call_args[0],
44+
('get', _('repos/octocat/Hello-World/milestones')))
4345

4446
def test_GET(self, request_method):
4547

0 commit comments

Comments
 (0)