Skip to content

Commit a8125aa

Browse files
twidiJNRowe
authored andcommitted
Add page parameter for objects supporting a list.
1 parent 00e2ce5 commit a8125aa

4 files changed

Lines changed: 16 additions & 9 deletions

File tree

github2/commits.py

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ def __repr__(self):
2727
class Commits(GithubCommand):
2828
domain = "commits"
2929

30-
def list(self, project, branch="master", file=None):
30+
def list(self, project, branch="master", file=None, page=1):
3131
"""List commits on a project
3232
3333
.. warning::
@@ -38,9 +38,10 @@ def list(self, project, branch="master", file=None):
3838
:param str project: project name
3939
:param str branch: branch name, or ``master`` if not given
4040
:param str file: optional file filter
41+
:param int page: optional page number
4142
"""
42-
return self.get_values("list", project, branch, file,
43-
filter="commits", datatype=Commit)
43+
return self.get_values("list", project, branch, file, filter="commits",
44+
datatype=Commit, page=page)
4445

4546
def show(self, project, sha):
4647
"""Get a specific commit

github2/core.py

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -135,6 +135,9 @@ def __init__(self, request):
135135
def make_request(self, command, *args, **kwargs):
136136
filter = kwargs.get("filter")
137137
post_data = kwargs.get("post_data") or {}
138+
page = kwargs.pop("page", 1)
139+
if page and not page == 1:
140+
post_data["page"] = page
138141
method = kwargs.get("method", "GET")
139142
if method.upper() == "POST" or method.upper() == "GET" and post_data:
140143
response = self.request.post(self.domain, command, *args,

github2/pull_requests.py

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -84,11 +84,12 @@ def show(self, project, number):
8484
return self.get_value(project, str(number), filter="pull",
8585
datatype=PullRequest)
8686

87-
def list(self, project, state="open"):
87+
def list(self, project, state="open", page=1):
8888
"""List all pull requests for a project
8989
9090
:param str project: Github project
9191
:param str state: can be either ``open`` or ``closed``
92+
:param int page: optional page number
9293
"""
9394
return self.get_values(project, state, filter="pulls",
94-
datatype=PullRequest)
95+
datatype=PullRequest, page=page)

github2/repositories.py

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ def pushable(self):
6262
datatype=Repository)
6363

6464

65-
def list(self, user=None):
65+
def list(self, user=None, page=1):
6666
"""Return a list of all repositories for a user.
6767
6868
.. deprecated: 0.4.0
@@ -71,10 +71,11 @@ def list(self, user=None):
7171
brittle and will be removed in a future release!
7272
7373
:param str user: Github user name to list repositories for
74+
:param int page: optional page number
7475
"""
7576
user = user or self.request.username
7677
return self.get_values("show", user, filter="repositories",
77-
datatype=Repository)
78+
datatype=Repository, page=page)
7879

7980
@requires_auth
8081
def watch(self, project):
@@ -208,14 +209,15 @@ def watchers(self, project):
208209
"""
209210
return self.get_values("show", project, "watchers", filter="watchers")
210211

211-
def watching(self, for_user=None):
212+
def watching(self, for_user=None, page=None):
212213
"""Lists all the repos a user is watching
213214
214215
:param str for_user: optional Github user name to list repositories for
216+
:param int page: optional page number
215217
"""
216218
for_user = for_user or self.request.username
217219
return self.get_values("watched", for_user, filter="repositories",
218-
datatype=Repository)
220+
datatype=Repository, page=page)
219221

220222
def list_contributors(self, project):
221223
"""Lists all the contributors in a project

0 commit comments

Comments
 (0)