10000 Sortable stars · davidmoss/github3.py@a14bbc2 · GitHub
[go: up one dir, main page]

Skip to content

Commit a14bbc2

Browse files
committed
Sortable stars
See github/developer.github.com#0b3cb6ad27eb688c8813d5a50fb44e7d1f202105
1 parent f38caf2 commit a14bbc2

File tree

3 files changed

+27
-6
lines changed

3 files changed

+27
-6
lines changed

github3/github.py

Lines changed: 13 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -621,20 +621,30 @@ def iter_repos(self, login=None, type='', sort='', direction='',
621621

622622
return self._iter(int(number), url, Repository, params=params)
623623

624-
def iter_starred(self, login=None, number=-1):
624+
def iter_starred(self, login=None, sort=None, direction=None, number=-1):
625625
"""Iterate over repositories starred by ``login`` or the authenticated
626626
user.
627627
628+
.. versionchanged:: 0.5
629+
Added sort and direction parameters (optional) as per the change in
630+
GitHub's API.
631+
628632
:param str login: (optional), name of user whose stars you want to see
633+
:param str sort: (optional), either 'created' (when the star was
634+
created) or 'updated' (when the repository was last pushed to)
635+
:param str direction: (optional), either 'asc' or 'desc'. Default:
636+
'desc'
629637
:param int number: (optional), number of repositories to return.
630638
Default: -1 returns all repositories
631639
:returns: generator of :class:`Repository <github3.repos.Repository>`
632640
"""
633641
if login:
634-
return self.user(login).iter_starred()
642+
return self.user(login).iter_starred(sort, direction)
635643

644+
params = {'sort': sort, 'direction': direction}
645+
self._remove_none(params)
636646
url = self._build_url('user', 'starred')
637-
return self._iter(int(number), url, Repository)
647+
return self._iter(int(number), url, Repository, params)
638648

639649
def iter_subscriptions(self, login=None, number=-1):
640650
"""Iterate over repositories subscribed to by ``login`` or the

github3/users.py

Lines changed: 13 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -261,16 +261,27 @@ def iter_received_events(self, public=False, number=-1):
261261
url = self._build_url(*path, base_url=self._api)
262262
return self._iter(int(number), url, Event)
263263

264-
def iter_starred(self, number=-1):
264+
def iter_starred(self, sort=None, direction=None, number=-1):
265265
"""Iterate over repositories starred by this user.
266266
267+
.. versionchanged:: 0.5
268+
Added sort and direction parameters (optional) as per the change in
269+
GitHub's API.
270+
267271
:param int number: (optional), number of starred repos to return.
268272
Default: -1, returns all available repos
273+
:param str sort: (optional), either 'created' (when the star was
274+
created) or 'updated' (when the repository was last pushed to)
275+
:param str direction: (optional), either 'asc' or 'desc'. Default:
276+
'desc'
269277
:returns: generator of :class:`Repository <github3.repos.Repository>`
270278
"""
271279
from github3.repos import Repository
280+
281+
params = {'sort': sort, 'direction': direction}
282+
self._remove_none(params)
272283
url = self._build_url('starred', base_url=self._api)
273-
return self._iter(int(number), url, Repository)
284+
return self._iter(int(number), url, Repository, params)
274285

275286
def iter_subscriptions(self, number=-1):
276287
"""Iterate over repositories subscribed to by this user.

tests/test_github.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -477,7 +477,7 @@ def test_iter_repos_sort(self):
477477
def test_iter_starred(self):
478478
self.response('repo', _iter=True)
479479
self.get('https://api.github.com/user/starred')
480-
self.conf.update(params=None)
480+
self.conf.update(params={})
481481

482482
self.login()
483483
expect(next(self.g.iter_starred())).isinstance(

0 commit comments

Comments
 (0)
0