@@ -860,32 +860,41 @@ def search_issues(self, owner, repo, state, keyword, start_page=0):
860
860
issues = json .get ('issues' , [])
861
861
return [LegacyIssue (l , self ) for l in issues ]
862
862
863
- def search_repos (self , keyword , language = '' , start_page = 0 ):
863
+ def search_repos (self , keyword , language = None , start_page = None ,
864
+ sort = None ):
864
865
"""Search all repositories by keyword.
865
866
866
867
:param str keyword: (required)
867
868
:param str language: (optional), language to filter by
868
869
:param int start_page: (optional), page to get (results come 100/page)
870
+ :param str sort: (optional), how to sort the results; accepted values:
871
+ ('stars', 'forks', 'updated')
869
872
:returns: list of :class:`LegacyRepo <github3.legacy.LegacyRepo>`\ s
870
873
"""
871
874
url = self ._build_url ('legacy' , 'repos' , 'search' , keyword )
872
- params = {}
873
- if language :
874
- params ['language' ] = language
875
- if start_page > 0 :
876
- params ['start_page' ] = start_page
875
+ params = {'language' : language , 'start_page' : start_page }
876
+ if sort in ('stars' , 'forks' , 'updated' ):
877
+ params ['sort' ] = sort
877
878
json = self ._json (self ._get (url , params = params ), 200 )
878
879
repos = json .get ('repositories' , [])
879
880
return [LegacyRepo (r , self ) for r in repos ]
880
881
881
- def search_users (self , keyword , start_page = 0 ):
882
+ def search_users (self , keyword , start_page = 0 , sort = None , order = None ):
882
883
"""Search all users by keyword.
883
884
884
885
:param str keyword: (required)
885
886
:param int start_page: (optional), page to get (results come 100/page)
887
+ :param str sort: (optional), how to sort the results; accepted values:
888
+ ('followers', 'joined', 'repositories')
889
+ :param str order: (optional), sort order if ``sort`` isn't provided,
890
+ accepted values: ('asc', 'desc')
886
891
:returns: list of :class:`LegacyUser <github3.legacy.LegacyUser>`\ s
887
892
"""
888
893
params = {'start_page' : int (start_page )} if int (start_page ) > 0 else {}
894
+ if sort in ('followers' , 'joined' , 'repositories' ):
895
+ params ['sort' ] = sort
896
+ if order in ('asc' , 'desc' ) and not sort :
897
+ params ['order' ] = order
889
898
url = self ._build_url ('legacy' , 'user' , 'search' , str (keyword ))
890
899
json = self ._json (self ._get (url , params = params ), 200 )
891
900
users = json .get ('users' , [])
0 commit comments