Correctly deal with API errors.
This commit is contained in:
parent
eed2b0fd81
commit
3edfb7d5c3
1 changed files with 11 additions and 4 deletions
|
@ -1,5 +1,6 @@
|
||||||
#!/usr/bin/env python
|
#!/usr/bin/env python
|
||||||
|
|
||||||
|
import json
|
||||||
import requests
|
import requests
|
||||||
|
|
||||||
GITHUB_URL = 'https://api.github.com'
|
GITHUB_URL = 'https://api.github.com'
|
||||||
|
@ -15,10 +16,16 @@ class GitHub:
|
||||||
url = '%s%s' % (GITHUB_URL, path)
|
url = '%s%s' % (GITHUB_URL, path)
|
||||||
if not 'headers' in kw:
|
if not 'headers' in kw:
|
||||||
kw['headers'] = dict()
|
kw['headers'] = dict()
|
||||||
kw['headers']['Authorization'] = self._authorization
|
headers = kw['headers']
|
||||||
kw['headers']['Accept'] = 'application/vnd.github.manifold-preview'
|
headers['Authorization'] = self._authorization
|
||||||
|
headers['Accept'] = 'application/vnd.github.manifold-preview'
|
||||||
|
if 'data' in kw:
|
||||||
|
kw['data'] = json.dumps(kw['data'])
|
||||||
|
|
||||||
return getattr(requests, method)(url, **kw)
|
r = getattr(requests, method)(url, **kw).json()
|
||||||
|
if 'message' in r:
|
||||||
|
raise Exception(json.dumps(r, indent=2, separators=(',', ': ')))
|
||||||
|
return r
|
||||||
|
|
||||||
|
|
||||||
class _Executable:
|
class _Executable:
|
||||||
|
@ -28,7 +35,7 @@ class _Executable:
|
||||||
self._path = path
|
self._path = path
|
||||||
|
|
||||||
def __call__(self, **kw):
|
def __call__(self, **kw):
|
||||||
return self._gh._http(self._method, self._path, **kw).json()
|
return self._gh._http(self._method, self._path, **kw)
|
||||||
|
|
||||||
|
|
||||||
class _Callable(object):
|
class _Callable(object):
|
||||||
|
|
Loading…
Reference in a new issue