aboutsummaryrefslogtreecommitdiffstats
path: root/github3/api.py
diff options
context:
space:
mode:
Diffstat (limited to 'github3/api.py')
-rw-r--r--github3/api.py26
1 files changed, 14 insertions, 12 deletions
diff --git a/github3/api.py b/github3/api.py
index 74a51b9..d11aef6 100644
--- a/github3/api.py
+++ b/github3/api.py
@@ -7,6 +7,11 @@ github3.api
This module provies the core GitHub3 API interface.
"""
+from urlparse import urlparse, parse_qs
+
+import requests
+from decorator import decorator
+
from .packages import omnijson as json
from .packages.link_header import parse_link_value
@@ -15,9 +20,7 @@ from .helpers import is_collection, to_python, to_api, get_scope
from .config import settings
-import requests
-from decorator import decorator
PAGING_SIZE = 100
@@ -69,7 +72,7 @@ class GithubCore(object):
return r
- def _http_resource(self, verb, endpoint, params=None, **etc):
+ def _http_resource(self, verb, endpoint, params=None, check_status=True, **etc):
url = self._generate_url(endpoint)
args = (verb, url)
@@ -83,7 +86,8 @@ class GithubCore(object):
r = self.session.request(*args, **kwargs)
r = self._requests_post_hook(r)
- r.raise_for_status()
+ if check_status:
+ r.raise_for_status()
return r
@@ -104,7 +108,10 @@ class GithubCore(object):
@staticmethod
def _total_pages_from_header(link_header):
- from urlparse import urlparse, parse_qs
+
+ if link_header is None:
+ return link_header
+
page_info = {}
for link in link_header.split(','):
@@ -147,11 +154,10 @@ class GithubCore(object):
kwargs['per_page'] = (limit - r_count)
moar = False
-
r = self._http_resource('GET', resource, params=kwargs)
max_page = self._total_pages_from_header(r.headers['link'])
- if max_page is True:
+ if (max_page is True) or (max_page is None):
moar = False
d_items = self._resource_deserialize(r.content)
@@ -203,12 +209,8 @@ class Github(GithubCore):
"""Get the authenticated user."""
return self._get_resource(('user'), CurrentUser)
- # def get_repos(self, username):
- # """Get repos."""
- # return self._get_resource(('user', 'username', 'repos'), Repo)
-
def get_repo(self, username, reponame):
- """Get the authenticated user."""
+ """Get the given repo."""
return self._get_resource(('repos', username, reponame), Repo)
def get_org(self, login):