55
55
GITHUB_HOST = 'github.com'
56
56
WEB_GITHUB_URL = 'https://github.com'
57
57
API_GITHUB_URL = 'https://api.github.com'
60
61
def store_github_token(scheme, host, token):
303
304
raise InvalidHttpResponse(path, response.text)
304
305
return json.loads(response.text)
307
def _list_paged(self, path, parameters=None, per_page=None):
308
if parameters is None:
311
parameters = dict(parameters.items())
313
parameters['per_page'] = str(per_page)
317
parameters['page'] = str(page)
318
response = self._api_request(
320
';'.join(['%s=%s' % (k, urlutils.quote(v))
321
for (k, v) in parameters.items()]))
322
if response.status != 200:
323
raise InvalidHttpResponse(path, response.text)
324
data = json.loads(response.text)
325
for entry in data['items']:
328
if i >= data['total_count']:
306
332
def _search_issues(self, query):
307
333
path = 'search/issues'
308
response = self._api_request(
309
'GET', path + '?q=' + urlutils.quote(query))
310
if response.status != 200:
311
raise InvalidHttpResponse(path, response.text)
312
return json.loads(response.text)
334
return self._list_paged(path, {'q': query}, per_page=DEFAULT_PER_PAGE)
314
336
def _create_fork(self, repo, owner=None):
315
337
(orig_owner, orig_repo) = repo.split('/')
450
472
elif status == 'merged':
451
473
query.append('is:merged')
452
474
query.append('author:%s' % self._current_user['login'])
453
for issue in self._search_issues(query=' '.join(query))['items']:
475
for issue in self._search_issues(query=' '.join(query)):
454
476
url = issue['pull_request']['url']
455
477
response = self._api_request('GET', url)
456
478
if response.status != 200: