github: lighter iter_issues if repo is the only query criterion
This commit is contained in:
parent
68919a77d3
commit
c696cfa086
2 changed files with 16 additions and 1 deletions
|
|
@ -55,7 +55,13 @@ class GithubBackend(BaseBackend, ICapBugTracker):
|
|||
return self.browser.get_issue(_id)
|
||||
|
||||
def iter_issues(self, query):
|
||||
for issue in self.browser.iter_issues(query):
|
||||
if ((query.assignee, query.author, query.status, query.title) ==
|
||||
(None, None, None, None)):
|
||||
it = self.browser.iter_project_issues(query.project)
|
||||
else:
|
||||
it = self.browser.iter_issues(query)
|
||||
|
||||
for issue in it:
|
||||
yield issue
|
||||
|
||||
def create_issue(self, project_id):
|
||||
|
|
|
|||
|
|
@ -63,6 +63,15 @@ class GithubBrowser(BaseBrowser):
|
|||
json = self.do_get('https://api.github.com/repos/%s/issues/%s' % (project_id, issue_number))
|
||||
return self.make_issue(_id, json, fetch_project)
|
||||
|
||||
def iter_project_issues(self, project_id):
|
||||
base_url = 'https://api.github.com/repos/%s/issues' % project_id
|
||||
for json in self._paginated(base_url):
|
||||
for jissue in json:
|
||||
issue_id = '%s/%s' % (project_id, jissue['number'])
|
||||
yield self.make_issue(issue_id, jissue)
|
||||
if len(json) < 100:
|
||||
break
|
||||
|
||||
def iter_issues(self, query):
|
||||
qsparts = ['repo:%s' % query.project]
|
||||
if query.assignee:
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue