Skip to content

Instantly share code, notes, and snippets.

@Hoikas
Created December 6, 2012 02:47
Show Gist options
  • Save Hoikas/4221430 to your computer and use it in GitHub Desktop.
Save Hoikas/4221430 to your computer and use it in GitHub Desktop.
from http import client as httplib
import json
# Stolen shamelessly from gitobot
class GithubPhailure(Exception):
pass
class NotFound(GithubPhailure):
pass
def _do_blocking_request(the_api_request):
_conn = httplib.HTTPSConnection("api.github.com", timeout=5)
_conn.request("GET", the_api_request)
_resp = _conn.getresponse()
if _resp.status == httplib.NOT_FOUND: # yes, this is important
raise NotFound()
elif _resp.status != httplib.OK:
raise GithubPhailure("HTTP %i %s" % (_resp.status, _resp.reason))
_data = _resp.read()
_conn.close()
return json.loads(_data.decode("UTF-8"))
if __name__ == '__main__':
forks = _do_blocking_request("/repos/H-uru/Plasma/forks")
for i, ass in enumerate(forks):
user = _do_blocking_request("/users/%s" % ass["owner"]["login"])
if not "email" in user:
continue
if user["email"] is None:
continue
if user["name"] is None:
continue
if i + 1 < len(forks):
end = ','
else:
end = '\n'
print('"%s <%s>"' % (user["name"], user["email"]), end=end)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment