diff --git a/.gitignore b/.gitignore index 98aa8eff..fa4ed127 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,7 @@ ############################ Copyrights and license ############################ # # # Copyright 2012 Vincent Jacques # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -28,3 +29,7 @@ GithubCredentials.py /PyGithub.egg-info/ /.coverage /developer.github.com/ + +*.cfg +*.bat +*.py~ diff --git a/README.rst b/README.rst index 7b03e11c..c7d519cc 100644 --- a/README.rst +++ b/README.rst @@ -7,18 +7,28 @@ Should you have any question, any remark, or if you find a bug, or if there is s PyGithub is stable. I will maintain it up to date with the API, and fix bugs if any, but I don't plan new heavy developments. + What's new? =========== +Thank you, dear stargazers! +--------------------------- -`Version 1.18.0 `_ (August 21st, 2013) (Bénodet edition) -------------------------------------------------------------------------------------------------------------------------------- +Starting today (September 05th, 2013), we now need more than 8 bits to store the number of `stargazers `_! Thank you so much! -* `Issues `_' ``repository`` attribute will never be ``None``. Thank you `stuglaser `_ for the pull request -* No more false assumption on `rate_limiting `_, and creation of ``rate_limiting_resettime``. Thank you `edjackson `_ for the pull request -* `New `_ parameters ``since`` and ``until`` to ``Repository.get_commits``. Thank you `apetresc `_ for the pull request -* `Catch `_ Json parsing exception for some internal server errors, and throw a better exception. Thank you `MarkRoddy `_ for the pull request -* `Allow `_ reversed iteration of ``PaginatedList``s. Thank you `davidbrai `_ for the pull request +`Version 1.19.0 `_ (September ??th, 2013) (AKFish's edition) +----------------------------------------------------------------------------------------------------------------------------------- + +* Implement `conditional requests `_ by the method ``GithubObject.update``. Thank you very much `akfish `_ for the pull request and your collaboration! +* Implement persistence of PyGithub objects: ``Github.save`` and ``Github.load``. Don't forget to ``update`` your objects after loading them, it won't decrease your rate limiting quota if nothing has changed. Again, thank you `akfish `_ +* Implement ``Github.get_repos`` to get all public repositories +* Implement ``NamedUser.has_in_following`` +* `Implement `_ ``Github.get_api_status``, ``Github.get_last_api_status_message`` and ``Github.get_api_status_messages``. Thank you `ruxandraburtica `_ for asking +* Implement ``Github.get_rate_limit`` +* Add many missing attributes +* Technical change: HTTP headers are now stored in retrieved objects. This is a base for new functionalities. Thank you `akfish `_ for the pull request +* Use the new URL to fork gists (minor change) +* Use the new URL to test hooks (minor change) What's missing? =============== @@ -30,10 +40,6 @@ Github API v3 URLs not (yet) covered by PyGithub * ``/applications/:client_id/tokens/:access_token`` (GET) * ``/feeds`` (GET) -* ``/gists/:id/forks`` (POST) - - * instead, ``Gist.create_fork`` calls the old URL ``/gists/:id/fork`` - * ``/meta`` (GET) * ``/notifications`` (PUT) * ``/notifications/emails`` (GET) @@ -48,16 +54,8 @@ Github API v3 URLs not (yet) covered by PyGithub * ``/notifications/threads/:id/subscription`` (DELETE) * ``/notifications/threads/:id/subscription`` (GET) * ``/notifications/threads/:id/subscription`` (PUT) -* ``/rate_limit`` (GET) - - * should be called in method ``Github.get_rate_limit``. See also ``Github.rate_limiting`` - * ``/repos/:owner/:repo/contents/:path`` (DELETE) * ``/repos/:owner/:repo/contents/:path`` (PUT) -* ``/repos/:owner/:repo/hooks/:id/tests`` (POST) - - * instead, ``Hook.test`` calls the old URL ``/repos/:owner/:repo/hooks/:id/test`` - * ``/repos/:owner/:repo/notifications`` (GET) * ``/repos/:owner/:repo/notifications`` (PUT) * ``/repos/:owner/:repo/stats/code_frequency`` (GET) @@ -68,17 +66,10 @@ Github API v3 URLs not (yet) covered by PyGithub * ``/repos/:owner/:repo/subscription`` (DELETE) * ``/repos/:owner/:repo/subscription`` (GET) * ``/repos/:owner/:repo/subscription`` (PUT) -* ``/repositories`` (GET) - - * should be called in method ``Github.get_repos`` - * ``/search/code`` (GET) * ``/search/issues`` (GET) * ``/search/repositories`` (GET) * ``/search/users`` (GET) -* ``/users/:user/following/:target_user`` (GET) - - * should be called in method ``NamedUser.has_in_following`` Documentation ============= diff --git a/doc/conf.py b/doc/conf.py index 63f326af..9f856df3 100644 --- a/doc/conf.py +++ b/doc/conf.py @@ -281,6 +281,7 @@ githubClasses = [ "../github/MainClass.py", "../github/PaginatedList.py", "../github/Requester.py", + "../github/Consts.py", "../github/__init__.py"] ] @@ -318,7 +319,7 @@ for githubClass in githubClasses + ["MainClass"]: if not isProperty: assert method is None, method + " has no :calls: section" method = line.split("(")[0][8:] - if method in ["_initAttributes", "_useAttributes", "__init__", "__create_pull_1", "__create_pull_2", "__create_pull", "_hub", "__get_FIX_REPO_GET_GIT_REF", "__set_FIX_REPO_GET_GIT_REF", "__get_per_page", "__set_per_page"]: + if method in ["_initAttributes", "_useAttributes", "__init__", "__create_pull_1", "__create_pull_2", "__create_pull", "_hub", "__get_FIX_REPO_GET_GIT_REF", "__set_FIX_REPO_GET_GIT_REF", "__get_per_page", "__set_per_page", "create_from_raw_data", "dump", "load"]: method = None isProperty = False if line.startswith(" :calls: `"): diff --git a/github/AuthenticatedUser.py b/github/AuthenticatedUser.py index a92a7813..8ae83202 100644 --- a/github/AuthenticatedUser.py +++ b/github/AuthenticatedUser.py @@ -5,6 +5,7 @@ # Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -38,6 +39,7 @@ import github.UserKey import github.Issue import github.Event import github.Authorization +import github.Notification class AuthenticatedUser(github.GithubObject.CompletableGithubObject): @@ -109,6 +111,14 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._email) return self._NoneIfNotSet(self._email) + @property + def events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._events_url) + return self._NoneIfNotSet(self._events_url) + @property def followers(self): """ @@ -117,6 +127,14 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._followers) return self._NoneIfNotSet(self._followers) + @property + def followers_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._followers_url) + return self._NoneIfNotSet(self._followers_url) + @property def following(self): """ @@ -125,6 +143,22 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._following) return self._NoneIfNotSet(self._following) + @property + def following_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._following_url) + return self._NoneIfNotSet(self._following_url) + + @property + def gists_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._gists_url) + return self._NoneIfNotSet(self._gists_url) + @property def gravatar_id(self): """ @@ -181,6 +215,14 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._name) return self._NoneIfNotSet(self._name) + @property + def organizations_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._organizations_url) + return self._NoneIfNotSet(self._organizations_url) + @property def owned_private_repos(self): """ @@ -221,6 +263,46 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._public_repos) return self._NoneIfNotSet(self._public_repos) + @property + def received_events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._received_events_url) + return self._NoneIfNotSet(self._received_events_url) + + @property + def repos_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._repos_url) + return self._NoneIfNotSet(self._repos_url) + + @property + def site_admin(self): + """ + :type: bool + """ + self._completeIfNotSet(self._site_admin) + return self._NoneIfNotSet(self._site_admin) + + @property + def starred_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._starred_url) + return self._NoneIfNotSet(self._starred_url) + + @property + def subscriptions_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._subscriptions_url) + return self._NoneIfNotSet(self._subscriptions_url) + @property def total_private_repos(self): """ @@ -237,6 +319,14 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._type) return self._NoneIfNotSet(self._type) + @property + def updated_at(self): + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._updated_at) + return self._NoneIfNotSet(self._updated_at) + @property def url(self): """ @@ -256,8 +346,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", "/user/emails", - None, - post_parameters + input=post_parameters ) def add_to_following(self, following): @@ -269,9 +358,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(following, github.NamedUser.NamedUser), following headers, data = self._requester.requestJsonAndCheck( "PUT", - "/user/following/" + following._identity, - None, - None + "/user/following/" + following._identity ) def add_to_starred(self, starred): @@ -283,9 +370,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(starred, github.Repository.Repository), starred headers, data = self._requester.requestJsonAndCheck( "PUT", - "/user/starred/" + starred._identity, - None, - None + "/user/starred/" + starred._identity ) def add_to_subscriptions(self, subscription): @@ -297,9 +382,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(subscription, github.Repository.Repository), subscription headers, data = self._requester.requestJsonAndCheck( "PUT", - "/user/subscriptions/" + subscription._identity, - None, - None + "/user/subscriptions/" + subscription._identity ) def add_to_watched(self, watched): @@ -311,9 +394,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(watched, github.Repository.Repository), watched headers, data = self._requester.requestJsonAndCheck( "PUT", - "/user/watched/" + watched._identity, - None, - None + "/user/watched/" + watched._identity ) def create_authorization(self, scopes=github.GithubObject.NotSet, note=github.GithubObject.NotSet, note_url=github.GithubObject.NotSet, client_id=github.GithubObject.NotSet, client_secret=github.GithubObject.NotSet): @@ -345,10 +426,9 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", "/authorizations", - None, - post_parameters + input=post_parameters ) - return github.Authorization.Authorization(self._requester, data, completed=True) + return github.Authorization.Authorization(self._requester, headers, data, completed=True) def create_fork(self, repo): """ @@ -359,11 +439,9 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(repo, github.Repository.Repository), repo headers, data = self._requester.requestJsonAndCheck( "POST", - "/repos/" + repo.owner.login + "/" + repo.name + "/forks", - None, - None + "/repos/" + repo.owner.login + "/" + repo.name + "/forks" ) - return github.Repository.Repository(self._requester, data, completed=True) + return github.Repository.Repository(self._requester, headers, data, completed=True) def create_gist(self, public, files, description=github.GithubObject.NotSet): """ @@ -385,10 +463,9 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", "/gists", - None, - post_parameters + input=post_parameters ) - return github.Gist.Gist(self._requester, data, completed=True) + return github.Gist.Gist(self._requester, headers, data, completed=True) def create_key(self, title, key): """ @@ -406,10 +483,9 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", "/user/keys", - None, - post_parameters + input=post_parameters ) - return github.UserKey.UserKey(self._requester, data, completed=True) + return github.UserKey.UserKey(self._requester, headers, data, completed=True) def create_repo(self, name, description=github.GithubObject.NotSet, homepage=github.GithubObject.NotSet, private=github.GithubObject.NotSet, has_issues=github.GithubObject.NotSet, has_wiki=github.GithubObject.NotSet, has_downloads=github.GithubObject.NotSet, auto_init=github.GithubObject.NotSet, gitignore_template=github.GithubObject.NotSet): """ @@ -456,10 +532,9 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", "/user/repos", - None, - post_parameters + input=post_parameters ) - return github.Repository.Repository(self._requester, data, completed=True) + return github.Repository.Repository(self._requester, headers, data, completed=True) def edit(self, name=github.GithubObject.NotSet, email=github.GithubObject.NotSet, blog=github.GithubObject.NotSet, company=github.GithubObject.NotSet, location=github.GithubObject.NotSet, hireable=github.GithubObject.NotSet, bio=github.GithubObject.NotSet): """ @@ -498,8 +573,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", "/user", - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -512,11 +586,9 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - "/authorizations/" + str(id), - None, - None + "/authorizations/" + str(id) ) - return github.Authorization.Authorization(self._requester, data, completed=True) + return github.Authorization.Authorization(self._requester, headers, data, completed=True) def get_authorizations(self): """ @@ -537,9 +609,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "GET", - "/user/emails", - None, - None + "/user/emails" ) return data @@ -676,11 +746,9 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - "/user/keys/" + str(id), - None, - None + "/user/keys/" + str(id) ) - return github.UserKey.UserKey(self._requester, data, completed=True) + return github.UserKey.UserKey(self._requester, headers, data, completed=True) def get_keys(self): """ @@ -703,15 +771,15 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(id, (str, unicode)), id headers, data = self._requester.requestJsonAndCheck( "GET", - "/notifications/threads/" + id, - None, - None + "/notifications/threads/" + id ) - return github.Notification.Notification(self._requester, data, completed=True) + return github.Notification.Notification(self._requester, headers, data, completed=True) def get_notifications(self, all=github.GithubObject.NotSet, participating=github.GithubObject.NotSet): """ :calls: `GET /notifications `_ + :param all: bool + :param participating: bool :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Notification.Notification` """ @@ -767,11 +835,9 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(name, (str, unicode)), name headers, data = self._requester.requestJsonAndCheck( "GET", - "/repos/" + self.login + "/" + name, - None, - None + "/repos/" + self.login + "/" + name ) - return github.Repository.Repository(self._requester, data, completed=True) + return github.Repository.Repository(self._requester, headers, data, completed=True) def get_repos(self, type=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet): """ @@ -855,9 +921,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(following, github.NamedUser.NamedUser), following status, headers, data = self._requester.requestJson( "GET", - "/user/following/" + following._identity, - None, - None + "/user/following/" + following._identity ) return status == 204 @@ -870,9 +934,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(starred, github.Repository.Repository), starred status, headers, data = self._requester.requestJson( "GET", - "/user/starred/" + starred._identity, - None, - None + "/user/starred/" + starred._identity ) return status == 204 @@ -885,9 +947,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(subscription, github.Repository.Repository), subscription status, headers, data = self._requester.requestJson( "GET", - "/user/subscriptions/" + subscription._identity, - None, - None + "/user/subscriptions/" + subscription._identity ) return status == 204 @@ -900,9 +960,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(watched, github.Repository.Repository), watched status, headers, data = self._requester.requestJson( "GET", - "/user/watched/" + watched._identity, - None, - None + "/user/watched/" + watched._identity ) return status == 204 @@ -917,8 +975,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "DELETE", "/user/emails", - None, - post_parameters + input=post_parameters ) def remove_from_following(self, following): @@ -930,9 +987,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(following, github.NamedUser.NamedUser), following headers, data = self._requester.requestJsonAndCheck( "DELETE", - "/user/following/" + following._identity, - None, - None + "/user/following/" + following._identity ) def remove_from_starred(self, starred): @@ -944,9 +999,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(starred, github.Repository.Repository), starred headers, data = self._requester.requestJsonAndCheck( "DELETE", - "/user/starred/" + starred._identity, - None, - None + "/user/starred/" + starred._identity ) def remove_from_subscriptions(self, subscription): @@ -958,9 +1011,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(subscription, github.Repository.Repository), subscription headers, data = self._requester.requestJsonAndCheck( "DELETE", - "/user/subscriptions/" + subscription._identity, - None, - None + "/user/subscriptions/" + subscription._identity ) def remove_from_watched(self, watched): @@ -972,9 +1023,7 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): assert isinstance(watched, github.Repository.Repository), watched headers, data = self._requester.requestJsonAndCheck( "DELETE", - "/user/watched/" + watched._identity, - None, - None + "/user/watched/" + watched._identity ) def _initAttributes(self): @@ -986,8 +1035,12 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): self._created_at = github.GithubObject.NotSet self._disk_usage = github.GithubObject.NotSet self._email = github.GithubObject.NotSet + self._events_url = github.GithubObject.NotSet self._followers = github.GithubObject.NotSet + self._followers_url = github.GithubObject.NotSet self._following = github.GithubObject.NotSet + self._following_url = github.GithubObject.NotSet + self._gists_url = github.GithubObject.NotSet self._gravatar_id = github.GithubObject.NotSet self._hireable = github.GithubObject.NotSet self._html_url = github.GithubObject.NotSet @@ -995,13 +1048,20 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): self._location = github.GithubObject.NotSet self._login = github.GithubObject.NotSet self._name = github.GithubObject.NotSet + self._organizations_url = github.GithubObject.NotSet self._owned_private_repos = github.GithubObject.NotSet self._plan = github.GithubObject.NotSet self._private_gists = github.GithubObject.NotSet self._public_gists = github.GithubObject.NotSet self._public_repos = github.GithubObject.NotSet + self._received_events_url = github.GithubObject.NotSet + self._repos_url = github.GithubObject.NotSet + self._site_admin = github.GithubObject.NotSet + self._starred_url = github.GithubObject.NotSet + self._subscriptions_url = github.GithubObject.NotSet self._total_private_repos = github.GithubObject.NotSet self._type = github.GithubObject.NotSet + self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet def _useAttributes(self, attributes): @@ -1029,12 +1089,24 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): if "email" in attributes: # pragma no branch assert attributes["email"] is None or isinstance(attributes["email"], (str, unicode)), attributes["email"] self._email = attributes["email"] + if "events_url" in attributes: # pragma no branch + assert attributes["events_url"] is None or isinstance(attributes["events_url"], (str, unicode)), attributes["events_url"] + self._events_url = attributes["events_url"] if "followers" in attributes: # pragma no branch assert attributes["followers"] is None or isinstance(attributes["followers"], (int, long)), attributes["followers"] self._followers = attributes["followers"] + if "followers_url" in attributes: # pragma no branch + assert attributes["followers_url"] is None or isinstance(attributes["followers_url"], (str, unicode)), attributes["followers_url"] + self._followers_url = attributes["followers_url"] if "following" in attributes: # pragma no branch assert attributes["following"] is None or isinstance(attributes["following"], (int, long)), attributes["following"] self._following = attributes["following"] + if "following_url" in attributes: # pragma no branch + assert attributes["following_url"] is None or isinstance(attributes["following_url"], (str, unicode)), attributes["following_url"] + self._following_url = attributes["following_url"] + if "gists_url" in attributes: # pragma no branch + assert attributes["gists_url"] is None or isinstance(attributes["gists_url"], (str, unicode)), attributes["gists_url"] + self._gists_url = attributes["gists_url"] if "gravatar_id" in attributes: # pragma no branch assert attributes["gravatar_id"] is None or isinstance(attributes["gravatar_id"], (str, unicode)), attributes["gravatar_id"] self._gravatar_id = attributes["gravatar_id"] @@ -1056,12 +1128,15 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): if "name" in attributes: # pragma no branch assert attributes["name"] is None or isinstance(attributes["name"], (str, unicode)), attributes["name"] self._name = attributes["name"] + if "organizations_url" in attributes: # pragma no branch + assert attributes["organizations_url"] is None or isinstance(attributes["organizations_url"], (str, unicode)), attributes["organizations_url"] + self._organizations_url = attributes["organizations_url"] if "owned_private_repos" in attributes: # pragma no branch assert attributes["owned_private_repos"] is None or isinstance(attributes["owned_private_repos"], (int, long)), attributes["owned_private_repos"] self._owned_private_repos = attributes["owned_private_repos"] if "plan" in attributes: # pragma no branch assert attributes["plan"] is None or isinstance(attributes["plan"], dict), attributes["plan"] - self._plan = None if attributes["plan"] is None else github.Plan.Plan(self._requester, attributes["plan"], completed=False) + self._plan = None if attributes["plan"] is None else github.Plan.Plan(self._requester, self._headers, attributes["plan"], completed=False) if "private_gists" in attributes: # pragma no branch assert attributes["private_gists"] is None or isinstance(attributes["private_gists"], (int, long)), attributes["private_gists"] self._private_gists = attributes["private_gists"] @@ -1071,12 +1146,30 @@ class AuthenticatedUser(github.GithubObject.CompletableGithubObject): if "public_repos" in attributes: # pragma no branch assert attributes["public_repos"] is None or isinstance(attributes["public_repos"], (int, long)), attributes["public_repos"] self._public_repos = attributes["public_repos"] + if "received_events_url" in attributes: # pragma no branch + assert attributes["received_events_url"] is None or isinstance(attributes["received_events_url"], (str, unicode)), attributes["received_events_url"] + self._received_events_url = attributes["received_events_url"] + if "repos_url" in attributes: # pragma no branch + assert attributes["repos_url"] is None or isinstance(attributes["repos_url"], (str, unicode)), attributes["repos_url"] + self._repos_url = attributes["repos_url"] + if "site_admin" in attributes: # pragma no branch + assert attributes["site_admin"] is None or isinstance(attributes["site_admin"], bool), attributes["site_admin"] + self._site_admin = attributes["site_admin"] + if "starred_url" in attributes: # pragma no branch + assert attributes["starred_url"] is None or isinstance(attributes["starred_url"], (str, unicode)), attributes["starred_url"] + self._starred_url = attributes["starred_url"] + if "subscriptions_url" in attributes: # pragma no branch + assert attributes["subscriptions_url"] is None or isinstance(attributes["subscriptions_url"], (str, unicode)), attributes["subscriptions_url"] + self._subscriptions_url = attributes["subscriptions_url"] if "total_private_repos" in attributes: # pragma no branch assert attributes["total_private_repos"] is None or isinstance(attributes["total_private_repos"], (int, long)), attributes["total_private_repos"] self._total_private_repos = attributes["total_private_repos"] if "type" in attributes: # pragma no branch assert attributes["type"] is None or isinstance(attributes["type"], (str, unicode)), attributes["type"] self._type = attributes["type"] + if "updated_at" in attributes: # pragma no branch + assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] + self._updated_at = self._parseDatetime(attributes["updated_at"]) if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] diff --git a/github/Authorization.py b/github/Authorization.py index 14cc1350..a004fedf 100644 --- a/github/Authorization.py +++ b/github/Authorization.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -112,9 +113,7 @@ class Authorization(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, scopes=github.GithubObject.NotSet, add_scopes=github.GithubObject.NotSet, remove_scopes=github.GithubObject.NotSet, note=github.GithubObject.NotSet, note_url=github.GithubObject.NotSet): @@ -146,8 +145,7 @@ class Authorization(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -165,7 +163,7 @@ class Authorization(github.GithubObject.CompletableGithubObject): def _useAttributes(self, attributes): if "app" in attributes: # pragma no branch assert attributes["app"] is None or isinstance(attributes["app"], dict), attributes["app"] - self._app = None if attributes["app"] is None else github.AuthorizationApplication.AuthorizationApplication(self._requester, attributes["app"], completed=False) + self._app = None if attributes["app"] is None else github.AuthorizationApplication.AuthorizationApplication(self._requester, self._headers, attributes["app"], completed=False) if "created_at" in attributes: # pragma no branch assert attributes["created_at"] is None or isinstance(attributes["created_at"], (str, unicode)), attributes["created_at"] self._created_at = self._parseDatetime(attributes["created_at"]) diff --git a/github/AuthorizationApplication.py b/github/AuthorizationApplication.py index 392ec78c..8f38bc14 100644 --- a/github/AuthorizationApplication.py +++ b/github/AuthorizationApplication.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/Branch.py b/github/Branch.py index 11f074d5..9e761826 100644 --- a/github/Branch.py +++ b/github/Branch.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -55,7 +56,7 @@ class Branch(github.GithubObject.NonCompletableGithubObject): def _useAttributes(self, attributes): if "commit" in attributes: # pragma no branch assert attributes["commit"] is None or isinstance(attributes["commit"], dict), attributes["commit"] - self._commit = None if attributes["commit"] is None else github.Commit.Commit(self._requester, attributes["commit"], completed=False) + self._commit = None if attributes["commit"] is None else github.Commit.Commit(self._requester, self._headers, attributes["commit"], completed=False) if "name" in attributes: # pragma no branch assert attributes["name"] is None or isinstance(attributes["name"], (str, unicode)), attributes["name"] self._name = attributes["name"] diff --git a/github/Commit.py b/github/Commit.py index de9da2d1..eb5fa9ce 100644 --- a/github/Commit.py +++ b/github/Commit.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -48,6 +49,14 @@ class Commit(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._author) return self._NoneIfNotSet(self._author) + @property + def comments_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._comments_url) + return self._NoneIfNotSet(self._comments_url) + @property def commit(self): """ @@ -72,6 +81,14 @@ class Commit(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._files) return self._NoneIfNotSet(self._files) + @property + def html_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._html_url) + return self._NoneIfNotSet(self._html_url) + @property def parents(self): """ @@ -129,10 +146,9 @@ class Commit(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/comments", - None, - post_parameters + input=post_parameters ) - return github.CommitComment.CommitComment(self._requester, data, completed=True) + return github.CommitComment.CommitComment(self._requester, headers, data, completed=True) def create_status(self, state, target_url=github.GithubObject.NotSet, description=github.GithubObject.NotSet): """ @@ -155,10 +171,9 @@ class Commit(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self._parentUrl(self._parentUrl(self.url)) + "/statuses/" + self.sha, - None, - post_parameters + input=post_parameters ) - return github.CommitStatus.CommitStatus(self._requester, data, completed=True) + return github.CommitStatus.CommitStatus(self._requester, headers, data, completed=True) def get_comments(self): """ @@ -190,9 +205,11 @@ class Commit(github.GithubObject.CompletableGithubObject): def _initAttributes(self): self._author = github.GithubObject.NotSet + self._comments_url = github.GithubObject.NotSet self._commit = github.GithubObject.NotSet self._committer = github.GithubObject.NotSet self._files = github.GithubObject.NotSet + self._html_url = github.GithubObject.NotSet self._parents = github.GithubObject.NotSet self._sha = github.GithubObject.NotSet self._stats = github.GithubObject.NotSet @@ -201,23 +218,29 @@ class Commit(github.GithubObject.CompletableGithubObject): def _useAttributes(self, attributes): if "author" in attributes: # pragma no branch assert attributes["author"] is None or isinstance(attributes["author"], dict), attributes["author"] - self._author = None if attributes["author"] is None else github.NamedUser.NamedUser(self._requester, attributes["author"], completed=False) + self._author = None if attributes["author"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["author"], completed=False) + if "comments_url" in attributes: # pragma no branch + assert attributes["comments_url"] is None or isinstance(attributes["comments_url"], (str, unicode)), attributes["comments_url"] + self._comments_url = attributes["comments_url"] if "commit" in attributes: # pragma no branch assert attributes["commit"] is None or isinstance(attributes["commit"], dict), attributes["commit"] - self._commit = None if attributes["commit"] is None else github.GitCommit.GitCommit(self._requester, attributes["commit"], completed=False) + self._commit = None if attributes["commit"] is None else github.GitCommit.GitCommit(self._requester, self._headers, attributes["commit"], completed=False) if "committer" in attributes: # pragma no branch assert attributes["committer"] is None or isinstance(attributes["committer"], dict), attributes["committer"] - self._committer = None if attributes["committer"] is None else github.NamedUser.NamedUser(self._requester, attributes["committer"], completed=False) + self._committer = None if attributes["committer"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["committer"], completed=False) if "files" in attributes: # pragma no branch assert attributes["files"] is None or all(isinstance(element, dict) for element in attributes["files"]), attributes["files"] self._files = None if attributes["files"] is None else [ - github.File.File(self._requester, element, completed=False) + github.File.File(self._requester, self._headers, element, completed=False) for element in attributes["files"] ] + if "html_url" in attributes: # pragma no branch + assert attributes["html_url"] is None or isinstance(attributes["html_url"], (str, unicode)), attributes["html_url"] + self._html_url = attributes["html_url"] if "parents" in attributes: # pragma no branch assert attributes["parents"] is None or all(isinstance(element, dict) for element in attributes["parents"]), attributes["parents"] self._parents = None if attributes["parents"] is None else [ - Commit(self._requester, element, completed=False) + Commit(self._requester, self._headers, element, completed=False) for element in attributes["parents"] ] if "sha" in attributes: # pragma no branch @@ -225,7 +248,7 @@ class Commit(github.GithubObject.CompletableGithubObject): self._sha = attributes["sha"] if "stats" in attributes: # pragma no branch assert attributes["stats"] is None or isinstance(attributes["stats"], dict), attributes["stats"] - self._stats = None if attributes["stats"] is None else github.CommitStats.CommitStats(self._requester, attributes["stats"], completed=False) + self._stats = None if attributes["stats"] is None else github.CommitStats.CommitStats(self._requester, self._headers, attributes["stats"], completed=False) if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] diff --git a/github/CommitComment.py b/github/CommitComment.py index 30f1df3a..c2c897d1 100644 --- a/github/CommitComment.py +++ b/github/CommitComment.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -128,9 +129,7 @@ class CommitComment(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, body): @@ -146,8 +145,7 @@ class CommitComment(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -197,4 +195,4 @@ class CommitComment(github.GithubObject.CompletableGithubObject): self._url = attributes["url"] if "user" in attributes: # pragma no branch assert attributes["user"] is None or isinstance(attributes["user"], dict), attributes["user"] - self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, attributes["user"], completed=False) + self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["user"], completed=False) diff --git a/github/CommitStats.py b/github/CommitStats.py index 1be6a1d4..49f40778 100644 --- a/github/CommitStats.py +++ b/github/CommitStats.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/CommitStatus.py b/github/CommitStatus.py index 122c55c4..6ac935a8 100644 --- a/github/CommitStatus.py +++ b/github/CommitStatus.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -82,6 +83,13 @@ class CommitStatus(github.GithubObject.NonCompletableGithubObject): """ return self._NoneIfNotSet(self._updated_at) + @property + def url(self): + """ + :type: string + """ + return self._NoneIfNotSet(self._url) + def _initAttributes(self): self._created_at = github.GithubObject.NotSet self._creator = github.GithubObject.NotSet @@ -90,6 +98,7 @@ class CommitStatus(github.GithubObject.NonCompletableGithubObject): self._state = github.GithubObject.NotSet self._target_url = github.GithubObject.NotSet self._updated_at = github.GithubObject.NotSet + self._url = github.GithubObject.NotSet def _useAttributes(self, attributes): if "created_at" in attributes: # pragma no branch @@ -97,7 +106,7 @@ class CommitStatus(github.GithubObject.NonCompletableGithubObject): self._created_at = self._parseDatetime(attributes["created_at"]) if "creator" in attributes: # pragma no branch assert attributes["creator"] is None or isinstance(attributes["creator"], dict), attributes["creator"] - self._creator = None if attributes["creator"] is None else github.NamedUser.NamedUser(self._requester, attributes["creator"], completed=False) + self._creator = None if attributes["creator"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["creator"], completed=False) if "description" in attributes: # pragma no branch assert attributes["description"] is None or isinstance(attributes["description"], (str, unicode)), attributes["description"] self._description = attributes["description"] @@ -113,3 +122,6 @@ class CommitStatus(github.GithubObject.NonCompletableGithubObject): if "updated_at" in attributes: # pragma no branch assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] self._updated_at = self._parseDatetime(attributes["updated_at"]) + if "url" in attributes: # pragma no branch + assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] + self._url = attributes["url"] diff --git a/github/Comparison.py b/github/Comparison.py index a67cb5ae..f75a62d0 100644 --- a/github/Comparison.py +++ b/github/Comparison.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -90,6 +91,14 @@ class Comparison(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._html_url) return self._NoneIfNotSet(self._html_url) + @property + def merge_base_commit(self): + """ + :type: :class:`github.Commit.Commit` + """ + self._completeIfNotSet(self._merge_base_commit) + return self._NoneIfNotSet(self._merge_base_commit) + @property def patch_url(self): """ @@ -138,6 +147,7 @@ class Comparison(github.GithubObject.CompletableGithubObject): self._diff_url = github.GithubObject.NotSet self._files = github.GithubObject.NotSet self._html_url = github.GithubObject.NotSet + self._merge_base_commit = github.GithubObject.NotSet self._patch_url = github.GithubObject.NotSet self._permalink_url = github.GithubObject.NotSet self._status = github.GithubObject.NotSet @@ -150,14 +160,14 @@ class Comparison(github.GithubObject.CompletableGithubObject): self._ahead_by = attributes["ahead_by"] if "base_commit" in attributes: # pragma no branch assert attributes["base_commit"] is None or isinstance(attributes["base_commit"], dict), attributes["base_commit"] - self._base_commit = None if attributes["base_commit"] is None else github.Commit.Commit(self._requester, attributes["base_commit"], completed=False) + self._base_commit = None if attributes["base_commit"] is None else github.Commit.Commit(self._requester, self._headers, attributes["base_commit"], completed=False) if "behind_by" in attributes: # pragma no branch assert attributes["behind_by"] is None or isinstance(attributes["behind_by"], (int, long)), attributes["behind_by"] self._behind_by = attributes["behind_by"] if "commits" in attributes: # pragma no branch assert attributes["commits"] is None or all(isinstance(element, dict) for element in attributes["commits"]), attributes["commits"] self._commits = None if attributes["commits"] is None else [ - github.Commit.Commit(self._requester, element, completed=False) + github.Commit.Commit(self._requester, self._headers, element, completed=False) for element in attributes["commits"] ] if "diff_url" in attributes: # pragma no branch @@ -166,12 +176,15 @@ class Comparison(github.GithubObject.CompletableGithubObject): if "files" in attributes: # pragma no branch assert attributes["files"] is None or all(isinstance(element, dict) for element in attributes["files"]), attributes["files"] self._files = None if attributes["files"] is None else [ - github.File.File(self._requester, element, completed=False) + github.File.File(self._requester, self._headers, element, completed=False) for element in attributes["files"] ] if "html_url" in attributes: # pragma no branch assert attributes["html_url"] is None or isinstance(attributes["html_url"], (str, unicode)), attributes["html_url"] self._html_url = attributes["html_url"] + if "merge_base_commit" in attributes: # pragma no branch + assert attributes["merge_base_commit"] is None or isinstance(attributes["merge_base_commit"], dict), attributes["merge_base_commit"] + self._merge_base_commit = None if attributes["merge_base_commit"] is None else github.Commit.Commit(self._requester, self._headers, attributes["merge_base_commit"], completed=False) if "patch_url" in attributes: # pragma no branch assert attributes["patch_url"] is None or isinstance(attributes["patch_url"], (str, unicode)), attributes["patch_url"] self._patch_url = attributes["patch_url"] diff --git a/github/Consts.py b/github/Consts.py new file mode 100644 index 00000000..d68ff702 --- /dev/null +++ b/github/Consts.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +# #193: Line endings should be linux style + +# TODO: As of Thu Aug 21 22:40:13 (BJT) Chinese Standard Time 2013 +# lots of consts in this project are explict +# should realy round them up and reference them by consts +# EDIT: well, maybe :-) + +################################################################################ +# Request Header # +# (Case sensitive) # +################################################################################ +REQ_IF_NONE_MATCH = "If-None-Match" +REQ_IF_MODIFIED_SINCE = "If-Modified-Since" + +################################################################################ +# Response Header # +# (Lower Case) # +################################################################################ +RES_ETAG = "etag" +RES_LAST_MODIFED = "last-modified" diff --git a/github/ContentFile.py b/github/ContentFile.py index fda1d3d6..d13154dc 100644 --- a/github/ContentFile.py +++ b/github/ContentFile.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -47,6 +48,22 @@ class ContentFile(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._encoding) return self._NoneIfNotSet(self._encoding) + @property + def git_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._git_url) + return self._NoneIfNotSet(self._git_url) + + @property + def html_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._html_url) + return self._NoneIfNotSet(self._html_url) + @property def name(self): """ @@ -98,6 +115,8 @@ class ContentFile(github.GithubObject.CompletableGithubObject): def _initAttributes(self): self._content = github.GithubObject.NotSet self._encoding = github.GithubObject.NotSet + self._git_url = github.GithubObject.NotSet + self._html_url = github.GithubObject.NotSet self._name = github.GithubObject.NotSet self._path = github.GithubObject.NotSet self._sha = github.GithubObject.NotSet @@ -111,6 +130,12 @@ class ContentFile(github.GithubObject.CompletableGithubObject): if "encoding" in attributes: # pragma no branch assert attributes["encoding"] is None or isinstance(attributes["encoding"], (str, unicode)), attributes["encoding"] self._encoding = attributes["encoding"] + if "git_url" in attributes: # pragma no branch + assert attributes["git_url"] is None or isinstance(attributes["git_url"], (str, unicode)), attributes["git_url"] + self._git_url = attributes["git_url"] + if "html_url" in attributes: # pragma no branch + assert attributes["html_url"] is None or isinstance(attributes["html_url"], (str, unicode)), attributes["html_url"] + self._html_url = attributes["html_url"] if "name" in attributes: # pragma no branch assert attributes["name"] is None or isinstance(attributes["name"], (str, unicode)), attributes["name"] self._name = attributes["name"] diff --git a/github/Download.py b/github/Download.py index 7555a8c3..2cd057ca 100644 --- a/github/Download.py +++ b/github/Download.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -198,9 +199,7 @@ class Download(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def _initAttributes(self): diff --git a/github/Event.py b/github/Event.py index 60e7c863..20351025 100644 --- a/github/Event.py +++ b/github/Event.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -105,7 +106,7 @@ class Event(github.GithubObject.NonCompletableGithubObject): def _useAttributes(self, attributes): if "actor" in attributes: # pragma no branch assert attributes["actor"] is None or isinstance(attributes["actor"], dict), attributes["actor"] - self._actor = None if attributes["actor"] is None else github.NamedUser.NamedUser(self._requester, attributes["actor"], completed=False) + self._actor = None if attributes["actor"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["actor"], completed=False) if "created_at" in attributes: # pragma no branch assert attributes["created_at"] is None or isinstance(attributes["created_at"], (str, unicode)), attributes["created_at"] self._created_at = self._parseDatetime(attributes["created_at"]) @@ -114,7 +115,7 @@ class Event(github.GithubObject.NonCompletableGithubObject): self._id = attributes["id"] if "org" in attributes: # pragma no branch assert attributes["org"] is None or isinstance(attributes["org"], dict), attributes["org"] - self._org = None if attributes["org"] is None else github.Organization.Organization(self._requester, attributes["org"], completed=False) + self._org = None if attributes["org"] is None else github.Organization.Organization(self._requester, self._headers, attributes["org"], completed=False) if "payload" in attributes: # pragma no branch assert attributes["payload"] is None or isinstance(attributes["payload"], dict), attributes["payload"] self._payload = attributes["payload"] @@ -123,7 +124,7 @@ class Event(github.GithubObject.NonCompletableGithubObject): self._public = attributes["public"] if "repo" in attributes: # pragma no branch assert attributes["repo"] is None or isinstance(attributes["repo"], dict), attributes["repo"] - self._repo = None if attributes["repo"] is None else github.Repository.Repository(self._requester, attributes["repo"], completed=False) + self._repo = None if attributes["repo"] is None else github.Repository.Repository(self._requester, self._headers, attributes["repo"], completed=False) if "type" in attributes: # pragma no branch assert attributes["type"] is None or isinstance(attributes["type"], (str, unicode)), attributes["type"] self._type = attributes["type"] diff --git a/github/File.py b/github/File.py index 538fde6b..600f1e5f 100644 --- a/github/File.py +++ b/github/File.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -52,6 +53,13 @@ class File(github.GithubObject.NonCompletableGithubObject): """ return self._NoneIfNotSet(self._changes) + @property + def contents_url(self): + """ + :type: string + """ + return self._NoneIfNotSet(self._contents_url) + @property def deletions(self): """ @@ -98,6 +106,7 @@ class File(github.GithubObject.NonCompletableGithubObject): self._additions = github.GithubObject.NotSet self._blob_url = github.GithubObject.NotSet self._changes = github.GithubObject.NotSet + self._contents_url = github.GithubObject.NotSet self._deletions = github.GithubObject.NotSet self._filename = github.GithubObject.NotSet self._patch = github.GithubObject.NotSet @@ -115,6 +124,9 @@ class File(github.GithubObject.NonCompletableGithubObject): if "changes" in attributes: # pragma no branch assert attributes["changes"] is None or isinstance(attributes["changes"], (int, long)), attributes["changes"] self._changes = attributes["changes"] + if "contents_url" in attributes: # pragma no branch + assert attributes["contents_url"] is None or isinstance(attributes["contents_url"], (str, unicode)), attributes["contents_url"] + self._contents_url = attributes["contents_url"] if "deletions" in attributes: # pragma no branch assert attributes["deletions"] is None or isinstance(attributes["deletions"], (int, long)), attributes["deletions"] self._deletions = attributes["deletions"] diff --git a/github/Gist.py b/github/Gist.py index 66866a81..1b2f6d35 100644 --- a/github/Gist.py +++ b/github/Gist.py @@ -5,6 +5,7 @@ # Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -46,6 +47,22 @@ class Gist(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._comments) return self._NoneIfNotSet(self._comments) + @property + def comments_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._comments_url) + return self._NoneIfNotSet(self._comments_url) + + @property + def commits_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._commits_url) + return self._NoneIfNotSet(self._commits_url) + @property def created_at(self): """ @@ -86,6 +103,14 @@ class Gist(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._forks) return self._NoneIfNotSet(self._forks) + @property + def forks_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._forks_url) + return self._NoneIfNotSet(self._forks_url) + @property def git_pull_url(self): """ @@ -171,23 +196,20 @@ class Gist(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/comments", - None, - post_parameters + input=post_parameters ) - return github.GistComment.GistComment(self._requester, data, completed=True) + return github.GistComment.GistComment(self._requester, headers, data, completed=True) def create_fork(self): """ - :calls: `POST /gists/:id/fork `_ + :calls: `POST /gists/:id/forks `_ :rtype: :class:`github.Gist.Gist` """ headers, data = self._requester.requestJsonAndCheck( "POST", - self.url + "/fork", - None, - None + self.url + "/forks" ) - return Gist(self._requester, data, completed=True) + return Gist(self._requester, headers, data, completed=True) def delete(self): """ @@ -196,9 +218,7 @@ class Gist(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, description=github.GithubObject.NotSet, files=github.GithubObject.NotSet): @@ -218,8 +238,7 @@ class Gist(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -232,11 +251,9 @@ class Gist(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/comments/" + str(id), - None, - None + self.url + "/comments/" + str(id) ) - return github.GistComment.GistComment(self._requester, data, completed=True) + return github.GistComment.GistComment(self._requester, headers, data, completed=True) def get_comments(self): """ @@ -257,9 +274,7 @@ class Gist(github.GithubObject.CompletableGithubObject): """ status, headers, data = self._requester.requestJson( "GET", - self.url + "/star", - None, - None + self.url + "/star" ) return status == 204 @@ -270,9 +285,7 @@ class Gist(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url + "/star", - None, - None + self.url + "/star" ) def set_starred(self): @@ -282,18 +295,19 @@ class Gist(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "PUT", - self.url + "/star", - None, - None + self.url + "/star" ) def _initAttributes(self): self._comments = github.GithubObject.NotSet + self._comments_url = github.GithubObject.NotSet + self._commits_url = github.GithubObject.NotSet self._created_at = github.GithubObject.NotSet self._description = github.GithubObject.NotSet self._files = github.GithubObject.NotSet self._fork_of = github.GithubObject.NotSet self._forks = github.GithubObject.NotSet + self._forks_url = github.GithubObject.NotSet self._git_pull_url = github.GithubObject.NotSet self._git_push_url = github.GithubObject.NotSet self._history = github.GithubObject.NotSet @@ -308,6 +322,12 @@ class Gist(github.GithubObject.CompletableGithubObject): if "comments" in attributes: # pragma no branch assert attributes["comments"] is None or isinstance(attributes["comments"], (int, long)), attributes["comments"] self._comments = attributes["comments"] + if "comments_url" in attributes: # pragma no branch + assert attributes["comments_url"] is None or isinstance(attributes["comments_url"], (str, unicode)), attributes["comments_url"] + self._comments_url = attributes["comments_url"] + if "commits_url" in attributes: # pragma no branch + assert attributes["commits_url"] is None or isinstance(attributes["commits_url"], (str, unicode)), attributes["commits_url"] + self._commits_url = attributes["commits_url"] if "created_at" in attributes: # pragma no branch assert attributes["created_at"] is None or isinstance(attributes["created_at"], (str, unicode)), attributes["created_at"] self._created_at = self._parseDatetime(attributes["created_at"]) @@ -317,18 +337,21 @@ class Gist(github.GithubObject.CompletableGithubObject): if "files" in attributes: # pragma no branch assert attributes["files"] is None or all(isinstance(element, dict) for element in attributes["files"].itervalues()), attributes["files"] self._files = None if attributes["files"] is None else dict( - (key, github.GistFile.GistFile(self._requester, element, completed=False)) + (key, github.GistFile.GistFile(self._requester, self._headers, element, completed=False)) for key, element in attributes["files"].iteritems() ) if "fork_of" in attributes: # pragma no branch assert attributes["fork_of"] is None or isinstance(attributes["fork_of"], dict), attributes["fork_of"] - self._fork_of = None if attributes["fork_of"] is None else Gist(self._requester, attributes["fork_of"], completed=False) + self._fork_of = None if attributes["fork_of"] is None else Gist(self._requester, self._headers, attributes["fork_of"], completed=False) if "forks" in attributes: # pragma no branch assert attributes["forks"] is None or all(isinstance(element, dict) for element in attributes["forks"]), attributes["forks"] self._forks = None if attributes["forks"] is None else [ - Gist(self._requester, element, completed=False) + Gist(self._requester, self._headers, element, completed=False) for element in attributes["forks"] ] + if "forks_url" in attributes: # pragma no branch + assert attributes["forks_url"] is None or isinstance(attributes["forks_url"], (str, unicode)), attributes["forks_url"] + self._forks_url = attributes["forks_url"] if "git_pull_url" in attributes: # pragma no branch assert attributes["git_pull_url"] is None or isinstance(attributes["git_pull_url"], (str, unicode)), attributes["git_pull_url"] self._git_pull_url = attributes["git_pull_url"] @@ -338,7 +361,7 @@ class Gist(github.GithubObject.CompletableGithubObject): if "history" in attributes: # pragma no branch assert attributes["history"] is None or all(isinstance(element, dict) for element in attributes["history"]), attributes["history"] self._history = None if attributes["history"] is None else [ - github.GistHistoryState.GistHistoryState(self._requester, element, completed=False) + github.GistHistoryState.GistHistoryState(self._requester, self._headers, element, completed=False) for element in attributes["history"] ] if "html_url" in attributes: # pragma no branch @@ -358,4 +381,4 @@ class Gist(github.GithubObject.CompletableGithubObject): self._url = attributes["url"] if "user" in attributes: # pragma no branch assert attributes["user"] is None or isinstance(attributes["user"], dict), attributes["user"] - self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, attributes["user"], completed=False) + self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["user"], completed=False) diff --git a/github/GistComment.py b/github/GistComment.py index 2bb28abd..5ee0664c 100644 --- a/github/GistComment.py +++ b/github/GistComment.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -88,9 +89,7 @@ class GistComment(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, body): @@ -106,8 +105,7 @@ class GistComment(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -137,4 +135,4 @@ class GistComment(github.GithubObject.CompletableGithubObject): self._url = attributes["url"] if "user" in attributes: # pragma no branch assert attributes["user"] is None or isinstance(attributes["user"], dict), attributes["user"] - self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, attributes["user"], completed=False) + self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["user"], completed=False) diff --git a/github/GistFile.py b/github/GistFile.py index a153c7ba..1070d7f3 100644 --- a/github/GistFile.py +++ b/github/GistFile.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -66,12 +67,20 @@ class GistFile(github.GithubObject.NonCompletableGithubObject): """ return self._NoneIfNotSet(self._size) + @property + def type(self): + """ + :type: string + """ + return self._NoneIfNotSet(self._type) + def _initAttributes(self): self._content = github.GithubObject.NotSet self._filename = github.GithubObject.NotSet self._language = github.GithubObject.NotSet self._raw_url = github.GithubObject.NotSet self._size = github.GithubObject.NotSet + self._type = github.GithubObject.NotSet def _useAttributes(self, attributes): if "content" in attributes: # pragma no branch @@ -89,3 +98,6 @@ class GistFile(github.GithubObject.NonCompletableGithubObject): if "size" in attributes: # pragma no branch assert attributes["size"] is None or isinstance(attributes["size"], (int, long)), attributes["size"] self._size = attributes["size"] + if "type" in attributes: # pragma no branch + assert attributes["type"] is None or isinstance(attributes["type"], (str, unicode)), attributes["type"] + self._type = attributes["type"] diff --git a/github/GistHistoryState.py b/github/GistHistoryState.py index 75f78535..cd5d2dc9 100644 --- a/github/GistHistoryState.py +++ b/github/GistHistoryState.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -27,6 +28,7 @@ import github.GithubObject import github.NamedUser import github.CommitStats +import github.Gist class GistHistoryState(github.GithubObject.CompletableGithubObject): @@ -42,6 +44,30 @@ class GistHistoryState(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._change_status) return self._NoneIfNotSet(self._change_status) + @property + def comments(self): + """ + :type: integer + """ + self._completeIfNotSet(self._comments) + return self._NoneIfNotSet(self._comments) + + @property + def comments_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._comments_url) + return self._NoneIfNotSet(self._comments_url) + + @property + def commits_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._commits_url) + return self._NoneIfNotSet(self._commits_url) + @property def committed_at(self): """ @@ -50,6 +76,102 @@ class GistHistoryState(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._committed_at) return self._NoneIfNotSet(self._committed_at) + @property + def created_at(self): + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._created_at) + return self._NoneIfNotSet(self._created_at) + + @property + def description(self): + """ + :type: string + """ + self._completeIfNotSet(self._description) + return self._NoneIfNotSet(self._description) + + @property + def files(self): + """ + :type: dict of string to :class:`github.GistFile.GistFile` + """ + self._completeIfNotSet(self._files) + return self._NoneIfNotSet(self._files) + + @property + def forks(self): + """ + :type: list of :class:`github.Gist.Gist` + """ + self._completeIfNotSet(self._forks) + return self._NoneIfNotSet(self._forks) + + @property + def forks_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._forks_url) + return self._NoneIfNotSet(self._forks_url) + + @property + def git_pull_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._git_pull_url) + return self._NoneIfNotSet(self._git_pull_url) + + @property + def git_push_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._git_push_url) + return self._NoneIfNotSet(self._git_push_url) + + @property + def history(self): + """ + :type: list of :class:`GistHistoryState` + """ + self._completeIfNotSet(self._history) + return self._NoneIfNotSet(self._history) + + @property + def html_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._html_url) + return self._NoneIfNotSet(self._html_url) + + @property + def id(self): + """ + :type: string + """ + self._completeIfNotSet(self._id) + return self._NoneIfNotSet(self._id) + + @property + def public(self): + """ + :type: bool + """ + self._completeIfNotSet(self._public) + return self._NoneIfNotSet(self._public) + + @property + def updated_at(self): + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._updated_at) + return self._NoneIfNotSet(self._updated_at) + @property def url(self): """ @@ -76,7 +198,22 @@ class GistHistoryState(github.GithubObject.CompletableGithubObject): def _initAttributes(self): self._change_status = github.GithubObject.NotSet + self._comments = github.GithubObject.NotSet + self._comments_url = github.GithubObject.NotSet + self._commits_url = github.GithubObject.NotSet self._committed_at = github.GithubObject.NotSet + self._created_at = github.GithubObject.NotSet + self._description = github.GithubObject.NotSet + self._files = github.GithubObject.NotSet + self._forks = github.GithubObject.NotSet + self._forks_url = github.GithubObject.NotSet + self._git_pull_url = github.GithubObject.NotSet + self._git_push_url = github.GithubObject.NotSet + self._history = github.GithubObject.NotSet + self._html_url = github.GithubObject.NotSet + self._id = github.GithubObject.NotSet + self._public = github.GithubObject.NotSet + self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet self._user = github.GithubObject.NotSet self._version = github.GithubObject.NotSet @@ -84,16 +221,70 @@ class GistHistoryState(github.GithubObject.CompletableGithubObject): def _useAttributes(self, attributes): if "change_status" in attributes: # pragma no branch assert attributes["change_status"] is None or isinstance(attributes["change_status"], dict), attributes["change_status"] - self._change_status = None if attributes["change_status"] is None else github.CommitStats.CommitStats(self._requester, attributes["change_status"], completed=False) + self._change_status = None if attributes["change_status"] is None else github.CommitStats.CommitStats(self._requester, self._headers, attributes["change_status"], completed=False) + if "comments" in attributes: # pragma no branch + assert attributes["comments"] is None or isinstance(attributes["comments"], (int, long)), attributes["comments"] + self._comments = attributes["comments"] + if "comments_url" in attributes: # pragma no branch + assert attributes["comments_url"] is None or isinstance(attributes["comments_url"], (str, unicode)), attributes["comments_url"] + self._comments_url = attributes["comments_url"] + if "commits_url" in attributes: # pragma no branch + assert attributes["commits_url"] is None or isinstance(attributes["commits_url"], (str, unicode)), attributes["commits_url"] + self._commits_url = attributes["commits_url"] if "committed_at" in attributes: # pragma no branch assert attributes["committed_at"] is None or isinstance(attributes["committed_at"], (str, unicode)), attributes["committed_at"] self._committed_at = self._parseDatetime(attributes["committed_at"]) + if "created_at" in attributes: # pragma no branch + assert attributes["created_at"] is None or isinstance(attributes["created_at"], (str, unicode)), attributes["created_at"] + self._created_at = self._parseDatetime(attributes["created_at"]) + if "description" in attributes: # pragma no branch + assert attributes["description"] is None or isinstance(attributes["description"], (str, unicode)), attributes["description"] + self._description = attributes["description"] + if "files" in attributes: # pragma no branch + assert attributes["files"] is None or all(isinstance(element, dict) for element in attributes["files"].itervalues()), attributes["files"] + self._files = None if attributes["files"] is None else dict( + (key, github.GistFile.GistFile(self._requester, self._headers, element, completed=False)) + for key, element in attributes["files"].iteritems() + ) + if "forks" in attributes: # pragma no branch + assert attributes["forks"] is None or all(isinstance(element, dict) for element in attributes["forks"]), attributes["forks"] + self._forks = None if attributes["forks"] is None else [ + github.Gist.Gist(self._requester, self._headers, element, completed=False) + for element in attributes["forks"] + ] + if "forks_url" in attributes: # pragma no branch + assert attributes["forks_url"] is None or isinstance(attributes["forks_url"], (str, unicode)), attributes["forks_url"] + self._forks_url = attributes["forks_url"] + if "git_pull_url" in attributes: # pragma no branch + assert attributes["git_pull_url"] is None or isinstance(attributes["git_pull_url"], (str, unicode)), attributes["git_pull_url"] + self._git_pull_url = attributes["git_pull_url"] + if "git_push_url" in attributes: # pragma no branch + assert attributes["git_push_url"] is None or isinstance(attributes["git_push_url"], (str, unicode)), attributes["git_push_url"] + self._git_push_url = attributes["git_push_url"] + if "history" in attributes: # pragma no branch + assert attributes["history"] is None or all(isinstance(element, dict) for element in attributes["history"]), attributes["history"] + self._history = None if attributes["history"] is None else [ + GistHistoryState(self._requester, self._headers, element, completed=False) + for element in attributes["history"] + ] + if "html_url" in attributes: # pragma no branch + assert attributes["html_url"] is None or isinstance(attributes["html_url"], (str, unicode)), attributes["html_url"] + self._html_url = attributes["html_url"] + if "id" in attributes: # pragma no branch + assert attributes["id"] is None or isinstance(attributes["id"], (str, unicode)), attributes["id"] + self._id = attributes["id"] + if "public" in attributes: # pragma no branch + assert attributes["public"] is None or isinstance(attributes["public"], bool), attributes["public"] + self._public = attributes["public"] + if "updated_at" in attributes: # pragma no branch + assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] + self._updated_at = self._parseDatetime(attributes["updated_at"]) if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] if "user" in attributes: # pragma no branch assert attributes["user"] is None or isinstance(attributes["user"], dict), attributes["user"] - self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, attributes["user"], completed=False) + self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["user"], completed=False) if "version" in attributes: # pragma no branch assert attributes["version"] is None or isinstance(attributes["version"], (str, unicode)), attributes["version"] self._version = attributes["version"] diff --git a/github/GitAuthor.py b/github/GitAuthor.py index dd409dea..e56ce94d 100644 --- a/github/GitAuthor.py +++ b/github/GitAuthor.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/GitBlob.py b/github/GitBlob.py index ffb12f98..8f105682 100644 --- a/github/GitBlob.py +++ b/github/GitBlob.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/GitCommit.py b/github/GitCommit.py index c87ca26b..1d8c3eb4 100644 --- a/github/GitCommit.py +++ b/github/GitCommit.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -50,6 +51,14 @@ class GitCommit(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._committer) return self._NoneIfNotSet(self._committer) + @property + def html_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._html_url) + return self._NoneIfNotSet(self._html_url) + @property def message(self): """ @@ -97,6 +106,7 @@ class GitCommit(github.GithubObject.CompletableGithubObject): def _initAttributes(self): self._author = github.GithubObject.NotSet self._committer = github.GithubObject.NotSet + self._html_url = github.GithubObject.NotSet self._message = github.GithubObject.NotSet self._parents = github.GithubObject.NotSet self._sha = github.GithubObject.NotSet @@ -106,17 +116,20 @@ class GitCommit(github.GithubObject.CompletableGithubObject): def _useAttributes(self, attributes): if "author" in attributes: # pragma no branch assert attributes["author"] is None or isinstance(attributes["author"], dict), attributes["author"] - self._author = None if attributes["author"] is None else github.GitAuthor.GitAuthor(self._requester, attributes["author"], completed=False) + self._author = None if attributes["author"] is None else github.GitAuthor.GitAuthor(self._requester, self._headers, attributes["author"], completed=False) if "committer" in attributes: # pragma no branch assert attributes["committer"] is None or isinstance(attributes["committer"], dict), attributes["committer"] - self._committer = None if attributes["committer"] is None else github.GitAuthor.GitAuthor(self._requester, attributes["committer"], completed=False) + self._committer = None if attributes["committer"] is None else github.GitAuthor.GitAuthor(self._requester, self._headers, attributes["committer"], completed=False) + if "html_url" in attributes: # pragma no branch + assert attributes["html_url"] is None or isinstance(attributes["html_url"], (str, unicode)), attributes["html_url"] + self._html_url = attributes["html_url"] if "message" in attributes: # pragma no branch assert attributes["message"] is None or isinstance(attributes["message"], (str, unicode)), attributes["message"] self._message = attributes["message"] if "parents" in attributes: # pragma no branch assert attributes["parents"] is None or all(isinstance(element, dict) for element in attributes["parents"]), attributes["parents"] self._parents = None if attributes["parents"] is None else [ - GitCommit(self._requester, element, completed=False) + GitCommit(self._requester, self._headers, element, completed=False) for element in attributes["parents"] ] if "sha" in attributes: # pragma no branch @@ -124,7 +137,7 @@ class GitCommit(github.GithubObject.CompletableGithubObject): self._sha = attributes["sha"] if "tree" in attributes: # pragma no branch assert attributes["tree"] is None or isinstance(attributes["tree"], dict), attributes["tree"] - self._tree = None if attributes["tree"] is None else github.GitTree.GitTree(self._requester, attributes["tree"], completed=False) + self._tree = None if attributes["tree"] is None else github.GitTree.GitTree(self._requester, self._headers, attributes["tree"], completed=False) if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] diff --git a/github/GitObject.py b/github/GitObject.py index 2d29b437..a7314641 100644 --- a/github/GitObject.py +++ b/github/GitObject.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/GitRef.py b/github/GitRef.py index 44d177b8..97a2ca4d 100644 --- a/github/GitRef.py +++ b/github/GitRef.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -64,9 +65,7 @@ class GitRef(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, sha, force=github.GithubObject.NotSet): @@ -86,8 +85,7 @@ class GitRef(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -99,7 +97,7 @@ class GitRef(github.GithubObject.CompletableGithubObject): def _useAttributes(self, attributes): if "object" in attributes: # pragma no branch assert attributes["object"] is None or isinstance(attributes["object"], dict), attributes["object"] - self._object = None if attributes["object"] is None else github.GitObject.GitObject(self._requester, attributes["object"], completed=False) + self._object = None if attributes["object"] is None else github.GitObject.GitObject(self._requester, self._headers, attributes["object"], completed=False) if "ref" in attributes: # pragma no branch assert attributes["ref"] is None or isinstance(attributes["ref"], (str, unicode)), attributes["ref"] self._ref = attributes["ref"] diff --git a/github/GitTag.py b/github/GitTag.py index 980328a0..564b6b86 100644 --- a/github/GitTag.py +++ b/github/GitTag.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -96,7 +97,7 @@ class GitTag(github.GithubObject.CompletableGithubObject): self._message = attributes["message"] if "object" in attributes: # pragma no branch assert attributes["object"] is None or isinstance(attributes["object"], dict), attributes["object"] - self._object = None if attributes["object"] is None else github.GitObject.GitObject(self._requester, attributes["object"], completed=False) + self._object = None if attributes["object"] is None else github.GitObject.GitObject(self._requester, self._headers, attributes["object"], completed=False) if "sha" in attributes: # pragma no branch assert attributes["sha"] is None or isinstance(attributes["sha"], (str, unicode)), attributes["sha"] self._sha = attributes["sha"] @@ -105,7 +106,7 @@ class GitTag(github.GithubObject.CompletableGithubObject): self._tag = attributes["tag"] if "tagger" in attributes: # pragma no branch assert attributes["tagger"] is None or isinstance(attributes["tagger"], dict), attributes["tagger"] - self._tagger = None if attributes["tagger"] is None else github.GitAuthor.GitAuthor(self._requester, attributes["tagger"], completed=False) + self._tagger = None if attributes["tagger"] is None else github.GitAuthor.GitAuthor(self._requester, self._headers, attributes["tagger"], completed=False) if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] diff --git a/github/GitTree.py b/github/GitTree.py index 38c696b8..b06c5e82 100644 --- a/github/GitTree.py +++ b/github/GitTree.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -73,7 +74,7 @@ class GitTree(github.GithubObject.CompletableGithubObject): if "tree" in attributes: # pragma no branch assert attributes["tree"] is None or all(isinstance(element, dict) for element in attributes["tree"]), attributes["tree"] self._tree = None if attributes["tree"] is None else [ - github.GitTreeElement.GitTreeElement(self._requester, element, completed=False) + github.GitTreeElement.GitTreeElement(self._requester, self._headers, element, completed=False) for element in attributes["tree"] ] if "url" in attributes: # pragma no branch diff --git a/github/GitTreeElement.py b/github/GitTreeElement.py index bf361be0..e7ae76bb 100644 --- a/github/GitTreeElement.py +++ b/github/GitTreeElement.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/GithubException.py b/github/GithubException.py index 12c9af62..02e7a75e 100644 --- a/github/GithubException.py +++ b/github/GithubException.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/GithubObject.py b/github/GithubObject.py index 8178d8e7..91c079b7 100644 --- a/github/GithubObject.py +++ b/github/GithubObject.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -26,6 +27,7 @@ import datetime import GithubException +import Consts class _NotSetType: @@ -38,14 +40,32 @@ class GithubObject(object): """ Base class for all classes representing objects returned by the API. """ - def __init__(self, requester, attributes, completed): + + ''' + A global debug flag to enable header validation by requester for all objects + ''' + CHECK_AFTER_INIT_FLAG = False + + @classmethod + def setCheckAfterInitFlag(cls, flag): + cls.CHECK_AFTER_INIT_FLAG = flag + + def __init__(self, requester, headers, attributes, completed): self._requester = requester self._initAttributes() - self._storeAndUseAttributes(attributes) + self._storeAndUseAttributes(headers, attributes) - def _storeAndUseAttributes(self, attributes): - self._useAttributes(attributes) + # Ask requester to do some checking, for debug and test purpose + # Since it's most handy to access and kinda all-knowing + if self.CHECK_AFTER_INIT_FLAG: # pragma no branch (Flag always set in tests) + requester.check_me(self) + + def _storeAndUseAttributes(self, headers, attributes): + # Make sure headers are assigned before calling _useAttributes + # (Some derived classes will use headers in _useAttributes) + self._headers = headers self._rawData = attributes + self._useAttributes(attributes) @property def raw_data(self): @@ -55,6 +75,14 @@ class GithubObject(object): self._completeIfNeeded() return self._rawData + @property + def raw_headers(self): + """ + :type: dict + """ + self._completeIfNeeded() + return self._headers + @staticmethod def _parentUrl(url): return "/".join(url.split("/")[: -1]) @@ -77,6 +105,20 @@ class GithubObject(object): else: return datetime.datetime.strptime(s, "%Y-%m-%dT%H:%M:%SZ") + @property + def etag(self): + ''' + :type str + ''' + return self._headers.get(Consts.RES_ETAG) + + @property + def last_modified(self): + ''' + :type str + ''' + return self._headers.get(Consts.RES_LAST_MODIFED) + class NonCompletableGithubObject(GithubObject): def _completeIfNeeded(self): @@ -84,8 +126,8 @@ class NonCompletableGithubObject(GithubObject): class CompletableGithubObject(GithubObject): - def __init__(self, requester, attributes, completed): - GithubObject.__init__(self, requester, attributes, completed) + def __init__(self, requester, headers, attributes, completed): + GithubObject.__init__(self, requester, headers, attributes, completed) self.__completed = completed def _completeIfNotSet(self, value): @@ -99,9 +141,31 @@ class CompletableGithubObject(GithubObject): def __complete(self): headers, data = self._requester.requestJsonAndCheck( "GET", - self._url, - None, - None + self._url ) - self._storeAndUseAttributes(data) + self._storeAndUseAttributes(headers, data) self.__completed = True + + def update(self): + ''' + Check and update the object with conditional request + :rtype: Boolean value indicating whether the object is changed + ''' + conditionalRequestHeader = dict() + if self.etag is not None: + conditionalRequestHeader[Consts.REQ_IF_NONE_MATCH] = self.etag + if self.last_modified is not None: + conditionalRequestHeader[Consts.REQ_IF_MODIFIED_SINCE] = self.last_modified + + status, responseHeaders, output = self._requester.requestJson( + "GET", + self._url, + headers=conditionalRequestHeader + ) + if status == 304: + return False + else: + headers, data = self._requester._Requester__check(status, responseHeaders, output) + self._storeAndUseAttributes(headers, data) + self.__completed = True + return True diff --git a/github/GitignoreTemplate.py b/github/GitignoreTemplate.py index a1b96d7c..a8a7022f 100644 --- a/github/GitignoreTemplate.py +++ b/github/GitignoreTemplate.py @@ -3,6 +3,7 @@ ############################ Copyrights and license ############################ # # # Copyright 2012 Vincent Jacques # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/Hook.py b/github/Hook.py index e3a955d3..4778c41f 100644 --- a/github/Hook.py +++ b/github/Hook.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -30,7 +31,7 @@ import github.HookResponse class Hook(github.GithubObject.CompletableGithubObject): """ - This class represents Hooks as returned for example by http://developer.github.com/v3/todo + This class represents Hooks as returned for example by http://developer.github.com/v3/repos/hooks """ @property @@ -89,6 +90,14 @@ class Hook(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._name) return self._NoneIfNotSet(self._name) + @property + def test_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._test_url) + return self._NoneIfNotSet(self._test_url) + @property def updated_at(self): """ @@ -112,9 +121,7 @@ class Hook(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, name, config, events=github.GithubObject.NotSet, add_events=github.GithubObject.NotSet, remove_events=github.GithubObject.NotSet, active=github.GithubObject.NotSet): @@ -149,21 +156,18 @@ class Hook(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) def test(self): """ - :calls: `POST /repos/:owner/:repo/hooks/:id/test `_ + :calls: `POST /repos/:owner/:repo/hooks/:id/tests `_ :rtype: None """ headers, data = self._requester.requestJsonAndCheck( "POST", - self.url + "/test", - None, - None + self.url + "/tests" ) def _initAttributes(self): @@ -174,6 +178,7 @@ class Hook(github.GithubObject.CompletableGithubObject): self._id = github.GithubObject.NotSet self._last_response = github.GithubObject.NotSet self._name = github.GithubObject.NotSet + self._test_url = github.GithubObject.NotSet self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet @@ -195,10 +200,13 @@ class Hook(github.GithubObject.CompletableGithubObject): self._id = attributes["id"] if "last_response" in attributes: # pragma no branch assert attributes["last_response"] is None or isinstance(attributes["last_response"], dict), attributes["last_response"] - self._last_response = None if attributes["last_response"] is None else github.HookResponse.HookResponse(self._requester, attributes["last_response"], completed=False) + self._last_response = None if attributes["last_response"] is None else github.HookResponse.HookResponse(self._requester, self._headers, attributes["last_response"], completed=False) if "name" in attributes: # pragma no branch assert attributes["name"] is None or isinstance(attributes["name"], (str, unicode)), attributes["name"] self._name = attributes["name"] + if "test_url" in attributes: # pragma no branch + assert attributes["test_url"] is None or isinstance(attributes["test_url"], (str, unicode)), attributes["test_url"] + self._test_url = attributes["test_url"] if "updated_at" in attributes: # pragma no branch assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] self._updated_at = self._parseDatetime(attributes["updated_at"]) diff --git a/github/HookDescription.py b/github/HookDescription.py index 766cbfc7..5653492b 100644 --- a/github/HookDescription.py +++ b/github/HookDescription.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/HookResponse.py b/github/HookResponse.py index 87dc0ac0..41e242b3 100644 --- a/github/HookResponse.py +++ b/github/HookResponse.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/Issue.py b/github/Issue.py index b25c5e0b..b0be8e35 100644 --- a/github/Issue.py +++ b/github/Issue.py @@ -6,6 +6,7 @@ # Copyright 2012 Philip Kimmey # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Stuart Glaser # # Copyright 2013 Vincent Jacques # # # @@ -83,6 +84,14 @@ class Issue(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._comments) return self._NoneIfNotSet(self._comments) + @property + def comments_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._comments_url) + return self._NoneIfNotSet(self._comments_url) + @property def created_at(self): """ @@ -91,6 +100,14 @@ class Issue(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._created_at) return self._NoneIfNotSet(self._created_at) + @property + def events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._events_url) + return self._NoneIfNotSet(self._events_url) + @property def html_url(self): """ @@ -115,6 +132,14 @@ class Issue(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._labels) return self._NoneIfNotSet(self._labels) + @property + def labels_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._labels_url) + return self._NoneIfNotSet(self._labels_url) + @property def milestone(self): """ @@ -148,7 +173,7 @@ class Issue(github.GithubObject.CompletableGithubObject): if self._repository is github.GithubObject.NotSet: # The repository was not set automatically, so it must be looked up by url. repo_url = "/".join(self.url.split("/")[:-2]) - self._repository = github.Repository.Repository(self._requester, {'url': repo_url}, False) + self._repository = github.Repository.Repository(self._requester, self._headers, {'url': repo_url}, completed=False) return self._repository @property @@ -202,8 +227,7 @@ class Issue(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/labels", - None, - post_parameters + input=post_parameters ) def create_comment(self, body): @@ -219,10 +243,9 @@ class Issue(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/comments", - None, - post_parameters + input=post_parameters ) - return github.IssueComment.IssueComment(self._requester, data, completed=True) + return github.IssueComment.IssueComment(self._requester, headers, data, completed=True) def delete_labels(self): """ @@ -231,9 +254,7 @@ class Issue(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url + "/labels", - None, - None + self.url + "/labels" ) def edit(self, title=github.GithubObject.NotSet, body=github.GithubObject.NotSet, assignee=github.GithubObject.NotSet, state=github.GithubObject.NotSet, milestone=github.GithubObject.NotSet, labels=github.GithubObject.NotSet): @@ -269,8 +290,7 @@ class Issue(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -283,11 +303,9 @@ class Issue(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - self._parentUrl(self.url) + "/comments/" + str(id), - None, - None + self._parentUrl(self.url) + "/comments/" + str(id) ) - return github.IssueComment.IssueComment(self._requester, data, completed=True) + return github.IssueComment.IssueComment(self._requester, headers, data, completed=True) def get_comments(self): """ @@ -334,9 +352,7 @@ class Issue(github.GithubObject.CompletableGithubObject): assert isinstance(label, github.Label.Label), label headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url + "/labels/" + label._identity, - None, - None + self.url + "/labels/" + label._identity ) def set_labels(self, *labels): @@ -350,8 +366,7 @@ class Issue(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PUT", self.url + "/labels", - None, - post_parameters + input=post_parameters ) @property @@ -364,10 +379,13 @@ class Issue(github.GithubObject.CompletableGithubObject): self._closed_at = github.GithubObject.NotSet self._closed_by = github.GithubObject.NotSet self._comments = github.GithubObject.NotSet + self._comments_url = github.GithubObject.NotSet self._created_at = github.GithubObject.NotSet + self._events_url = github.GithubObject.NotSet self._html_url = github.GithubObject.NotSet self._id = github.GithubObject.NotSet self._labels = github.GithubObject.NotSet + self._labels_url = github.GithubObject.NotSet self._milestone = github.GithubObject.NotSet self._number = github.GithubObject.NotSet self._pull_request = github.GithubObject.NotSet @@ -381,7 +399,7 @@ class Issue(github.GithubObject.CompletableGithubObject): def _useAttributes(self, attributes): if "assignee" in attributes: # pragma no branch assert attributes["assignee"] is None or isinstance(attributes["assignee"], dict), attributes["assignee"] - self._assignee = None if attributes["assignee"] is None else github.NamedUser.NamedUser(self._requester, attributes["assignee"], completed=False) + self._assignee = None if attributes["assignee"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["assignee"], completed=False) if "body" in attributes: # pragma no branch assert attributes["body"] is None or isinstance(attributes["body"], (str, unicode)), attributes["body"] self._body = attributes["body"] @@ -390,13 +408,19 @@ class Issue(github.GithubObject.CompletableGithubObject): self._closed_at = self._parseDatetime(attributes["closed_at"]) if "closed_by" in attributes: # pragma no branch assert attributes["closed_by"] is None or isinstance(attributes["closed_by"], dict), attributes["closed_by"] - self._closed_by = None if attributes["closed_by"] is None else github.NamedUser.NamedUser(self._requester, attributes["closed_by"], completed=False) + self._closed_by = None if attributes["closed_by"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["closed_by"], completed=False) if "comments" in attributes: # pragma no branch assert attributes["comments"] is None or isinstance(attributes["comments"], (int, long)), attributes["comments"] self._comments = attributes["comments"] + if "comments_url" in attributes: # pragma no branch + assert attributes["comments_url"] is None or isinstance(attributes["comments_url"], (str, unicode)), attributes["comments_url"] + self._comments_url = attributes["comments_url"] if "created_at" in attributes: # pragma no branch assert attributes["created_at"] is None or isinstance(attributes["created_at"], (str, unicode)), attributes["created_at"] self._created_at = self._parseDatetime(attributes["created_at"]) + if "events_url" in attributes: # pragma no branch + assert attributes["events_url"] is None or isinstance(attributes["events_url"], (str, unicode)), attributes["events_url"] + self._events_url = attributes["events_url"] if "html_url" in attributes: # pragma no branch assert attributes["html_url"] is None or isinstance(attributes["html_url"], (str, unicode)), attributes["html_url"] self._html_url = attributes["html_url"] @@ -406,21 +430,24 @@ class Issue(github.GithubObject.CompletableGithubObject): if "labels" in attributes: # pragma no branch assert attributes["labels"] is None or all(isinstance(element, dict) for element in attributes["labels"]), attributes["labels"] self._labels = None if attributes["labels"] is None else [ - github.Label.Label(self._requester, element, completed=False) + github.Label.Label(self._requester, self._headers, element, completed=False) for element in attributes["labels"] ] + if "labels_url" in attributes: # pragma no branch + assert attributes["labels_url"] is None or isinstance(attributes["labels_url"], (str, unicode)), attributes["labels_url"] + self._labels_url = attributes["labels_url"] if "milestone" in attributes: # pragma no branch assert attributes["milestone"] is None or isinstance(attributes["milestone"], dict), attributes["milestone"] - self._milestone = None if attributes["milestone"] is None else github.Milestone.Milestone(self._requester, attributes["milestone"], completed=False) + self._milestone = None if attributes["milestone"] is None else github.Milestone.Milestone(self._requester, self._headers, attributes["milestone"], completed=False) if "number" in attributes: # pragma no branch assert attributes["number"] is None or isinstance(attributes["number"], (int, long)), attributes["number"] self._number = attributes["number"] if "pull_request" in attributes: # pragma no branch assert attributes["pull_request"] is None or isinstance(attributes["pull_request"], dict), attributes["pull_request"] - self._pull_request = None if attributes["pull_request"] is None else github.IssuePullRequest.IssuePullRequest(self._requester, attributes["pull_request"], completed=False) + self._pull_request = None if attributes["pull_request"] is None else github.IssuePullRequest.IssuePullRequest(self._requester, self._headers, attributes["pull_request"], completed=False) if "repository" in attributes: # pragma no branch assert attributes["repository"] is None or isinstance(attributes["repository"], dict), attributes["repository"] - self._repository = None if attributes["repository"] is None else github.Repository.Repository(self._requester, attributes["repository"], completed=False) + self._repository = None if attributes["repository"] is None else github.Repository.Repository(self._requester, self._headers, attributes["repository"], completed=False) if "state" in attributes: # pragma no branch assert attributes["state"] is None or isinstance(attributes["state"], (str, unicode)), attributes["state"] self._state = attributes["state"] @@ -435,4 +462,4 @@ class Issue(github.GithubObject.CompletableGithubObject): self._url = attributes["url"] if "user" in attributes: # pragma no branch assert attributes["user"] is None or isinstance(attributes["user"], dict), attributes["user"] - self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, attributes["user"], completed=False) + self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["user"], completed=False) diff --git a/github/IssueComment.py b/github/IssueComment.py index 5e9e5099..84482c70 100644 --- a/github/IssueComment.py +++ b/github/IssueComment.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Michael Stead # # Copyright 2013 Vincent Jacques # # # @@ -58,6 +59,14 @@ class IssueComment(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._id) return self._NoneIfNotSet(self._id) + @property + def issue_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._issue_url) + return self._NoneIfNotSet(self._issue_url) + @property def updated_at(self): """ @@ -97,9 +106,7 @@ class IssueComment(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, body): @@ -115,8 +122,7 @@ class IssueComment(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -124,6 +130,7 @@ class IssueComment(github.GithubObject.CompletableGithubObject): self._body = github.GithubObject.NotSet self._created_at = github.GithubObject.NotSet self._id = github.GithubObject.NotSet + self._issue_url = github.GithubObject.NotSet self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet self._html_url = github.GithubObject.NotSet @@ -139,6 +146,9 @@ class IssueComment(github.GithubObject.CompletableGithubObject): if "id" in attributes: # pragma no branch assert attributes["id"] is None or isinstance(attributes["id"], (int, long)), attributes["id"] self._id = attributes["id"] + if "issue_url" in attributes: # pragma no branch + assert attributes["issue_url"] is None or isinstance(attributes["issue_url"], (str, unicode)), attributes["issue_url"] + self._issue_url = attributes["issue_url"] if "updated_at" in attributes: # pragma no branch assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] self._updated_at = self._parseDatetime(attributes["updated_at"]) @@ -150,4 +160,4 @@ class IssueComment(github.GithubObject.CompletableGithubObject): self._html_url = attributes["html_url"] if "user" in attributes: # pragma no branch assert attributes["user"] is None or isinstance(attributes["user"], dict), attributes["user"] - self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, attributes["user"], completed=False) + self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["user"], completed=False) diff --git a/github/IssueEvent.py b/github/IssueEvent.py index 431ce2ad..aca4cdf8 100644 --- a/github/IssueEvent.py +++ b/github/IssueEvent.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -102,7 +103,7 @@ class IssueEvent(github.GithubObject.CompletableGithubObject): def _useAttributes(self, attributes): if "actor" in attributes: # pragma no branch assert attributes["actor"] is None or isinstance(attributes["actor"], dict), attributes["actor"] - self._actor = None if attributes["actor"] is None else github.NamedUser.NamedUser(self._requester, attributes["actor"], completed=False) + self._actor = None if attributes["actor"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["actor"], completed=False) if "commit_id" in attributes: # pragma no branch assert attributes["commit_id"] is None or isinstance(attributes["commit_id"], (str, unicode)), attributes["commit_id"] self._commit_id = attributes["commit_id"] @@ -117,7 +118,7 @@ class IssueEvent(github.GithubObject.CompletableGithubObject): self._id = attributes["id"] if "issue" in attributes: # pragma no branch assert attributes["issue"] is None or isinstance(attributes["issue"], dict), attributes["issue"] - self._issue = None if attributes["issue"] is None else github.Issue.Issue(self._requester, attributes["issue"], completed=False) + self._issue = None if attributes["issue"] is None else github.Issue.Issue(self._requester, self._headers, attributes["issue"], completed=False) if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] diff --git a/github/IssuePullRequest.py b/github/IssuePullRequest.py index cdc1b44b..ae7e6b6c 100644 --- a/github/IssuePullRequest.py +++ b/github/IssuePullRequest.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/Label.py b/github/Label.py index e2d42335..813cd5f0 100644 --- a/github/Label.py +++ b/github/Label.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -65,9 +66,7 @@ class Label(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, name, color): @@ -86,8 +85,7 @@ class Label(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) diff --git a/github/Legacy.py b/github/Legacy.py index 599ca605..cfe48d67 100644 --- a/github/Legacy.py +++ b/github/Legacy.py @@ -5,6 +5,7 @@ # Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -57,12 +58,12 @@ class PaginatedList(github.PaginatedList.PaginatedListBase): headers, data = self.__requester.requestJsonAndCheck( "GET", self.__url, - args, - None + parameters=args ) self.__continue = len(data[self.__key]) > 0 + return [ - self.__contentClass(self.__requester, self.__convert(element), completed=False) + self.__contentClass(self.__requester, headers, self.__convert(element), completed=False) for element in data[self.__key] ] diff --git a/github/MainClass.py b/github/MainClass.py index 787ce791..eddfd84b 100644 --- a/github/MainClass.py +++ b/github/MainClass.py @@ -2,6 +2,7 @@ ############################ Copyrights and license ############################ # # +# Copyright 2013 AKFish # # Copyright 2013 Ed Jackson # # Copyright 2013 Jonathan J Hunt # # Copyright 2013 Peter Golm # @@ -25,6 +26,7 @@ ################################################################################ import urllib +import pickle from Requester import Requester import AuthenticatedUser @@ -37,7 +39,9 @@ import Legacy import github.GithubObject import HookDescription import GitignoreTemplate -import Notification +import Status +import StatusMessage +import RateLimit DEFAULT_BASE_URL = "https://api.github.com" @@ -91,8 +95,12 @@ class Github(object): def __set_per_page(self, value): self.__requester.per_page = value + # v2: Remove this property? Why should it be necessary to read/modify it after construction per_page = property(__get_per_page, __set_per_page) + # v2: Provide a unified way to access values of headers of last response + # v2: (and add/keep ad hoc properties for specific useful headers like rate limiting, oauth scopes, etc.) + # v2: Return an instance of a class: using a tuple did not allow to add a field "resettime" @property def rate_limiting(self): """ @@ -101,12 +109,7 @@ class Github(object): """ remaining, limit = self.__requester.rate_limiting if limit < 0: - self.__requester.requestJsonAndCheck( - 'GET', - '/rate_limit', - None, - None - ) + self.get_rate_limit() return self.__requester.rate_limiting @property @@ -116,14 +119,22 @@ class Github(object): :type: int """ if self.__requester.rate_limiting_resettime == 0: - self.__requester.requestJsonAndCheck( - 'GET', - '/rate_limit', - None, - None - ) + self.get_rate_limit() return self.__requester.rate_limiting_resettime + def get_rate_limit(self): + """ + Don't forget you can access the rate limit returned in headers of last Github API v3 response, by :attr:`github.MainClass.Github.rate_limiting` and :attr:`github.MainClass.Github.rate_limiting_resettime`. + + :calls: `GET /rate_limit `_ + :rtype: :class:`github.RateLimit.RateLimit` + """ + headers, attributes = self.__requester.requestJsonAndCheck( + 'GET', + '/rate_limit' + ) + return RateLimit.RateLimit(self.__requester, headers, attributes, True) + @property def oauth_scopes(self): """ @@ -139,15 +150,13 @@ class Github(object): """ assert login is github.GithubObject.NotSet or isinstance(login, (str, unicode)), login if login is github.GithubObject.NotSet: - return AuthenticatedUser.AuthenticatedUser(self.__requester, {"url": "/user"}, completed=False) + return AuthenticatedUser.AuthenticatedUser(self.__requester, {}, {"url": "/user"}, completed=False) else: headers, data = self.__requester.requestJsonAndCheck( "GET", - "/users/" + login, - None, - None + "/users/" + login ) - return github.NamedUser.NamedUser(self.__requester, data, completed=True) + return github.NamedUser.NamedUser(self.__requester, headers, data, completed=True) def get_users(self, since=github.GithubObject.NotSet): """ @@ -175,11 +184,9 @@ class Github(object): assert isinstance(login, (str, unicode)), login headers, data = self.__requester.requestJsonAndCheck( "GET", - "/orgs/" + login, - None, - None + "/orgs/" + login ) - return github.Organization.Organization(self.__requester, data, completed=True) + return github.Organization.Organization(self.__requester, headers, data, completed=True) def get_repo(self, full_name): """ @@ -189,11 +196,26 @@ class Github(object): assert isinstance(full_name, (str, unicode)), full_name headers, data = self.__requester.requestJsonAndCheck( "GET", - "/repos/" + full_name, - None, - None + "/repos/" + full_name + ) + return Repository.Repository(self.__requester, headers, data, completed=True) + + def get_repos(self, since=github.GithubObject.NotSet): + """ + :calls: `GET /repositories `_ + :param since: integer + :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository` + """ + assert since is github.GithubObject.NotSet or isinstance(since, (int, long)), since + url_parameters = dict() + if since is not github.GithubObject.NotSet: + url_parameters["since"] = since + return github.PaginatedList.PaginatedList( + github.Repository.Repository, + self.__requester, + "/repositories", + url_parameters ) - return Repository.Repository(self.__requester, data, completed=True) def get_gist(self, id): """ @@ -204,11 +226,9 @@ class Github(object): assert isinstance(id, (str, unicode)), id headers, data = self.__requester.requestJsonAndCheck( "GET", - "/gists/" + id, - None, - None + "/gists/" + id ) - return github.Gist.Gist(self.__requester, data, completed=True) + return github.Gist.Gist(self.__requester, headers, data, completed=True) def get_gists(self): """ @@ -266,11 +286,9 @@ class Github(object): assert isinstance(email, (str, unicode)), email headers, data = self.__requester.requestJsonAndCheck( "GET", - "/legacy/user/email/" + email, - None, - None + "/legacy/user/email/" + email ) - return github.NamedUser.NamedUser(self.__requester, Legacy.convertUser(data["user"]), completed=False) + return github.NamedUser.NamedUser(self.__requester, headers, Legacy.convertUser(data["user"]), completed=False) def render_markdown(self, text, context=github.GithubObject.NotSet): """ @@ -290,23 +308,20 @@ class Github(object): status, headers, data = self.__requester.requestJson( "POST", "/markdown", - None, - post_parameters + input=post_parameters ) return data def get_hooks(self): """ :calls: `GET /hooks `_ - :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.HookDescription.HookDescription` + :rtype: list of :class:`github.HookDescription.HookDescription` """ headers, data = self.__requester.requestJsonAndCheck( "GET", - "/hooks", - None, - None + "/hooks" ) - return [HookDescription.HookDescription(self.__requester, attributes, completed=True) for attributes in data] + return [HookDescription.HookDescription(self.__requester, headers, attributes, completed=True) for attributes in data] def get_gitignore_templates(self): """ @@ -315,9 +330,7 @@ class Github(object): """ headers, data = self.__requester.requestJsonAndCheck( "GET", - "/gitignore/templates", - None, - None + "/gitignore/templates" ) return data @@ -329,18 +342,81 @@ class Github(object): assert isinstance(name, (str, unicode)), name headers, attributes = self.__requester.requestJsonAndCheck( "GET", - "/gitignore/templates/" + name, - None, - None + "/gitignore/templates/" + name ) - return GitignoreTemplate.GitignoreTemplate(self.__requester, attributes, completed=True) + return GitignoreTemplate.GitignoreTemplate(self.__requester, headers, attributes, completed=True) - def create_from_raw_data(self, klass, raw_data): + def create_from_raw_data(self, klass, raw_data, headers={}): """ - Creates an object from raw_data previously obtained by :attr:`github.GithubObject.GithubObject.raw_data` + Creates an object from raw_data previously obtained by :attr:`github.GithubObject.GithubObject.raw_data`, + and optionaly headers previously obtained by :attr:`github.GithubObject.GithubObject.raw_headers`. :param klass: the class of the object to create :param raw_data: dict + :param headers: dict :rtype: instance of class ``klass`` """ - return klass(self.__requester, raw_data, completed=True) + return klass(self.__requester, headers, raw_data, completed=True) + + def dump(self, obj, file, protocol=0): + """ + Dumps (pickles) a PyGithub object to a file-like object. + Some effort is made to not pickle sensitive informations like the Github credentials used in the :class:`Github` instance. + But NO EFFORT is made to remove sensitive information from the object's attributes. + + :param obj: the object to pickle + :param file: the file-like object to pickle to + :param protocol: the `pickling protocol `_ + """ + pickle.dump((obj.__class__, obj.raw_data, obj.raw_headers), file, protocol) + + def load(self, f): + """ + Loads (unpickles) a PyGithub object from a file-like object. + + :param f: the file-like object to unpickle from + :return: the unpickled object + """ + return self.create_from_raw_data(*pickle.load(f)) + + def get_api_status(self): + """ + This doesn't work with a Github Enterprise installation, because it always targets https://status.github.com. + + :calls: `GET /api/status.json `_ + :rtype: :class:`github.Status.Status` + """ + headers, attributes = self.__requester.requestJsonAndCheck( + "GET", + "/api/status.json", + cnx="status" + ) + return Status.Status(self.__requester, headers, attributes, completed=True) + + def get_last_api_status_message(self): + """ + This doesn't work with a Github Enterprise installation, because it always targets https://status.github.com. + + :calls: `GET /api/last-message.json `_ + :rtype: :class:`github.StatusMessage.StatusMessage` + """ + headers, attributes = self.__requester.requestJsonAndCheck( + "GET", + "/api/last-message.json", + cnx="status" + ) + return StatusMessage.StatusMessage(self.__requester, headers, attributes, completed=True) + + def get_api_status_messages(self): + """ + This doesn't work with a Github Enterprise installation, because it always targets https://status.github.com. + + :calls: `GET /api/messages.json `_ + :rtype: list of :class:`github.StatusMessage.StatusMessage` + """ + headers, data = self.__requester.requestJsonAndCheck( + "GET", + "/api/messages.json", + cnx="status" + ) + return [StatusMessage.StatusMessage(self.__requester, headers, attributes, completed=True) for attributes in data] diff --git a/github/Milestone.py b/github/Milestone.py index 9611d7b7..2b414f73 100644 --- a/github/Milestone.py +++ b/github/Milestone.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -86,6 +87,14 @@ class Milestone(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._id) return self._NoneIfNotSet(self._id) + @property + def labels_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._labels_url) + return self._NoneIfNotSet(self._labels_url) + @property def number(self): """ @@ -118,6 +127,14 @@ class Milestone(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._title) return self._NoneIfNotSet(self._title) + @property + def updated_at(self): + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._updated_at) + return self._NoneIfNotSet(self._updated_at) + @property def url(self): """ @@ -133,9 +150,7 @@ class Milestone(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, title, state=github.GithubObject.NotSet, description=github.GithubObject.NotSet, due_on=github.GithubObject.NotSet): @@ -163,8 +178,7 @@ class Milestone(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -191,10 +205,12 @@ class Milestone(github.GithubObject.CompletableGithubObject): self._description = github.GithubObject.NotSet self._due_on = github.GithubObject.NotSet self._id = github.GithubObject.NotSet + self._labels_url = github.GithubObject.NotSet self._number = github.GithubObject.NotSet self._open_issues = github.GithubObject.NotSet self._state = github.GithubObject.NotSet self._title = github.GithubObject.NotSet + self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet def _useAttributes(self, attributes): @@ -206,7 +222,7 @@ class Milestone(github.GithubObject.CompletableGithubObject): self._created_at = self._parseDatetime(attributes["created_at"]) if "creator" in attributes: # pragma no branch assert attributes["creator"] is None or isinstance(attributes["creator"], dict), attributes["creator"] - self._creator = None if attributes["creator"] is None else github.NamedUser.NamedUser(self._requester, attributes["creator"], completed=False) + self._creator = None if attributes["creator"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["creator"], completed=False) if "description" in attributes: # pragma no branch assert attributes["description"] is None or isinstance(attributes["description"], (str, unicode)), attributes["description"] self._description = attributes["description"] @@ -216,6 +232,9 @@ class Milestone(github.GithubObject.CompletableGithubObject): if "id" in attributes: # pragma no branch assert attributes["id"] is None or isinstance(attributes["id"], (int, long)), attributes["id"] self._id = attributes["id"] + if "labels_url" in attributes: # pragma no branch + assert attributes["labels_url"] is None or isinstance(attributes["labels_url"], (str, unicode)), attributes["labels_url"] + self._labels_url = attributes["labels_url"] if "number" in attributes: # pragma no branch assert attributes["number"] is None or isinstance(attributes["number"], (int, long)), attributes["number"] self._number = attributes["number"] @@ -228,6 +247,9 @@ class Milestone(github.GithubObject.CompletableGithubObject): if "title" in attributes: # pragma no branch assert attributes["title"] is None or isinstance(attributes["title"], (str, unicode)), attributes["title"] self._title = attributes["title"] + if "updated_at" in attributes: # pragma no branch + assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] + self._updated_at = self._parseDatetime(attributes["updated_at"]) if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] diff --git a/github/NamedUser.py b/github/NamedUser.py index a8016a15..55bf65fd 100644 --- a/github/NamedUser.py +++ b/github/NamedUser.py @@ -5,6 +5,7 @@ # Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -112,6 +113,14 @@ class NamedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._email) return self._NoneIfNotSet(self._email) + @property + def events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._events_url) + return self._NoneIfNotSet(self._events_url) + @property def followers(self): """ @@ -120,6 +129,14 @@ class NamedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._followers) return self._NoneIfNotSet(self._followers) + @property + def followers_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._followers_url) + return self._NoneIfNotSet(self._followers_url) + @property def following(self): """ @@ -128,6 +145,22 @@ class NamedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._following) return self._NoneIfNotSet(self._following) + @property + def following_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._following_url) + return self._NoneIfNotSet(self._following_url) + + @property + def gists_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._gists_url) + return self._NoneIfNotSet(self._gists_url) + @property def gravatar_id(self): """ @@ -184,6 +217,14 @@ class NamedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._name) return self._NoneIfNotSet(self._name) + @property + def organizations_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._organizations_url) + return self._NoneIfNotSet(self._organizations_url) + @property def owned_private_repos(self): """ @@ -224,6 +265,38 @@ class NamedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._public_repos) return self._NoneIfNotSet(self._public_repos) + @property + def received_events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._received_events_url) + return self._NoneIfNotSet(self._received_events_url) + + @property + def repos_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._repos_url) + return self._NoneIfNotSet(self._repos_url) + + @property + def starred_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._starred_url) + return self._NoneIfNotSet(self._starred_url) + + @property + def subscriptions_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._subscriptions_url) + return self._NoneIfNotSet(self._subscriptions_url) + @property def total_private_repos(self): """ @@ -240,6 +313,14 @@ class NamedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._type) return self._NoneIfNotSet(self._type) + @property + def updated_at(self): + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._updated_at) + return self._NoneIfNotSet(self._updated_at) + @property def url(self): """ @@ -248,6 +329,7 @@ class NamedUser(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._url) return self._NoneIfNotSet(self._url) + # v2: Remove this method def create_gist(self, public, files, description=github.GithubObject.NotSet): """ :calls: `POST /users/:user/gists `_ @@ -268,10 +350,9 @@ class NamedUser(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/gists", - None, - post_parameters + input=post_parameters ) - return github.Gist.Gist(self._requester, data, completed=True) + return github.Gist.Gist(self._requester, headers, data, completed=True) def get_events(self): """ @@ -390,11 +471,9 @@ class NamedUser(github.GithubObject.CompletableGithubObject): assert isinstance(name, (str, unicode)), name headers, data = self._requester.requestJsonAndCheck( "GET", - "/repos/" + self.login + "/" + name, - None, - None + "/repos/" + self.login + "/" + name ) - return github.Repository.Repository(self._requester, data, completed=True) + return github.Repository.Repository(self._requester, headers, data, completed=True) def get_repos(self, type=github.GithubObject.NotSet): """ @@ -449,6 +528,19 @@ class NamedUser(github.GithubObject.CompletableGithubObject): None ) + def has_in_following(self, following): + """ + :calls: `GET /users/:user/following/:target_user `_ + :param following: :class:`github.NamedUser.NamedUser` + :rtype: bool + """ + assert isinstance(following, github.NamedUser.NamedUser), following + status, headers, data = self._requester.requestJson( + "GET", + self.url + "/following/" + following._identity + ) + return status == 204 + @property def _identity(self): return self.login @@ -463,8 +555,12 @@ class NamedUser(github.GithubObject.CompletableGithubObject): self._created_at = github.GithubObject.NotSet self._disk_usage = github.GithubObject.NotSet self._email = github.GithubObject.NotSet + self._events_url = github.GithubObject.NotSet self._followers = github.GithubObject.NotSet + self._followers_url = github.GithubObject.NotSet self._following = github.GithubObject.NotSet + self._following_url = github.GithubObject.NotSet + self._gists_url = github.GithubObject.NotSet self._gravatar_id = github.GithubObject.NotSet self._hireable = github.GithubObject.NotSet self._html_url = github.GithubObject.NotSet @@ -472,13 +568,19 @@ class NamedUser(github.GithubObject.CompletableGithubObject): self._location = github.GithubObject.NotSet self._login = github.GithubObject.NotSet self._name = github.GithubObject.NotSet + self._organizations_url = github.GithubObject.NotSet self._owned_private_repos = github.GithubObject.NotSet self._plan = github.GithubObject.NotSet self._private_gists = github.GithubObject.NotSet self._public_gists = github.GithubObject.NotSet self._public_repos = github.GithubObject.NotSet + self._received_events_url = github.GithubObject.NotSet + self._repos_url = github.GithubObject.NotSet + self._starred_url = github.GithubObject.NotSet + self._subscriptions_url = github.GithubObject.NotSet self._total_private_repos = github.GithubObject.NotSet self._type = github.GithubObject.NotSet + self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet def _useAttributes(self, attributes): @@ -509,12 +611,24 @@ class NamedUser(github.GithubObject.CompletableGithubObject): if "email" in attributes: # pragma no branch assert attributes["email"] is None or isinstance(attributes["email"], (str, unicode)), attributes["email"] self._email = attributes["email"] + if "events_url" in attributes: # pragma no branch + assert attributes["events_url"] is None or isinstance(attributes["events_url"], (str, unicode)), attributes["events_url"] + self._events_url = attributes["events_url"] if "followers" in attributes: # pragma no branch assert attributes["followers"] is None or isinstance(attributes["followers"], (int, long)), attributes["followers"] self._followers = attributes["followers"] + if "followers_url" in attributes: # pragma no branch + assert attributes["followers_url"] is None or isinstance(attributes["followers_url"], (str, unicode)), attributes["followers_url"] + self._followers_url = attributes["followers_url"] if "following" in attributes: # pragma no branch assert attributes["following"] is None or isinstance(attributes["following"], (int, long)), attributes["following"] self._following = attributes["following"] + if "following_url" in attributes: # pragma no branch + assert attributes["following_url"] is None or isinstance(attributes["following_url"], (str, unicode)), attributes["following_url"] + self._following_url = attributes["following_url"] + if "gists_url" in attributes: # pragma no branch + assert attributes["gists_url"] is None or isinstance(attributes["gists_url"], (str, unicode)), attributes["gists_url"] + self._gists_url = attributes["gists_url"] if "gravatar_id" in attributes: # pragma no branch assert attributes["gravatar_id"] is None or isinstance(attributes["gravatar_id"], (str, unicode)), attributes["gravatar_id"] self._gravatar_id = attributes["gravatar_id"] @@ -536,12 +650,15 @@ class NamedUser(github.GithubObject.CompletableGithubObject): if "name" in attributes: # pragma no branch assert attributes["name"] is None or isinstance(attributes["name"], (str, unicode)), attributes["name"] self._name = attributes["name"] + if "organizations_url" in attributes: # pragma no branch + assert attributes["organizations_url"] is None or isinstance(attributes["organizations_url"], (str, unicode)), attributes["organizations_url"] + self._organizations_url = attributes["organizations_url"] if "owned_private_repos" in attributes: # pragma no branch assert attributes["owned_private_repos"] is None or isinstance(attributes["owned_private_repos"], (int, long)), attributes["owned_private_repos"] self._owned_private_repos = attributes["owned_private_repos"] if "plan" in attributes: # pragma no branch assert attributes["plan"] is None or isinstance(attributes["plan"], dict), attributes["plan"] - self._plan = None if attributes["plan"] is None else github.Plan.Plan(self._requester, attributes["plan"], completed=False) + self._plan = None if attributes["plan"] is None else github.Plan.Plan(self._requester, self._headers, attributes["plan"], completed=False) if "private_gists" in attributes: # pragma no branch assert attributes["private_gists"] is None or isinstance(attributes["private_gists"], (int, long)), attributes["private_gists"] self._private_gists = attributes["private_gists"] @@ -551,12 +668,27 @@ class NamedUser(github.GithubObject.CompletableGithubObject): if "public_repos" in attributes: # pragma no branch assert attributes["public_repos"] is None or isinstance(attributes["public_repos"], (int, long)), attributes["public_repos"] self._public_repos = attributes["public_repos"] + if "received_events_url" in attributes: # pragma no branch + assert attributes["received_events_url"] is None or isinstance(attributes["received_events_url"], (str, unicode)), attributes["received_events_url"] + self._received_events_url = attributes["received_events_url"] + if "repos_url" in attributes: # pragma no branch + assert attributes["repos_url"] is None or isinstance(attributes["repos_url"], (str, unicode)), attributes["repos_url"] + self._repos_url = attributes["repos_url"] + if "starred_url" in attributes: # pragma no branch + assert attributes["starred_url"] is None or isinstance(attributes["starred_url"], (str, unicode)), attributes["starred_url"] + self._starred_url = attributes["starred_url"] + if "subscriptions_url" in attributes: # pragma no branch + assert attributes["subscriptions_url"] is None or isinstance(attributes["subscriptions_url"], (str, unicode)), attributes["subscriptions_url"] + self._subscriptions_url = attributes["subscriptions_url"] if "total_private_repos" in attributes: # pragma no branch assert attributes["total_private_repos"] is None or isinstance(attributes["total_private_repos"], (int, long)), attributes["total_private_repos"] self._total_private_repos = attributes["total_private_repos"] if "type" in attributes: # pragma no branch assert attributes["type"] is None or isinstance(attributes["type"], (str, unicode)), attributes["type"] self._type = attributes["type"] + if "updated_at" in attributes: # pragma no branch + assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] + self._updated_at = self._parseDatetime(attributes["updated_at"]) if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] diff --git a/github/Notification.py b/github/Notification.py index d0ecd7db..3055ae86 100644 --- a/github/Notification.py +++ b/github/Notification.py @@ -2,6 +2,7 @@ ############################ Copyrights and license ############################ # # +# Copyright 2013 AKFish # # Copyright 2013 Peter Golm # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # @@ -42,6 +43,14 @@ class Notification(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._id) return self._NoneIfNotSet(self._id) + @property + def last_read_at(self): + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._last_read_at) + return self._NoneIfNotSet(self._last_read_at) + @property def repository(self): """ @@ -66,6 +75,14 @@ class Notification(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._reason) return self._NoneIfNotSet(self._reason) + @property + def subscription_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._subscription_url) + return self._NoneIfNotSet(self._subscription_url) + @property def unread(self): """ @@ -92,8 +109,10 @@ class Notification(github.GithubObject.CompletableGithubObject): def _initAttributes(self): self._id = github.GithubObject.NotSet + self._last_read_at = github.GithubObject.NotSet self._repository = github.GithubObject.NotSet self._reason = github.GithubObject.NotSet + self._subscription_url = github.GithubObject.NotSet self._unread = github.GithubObject.NotSet self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet @@ -102,15 +121,21 @@ class Notification(github.GithubObject.CompletableGithubObject): if "id" in attributes: # pragma no branch assert attributes["id"] is None or isinstance(attributes["id"], (str, unicode)), attributes["id"] self._id = attributes["id"] + if "last_read_at" in attributes: # pragma no branch + assert attributes["last_read_at"] is None or isinstance(attributes["last_read_at"], (str, unicode)), attributes["last_read_at"] + self._last_read_at = self._parseDatetime(attributes["last_read_at"]) if "repository" in attributes: # pragma no branch assert attributes["repository"] is None or isinstance(attributes["repository"], dict), attributes["repository"] - self._repository = None if attributes["repository"] is None else github.Repository.Repository(self._requester, attributes["repository"], completed=False) + self._repository = None if attributes["repository"] is None else github.Repository.Repository(self._requester, self._headers, attributes["repository"], completed=False) if "subject" in attributes: # pragma no branch assert attributes["subject"] is None or isinstance(attributes["subject"], dict), attributes["subject"] - self._subject = None if attributes["subject"] is None else github.NotificationSubject.NotificationSubject(self._requester, attributes["subject"], completed=False) + self._subject = None if attributes["subject"] is None else github.NotificationSubject.NotificationSubject(self._requester, self._headers, attributes["subject"], completed=False) if "reason" in attributes: # pragma no branch assert attributes["reason"] is None or isinstance(attributes["reason"], (str, unicode)), attributes["reason"] self._reason = attributes["reason"] + if "subscription_url" in attributes: # pragma no branch + assert attributes["subscription_url"] is None or isinstance(attributes["subscription_url"], (str, unicode)), attributes["subscription_url"] + self._subscription_url = attributes["subscription_url"] if "unread" in attributes: # pragma no branch assert attributes["unread"] is None or isinstance(attributes["unread"], bool), attributes["unread"] self._unread = attributes["unread"] diff --git a/github/NotificationSubject.py b/github/NotificationSubject.py index 169e1d89..7e1ce3ad 100644 --- a/github/NotificationSubject.py +++ b/github/NotificationSubject.py @@ -2,6 +2,7 @@ ############################ Copyrights and license ############################ # # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/Organization.py b/github/Organization.py index efe9cef0..3628bbf0 100644 --- a/github/Organization.py +++ b/github/Organization.py @@ -5,6 +5,7 @@ # Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -106,6 +107,14 @@ class Organization(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._email) return self._NoneIfNotSet(self._email) + @property + def events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._events_url) + return self._NoneIfNotSet(self._events_url) + @property def followers(self): """ @@ -162,6 +171,14 @@ class Organization(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._login) return self._NoneIfNotSet(self._login) + @property + def members_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._members_url) + return self._NoneIfNotSet(self._members_url) + @property def name(self): """ @@ -202,6 +219,14 @@ class Organization(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._public_gists) return self._NoneIfNotSet(self._public_gists) + @property + def public_members_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._public_members_url) + return self._NoneIfNotSet(self._public_members_url) + @property def public_repos(self): """ @@ -210,6 +235,14 @@ class Organization(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._public_repos) return self._NoneIfNotSet(self._public_repos) + @property + def repos_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._repos_url) + return self._NoneIfNotSet(self._repos_url) + @property def total_private_repos(self): """ @@ -226,6 +259,14 @@ class Organization(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._type) return self._NoneIfNotSet(self._type) + @property + def updated_at(self): + """ + :type: datetime.datetime + """ + self._completeIfNotSet(self._updated_at) + return self._NoneIfNotSet(self._updated_at) + @property def url(self): """ @@ -243,9 +284,7 @@ class Organization(github.GithubObject.CompletableGithubObject): assert isinstance(public_member, github.NamedUser.NamedUser), public_member headers, data = self._requester.requestJsonAndCheck( "PUT", - self.url + "/public_members/" + public_member._identity, - None, - None + self.url + "/public_members/" + public_member._identity ) def create_fork(self, repo): @@ -261,10 +300,9 @@ class Organization(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", "/repos/" + repo.owner.login + "/" + repo.name + "/forks", - url_parameters, - None + parameters=url_parameters ) - return github.Repository.Repository(self._requester, data, completed=True) + return github.Repository.Repository(self._requester, headers, data, completed=True) def create_repo(self, name, description=github.GithubObject.NotSet, homepage=github.GithubObject.NotSet, private=github.GithubObject.NotSet, has_issues=github.GithubObject.NotSet, has_wiki=github.GithubObject.NotSet, has_downloads=github.GithubObject.NotSet, team_id=github.GithubObject.NotSet, auto_init=github.GithubObject.NotSet, gitignore_template=github.GithubObject.NotSet): """ @@ -315,10 +353,9 @@ class Organization(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/repos", - None, - post_parameters + input=post_parameters ) - return github.Repository.Repository(self._requester, data, completed=True) + return github.Repository.Repository(self._requester, headers, data, completed=True) def create_team(self, name, repo_names=github.GithubObject.NotSet, permission=github.GithubObject.NotSet): """ @@ -341,10 +378,9 @@ class Organization(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/teams", - None, - post_parameters + input=post_parameters ) - return github.Team.Team(self._requester, data, completed=True) + return github.Team.Team(self._requester, headers, data, completed=True) def edit(self, billing_email=github.GithubObject.NotSet, blog=github.GithubObject.NotSet, company=github.GithubObject.NotSet, email=github.GithubObject.NotSet, location=github.GithubObject.NotSet, name=github.GithubObject.NotSet): """ @@ -379,8 +415,7 @@ class Organization(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -467,11 +502,9 @@ class Organization(github.GithubObject.CompletableGithubObject): assert isinstance(name, (str, unicode)), name headers, data = self._requester.requestJsonAndCheck( "GET", - "/repos/" + self.login + "/" + name, - None, - None + "/repos/" + self.login + "/" + name ) - return github.Repository.Repository(self._requester, data, completed=True) + return github.Repository.Repository(self._requester, headers, data, completed=True) def get_repos(self, type=github.GithubObject.NotSet): """ @@ -499,11 +532,9 @@ class Organization(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - "/teams/" + str(id), - None, - None + "/teams/" + str(id) ) - return github.Team.Team(self._requester, data, completed=True) + return github.Team.Team(self._requester, headers, data, completed=True) def get_teams(self): """ @@ -526,9 +557,7 @@ class Organization(github.GithubObject.CompletableGithubObject): assert isinstance(member, github.NamedUser.NamedUser), member status, headers, data = self._requester.requestJson( "GET", - self.url + "/members/" + member._identity, - None, - None + self.url + "/members/" + member._identity ) return status == 204 @@ -541,9 +570,7 @@ class Organization(github.GithubObject.CompletableGithubObject): assert isinstance(public_member, github.NamedUser.NamedUser), public_member status, headers, data = self._requester.requestJson( "GET", - self.url + "/public_members/" + public_member._identity, - None, - None + self.url + "/public_members/" + public_member._identity ) return status == 204 @@ -556,9 +583,7 @@ class Organization(github.GithubObject.CompletableGithubObject): assert isinstance(member, github.NamedUser.NamedUser), member headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url + "/members/" + member._identity, - None, - None + self.url + "/members/" + member._identity ) def remove_from_public_members(self, public_member): @@ -570,9 +595,7 @@ class Organization(github.GithubObject.CompletableGithubObject): assert isinstance(public_member, github.NamedUser.NamedUser), public_member headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url + "/public_members/" + public_member._identity, - None, - None + self.url + "/public_members/" + public_member._identity ) def _initAttributes(self): @@ -584,6 +607,7 @@ class Organization(github.GithubObject.CompletableGithubObject): self._created_at = github.GithubObject.NotSet self._disk_usage = github.GithubObject.NotSet self._email = github.GithubObject.NotSet + self._events_url = github.GithubObject.NotSet self._followers = github.GithubObject.NotSet self._following = github.GithubObject.NotSet self._gravatar_id = github.GithubObject.NotSet @@ -591,14 +615,18 @@ class Organization(github.GithubObject.CompletableGithubObject): self._id = github.GithubObject.NotSet self._location = github.GithubObject.NotSet self._login = github.GithubObject.NotSet + self._members_url = github.GithubObject.NotSet self._name = github.GithubObject.NotSet self._owned_private_repos = github.GithubObject.NotSet self._plan = github.GithubObject.NotSet self._private_gists = github.GithubObject.NotSet self._public_gists = github.GithubObject.NotSet + self._public_members_url = github.GithubObject.NotSet self._public_repos = github.GithubObject.NotSet + self._repos_url = github.GithubObject.NotSet self._total_private_repos = github.GithubObject.NotSet self._type = github.GithubObject.NotSet + self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet def _useAttributes(self, attributes): @@ -626,6 +654,9 @@ class Organization(github.GithubObject.CompletableGithubObject): if "email" in attributes: # pragma no branch assert attributes["email"] is None or isinstance(attributes["email"], (str, unicode)), attributes["email"] self._email = attributes["email"] + if "events_url" in attributes: # pragma no branch + assert attributes["events_url"] is None or isinstance(attributes["events_url"], (str, unicode)), attributes["events_url"] + self._events_url = attributes["events_url"] if "followers" in attributes: # pragma no branch assert attributes["followers"] is None or isinstance(attributes["followers"], (int, long)), attributes["followers"] self._followers = attributes["followers"] @@ -647,6 +678,9 @@ class Organization(github.GithubObject.CompletableGithubObject): if "login" in attributes: # pragma no branch assert attributes["login"] is None or isinstance(attributes["login"], (str, unicode)), attributes["login"] self._login = attributes["login"] + if "members_url" in attributes: # pragma no branch + assert attributes["members_url"] is None or isinstance(attributes["members_url"], (str, unicode)), attributes["members_url"] + self._members_url = attributes["members_url"] if "name" in attributes: # pragma no branch assert attributes["name"] is None or isinstance(attributes["name"], (str, unicode)), attributes["name"] self._name = attributes["name"] @@ -655,22 +689,31 @@ class Organization(github.GithubObject.CompletableGithubObject): self._owned_private_repos = attributes["owned_private_repos"] if "plan" in attributes: # pragma no branch assert attributes["plan"] is None or isinstance(attributes["plan"], dict), attributes["plan"] - self._plan = None if attributes["plan"] is None else github.Plan.Plan(self._requester, attributes["plan"], completed=False) + self._plan = None if attributes["plan"] is None else github.Plan.Plan(self._requester, self._headers, attributes["plan"], completed=False) if "private_gists" in attributes: # pragma no branch assert attributes["private_gists"] is None or isinstance(attributes["private_gists"], (int, long)), attributes["private_gists"] self._private_gists = attributes["private_gists"] if "public_gists" in attributes: # pragma no branch assert attributes["public_gists"] is None or isinstance(attributes["public_gists"], (int, long)), attributes["public_gists"] self._public_gists = attributes["public_gists"] + if "public_members_url" in attributes: # pragma no branch + assert attributes["public_members_url"] is None or isinstance(attributes["public_members_url"], (str, unicode)), attributes["public_members_url"] + self._public_members_url = attributes["public_members_url"] if "public_repos" in attributes: # pragma no branch assert attributes["public_repos"] is None or isinstance(attributes["public_repos"], (int, long)), attributes["public_repos"] self._public_repos = attributes["public_repos"] + if "repos_url" in attributes: # pragma no branch + assert attributes["repos_url"] is None or isinstance(attributes["repos_url"], (str, unicode)), attributes["repos_url"] + self._repos_url = attributes["repos_url"] if "total_private_repos" in attributes: # pragma no branch assert attributes["total_private_repos"] is None or isinstance(attributes["total_private_repos"], (int, long)), attributes["total_private_repos"] self._total_private_repos = attributes["total_private_repos"] if "type" in attributes: # pragma no branch assert attributes["type"] is None or isinstance(attributes["type"], (str, unicode)), attributes["type"] self._type = attributes["type"] + if "updated_at" in attributes: # pragma no branch + assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] + self._updated_at = self._parseDatetime(attributes["updated_at"]) if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] diff --git a/github/PaginatedList.py b/github/PaginatedList.py index 90afc472..4c22b991 100644 --- a/github/PaginatedList.py +++ b/github/PaginatedList.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Bill Mill # # Copyright 2013 Vincent Jacques # # Copyright 2013 davidbrai # @@ -118,7 +119,11 @@ class PaginatedList(PaginatedListBase): self._reversed = False def _getLastPageUrl(self): - headers, data = self.__requester.requestJsonAndCheck("GET", self.__firstUrl, self.__nextParams, None) + headers, data = self.__requester.requestJsonAndCheck( + "GET", + self.__firstUrl, + parameters=self.__nextParams + ) links = self.__parseLinkHeader(headers) lastUrl = links.get("last") return lastUrl @@ -139,7 +144,11 @@ class PaginatedList(PaginatedListBase): return self.__nextUrl is not None def _fetchNextPage(self): - headers, data = self.__requester.requestJsonAndCheck("GET", self.__nextUrl, self.__nextParams, None) + headers, data = self.__requester.requestJsonAndCheck( + "GET", + self.__nextUrl, + parameters=self.__nextParams + ) self.__nextUrl = None if len(data) > 0: @@ -152,7 +161,7 @@ class PaginatedList(PaginatedListBase): self.__nextParams = None content = [ - self.__contentClass(self.__requester, element, completed=False) + self.__contentClass(self.__requester, headers, element, completed=False) for element in data ] if self._reversed: @@ -176,9 +185,13 @@ class PaginatedList(PaginatedListBase): params["page"] = page + 1 if self.__requester.per_page != 30: params["per_page"] = self.__requester.per_page - headers, data = self.__requester.requestJsonAndCheck("GET", self.__firstUrl, params, None) + headers, data = self.__requester.requestJsonAndCheck( + "GET", + self.__firstUrl, + parameters=params + ) return [ - self.__contentClass(self.__requester, element, completed=False) + self.__contentClass(self.__requester, headers, element, completed=False) for element in data ] diff --git a/github/Permissions.py b/github/Permissions.py index 8b9f3b39..3a3b4206 100644 --- a/github/Permissions.py +++ b/github/Permissions.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/Plan.py b/github/Plan.py index 1daefc7c..99a3c3a6 100644 --- a/github/Plan.py +++ b/github/Plan.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # diff --git a/github/PullRequest.py b/github/PullRequest.py index 0adad292..a1e4f13f 100644 --- a/github/PullRequest.py +++ b/github/PullRequest.py @@ -5,6 +5,7 @@ # Copyright 2012 Michael Stead # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -98,6 +99,14 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._comments) return self._NoneIfNotSet(self._comments) + @property + def comments_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._comments_url) + return self._NoneIfNotSet(self._comments_url) + @property def commits(self): """ @@ -106,6 +115,14 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._commits) return self._NoneIfNotSet(self._commits) + @property + def commits_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._commits_url) + return self._NoneIfNotSet(self._commits_url) + @property def created_at(self): """ @@ -162,6 +179,14 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._issue_url) return self._NoneIfNotSet(self._issue_url) + @property + def merge_commit_sha(self): + """ + :type: string + """ + self._completeIfNotSet(self._merge_commit_sha) + return self._NoneIfNotSet(self._merge_commit_sha) + @property def mergeable(self): """ @@ -170,6 +195,14 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._mergeable) return self._NoneIfNotSet(self._mergeable) + @property + def mergeable_state(self): + """ + :type: string + """ + self._completeIfNotSet(self._mergeable_state) + return self._NoneIfNotSet(self._mergeable_state) + @property def merged(self): """ @@ -194,6 +227,14 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._merged_by) return self._NoneIfNotSet(self._merged_by) + @property + def milestone(self): + """ + :type: :class:`github.Milestone.Milestone` + """ + self._completeIfNotSet(self._milestone) + return self._NoneIfNotSet(self._milestone) + @property def number(self): """ @@ -210,6 +251,14 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._patch_url) return self._NoneIfNotSet(self._patch_url) + @property + def review_comment_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._review_comment_url) + return self._NoneIfNotSet(self._review_comment_url) + @property def review_comments(self): """ @@ -218,6 +267,14 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._review_comments) return self._NoneIfNotSet(self._review_comments) + @property + def review_comments_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._review_comments_url) + return self._NoneIfNotSet(self._review_comments_url) + @property def state(self): """ @@ -291,10 +348,9 @@ class PullRequest(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/comments", - None, - post_parameters + input=post_parameters ) - return github.PullRequestComment.PullRequestComment(self._requester, data, completed=True) + return github.PullRequestComment.PullRequestComment(self._requester, headers, data, completed=True) def create_issue_comment(self, body): """ @@ -309,10 +365,9 @@ class PullRequest(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self._parentUrl(self._parentUrl(self.url)) + "/issues/" + str(self.number) + "/comments", - None, - post_parameters + input=post_parameters ) - return github.IssueComment.IssueComment(self._requester, data, completed=True) + return github.IssueComment.IssueComment(self._requester, headers, data, completed=True) def edit(self, title=github.GithubObject.NotSet, body=github.GithubObject.NotSet, state=github.GithubObject.NotSet): """ @@ -335,8 +390,7 @@ class PullRequest(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -357,11 +411,9 @@ class PullRequest(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - self._parentUrl(self.url) + "/comments/" + str(id), - None, - None + self._parentUrl(self.url) + "/comments/" + str(id) ) - return github.PullRequestComment.PullRequestComment(self._requester, data, completed=True) + return github.PullRequestComment.PullRequestComment(self._requester, headers, data, completed=True) def get_comments(self): """ @@ -415,11 +467,9 @@ class PullRequest(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - self._parentUrl(self._parentUrl(self.url)) + "/issues/comments/" + str(id), - None, - None + self._parentUrl(self._parentUrl(self.url)) + "/issues/comments/" + str(id) ) - return github.IssueComment.IssueComment(self._requester, data, completed=True) + return github.IssueComment.IssueComment(self._requester, headers, data, completed=True) def get_issue_comments(self): """ @@ -440,9 +490,7 @@ class PullRequest(github.GithubObject.CompletableGithubObject): """ status, headers, data = self._requester.requestJson( "GET", - self.url + "/merge", - None, - None + self.url + "/merge" ) return status == 204 @@ -459,10 +507,9 @@ class PullRequest(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PUT", self.url + "/merge", - None, - post_parameters + input=post_parameters ) - return github.PullRequestMergeStatus.PullRequestMergeStatus(self._requester, data, completed=True) + return github.PullRequestMergeStatus.PullRequestMergeStatus(self._requester, headers, data, completed=True) def _initAttributes(self): self._additions = github.GithubObject.NotSet @@ -472,7 +519,9 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._changed_files = github.GithubObject.NotSet self._closed_at = github.GithubObject.NotSet self._comments = github.GithubObject.NotSet + self._comments_url = github.GithubObject.NotSet self._commits = github.GithubObject.NotSet + self._commits_url = github.GithubObject.NotSet self._created_at = github.GithubObject.NotSet self._deletions = github.GithubObject.NotSet self._diff_url = github.GithubObject.NotSet @@ -480,13 +529,18 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._html_url = github.GithubObject.NotSet self._id = github.GithubObject.NotSet self._issue_url = github.GithubObject.NotSet + self._merge_commit_sha = github.GithubObject.NotSet self._mergeable = github.GithubObject.NotSet + self._mergeable_state = github.GithubObject.NotSet self._merged = github.GithubObject.NotSet self._merged_at = github.GithubObject.NotSet self._merged_by = github.GithubObject.NotSet + self._milestone = github.GithubObject.NotSet self._number = github.GithubObject.NotSet self._patch_url = github.GithubObject.NotSet + self._review_comment_url = github.GithubObject.NotSet self._review_comments = github.GithubObject.NotSet + self._review_comments_url = github.GithubObject.NotSet self._state = github.GithubObject.NotSet self._title = github.GithubObject.NotSet self._updated_at = github.GithubObject.NotSet @@ -499,10 +553,10 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._additions = attributes["additions"] if "assignee" in attributes: # pragma no branch assert attributes["assignee"] is None or isinstance(attributes["assignee"], dict), attributes["assignee"] - self._assignee = None if attributes["assignee"] is None else github.NamedUser.NamedUser(self._requester, attributes["assignee"], completed=False) + self._assignee = None if attributes["assignee"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["assignee"], completed=False) if "base" in attributes: # pragma no branch assert attributes["base"] is None or isinstance(attributes["base"], dict), attributes["base"] - self._base = None if attributes["base"] is None else github.PullRequestPart.PullRequestPart(self._requester, attributes["base"], completed=False) + self._base = None if attributes["base"] is None else github.PullRequestPart.PullRequestPart(self._requester, self._headers, attributes["base"], completed=False) if "body" in attributes: # pragma no branch assert attributes["body"] is None or isinstance(attributes["body"], (str, unicode)), attributes["body"] self._body = attributes["body"] @@ -515,9 +569,15 @@ class PullRequest(github.GithubObject.CompletableGithubObject): if "comments" in attributes: # pragma no branch assert attributes["comments"] is None or isinstance(attributes["comments"], (int, long)), attributes["comments"] self._comments = attributes["comments"] + if "comments_url" in attributes: # pragma no branch + assert attributes["comments_url"] is None or isinstance(attributes["comments_url"], (str, unicode)), attributes["comments_url"] + self._comments_url = attributes["comments_url"] if "commits" in attributes: # pragma no branch assert attributes["commits"] is None or isinstance(attributes["commits"], (int, long)), attributes["commits"] self._commits = attributes["commits"] + if "commits_url" in attributes: # pragma no branch + assert attributes["commits_url"] is None or isinstance(attributes["commits_url"], (str, unicode)), attributes["commits_url"] + self._commits_url = attributes["commits_url"] if "created_at" in attributes: # pragma no branch assert attributes["created_at"] is None or isinstance(attributes["created_at"], (str, unicode)), attributes["created_at"] self._created_at = self._parseDatetime(attributes["created_at"]) @@ -529,7 +589,7 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._diff_url = attributes["diff_url"] if "head" in attributes: # pragma no branch assert attributes["head"] is None or isinstance(attributes["head"], dict), attributes["head"] - self._head = None if attributes["head"] is None else github.PullRequestPart.PullRequestPart(self._requester, attributes["head"], completed=False) + self._head = None if attributes["head"] is None else github.PullRequestPart.PullRequestPart(self._requester, self._headers, attributes["head"], completed=False) if "html_url" in attributes: # pragma no branch assert attributes["html_url"] is None or isinstance(attributes["html_url"], (str, unicode)), attributes["html_url"] self._html_url = attributes["html_url"] @@ -539,9 +599,15 @@ class PullRequest(github.GithubObject.CompletableGithubObject): if "issue_url" in attributes: # pragma no branch assert attributes["issue_url"] is None or isinstance(attributes["issue_url"], (str, unicode)), attributes["issue_url"] self._issue_url = attributes["issue_url"] + if "merge_commit_sha" in attributes: # pragma no branch + assert attributes["merge_commit_sha"] is None or isinstance(attributes["merge_commit_sha"], (str, unicode)), attributes["merge_commit_sha"] + self._merge_commit_sha = attributes["merge_commit_sha"] if "mergeable" in attributes: # pragma no branch assert attributes["mergeable"] is None or isinstance(attributes["mergeable"], bool), attributes["mergeable"] self._mergeable = attributes["mergeable"] + if "mergeable_state" in attributes: # pragma no branch + assert attributes["mergeable_state"] is None or isinstance(attributes["mergeable_state"], (str, unicode)), attributes["mergeable_state"] + self._mergeable_state = attributes["mergeable_state"] if "merged" in attributes: # pragma no branch assert attributes["merged"] is None or isinstance(attributes["merged"], bool), attributes["merged"] self._merged = attributes["merged"] @@ -550,16 +616,25 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._merged_at = self._parseDatetime(attributes["merged_at"]) if "merged_by" in attributes: # pragma no branch assert attributes["merged_by"] is None or isinstance(attributes["merged_by"], dict), attributes["merged_by"] - self._merged_by = None if attributes["merged_by"] is None else github.NamedUser.NamedUser(self._requester, attributes["merged_by"], completed=False) + self._merged_by = None if attributes["merged_by"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["merged_by"], completed=False) + if "milestone" in attributes: # pragma no branch + assert attributes["milestone"] is None or isinstance(attributes["milestone"], dict), attributes["milestone"] + self._milestone = None if attributes["milestone"] is None else github.Milestone.Milestone(self._requester, self._headers, attributes["milestone"], completed=False) if "number" in attributes: # pragma no branch assert attributes["number"] is None or isinstance(attributes["number"], (int, long)), attributes["number"] self._number = attributes["number"] if "patch_url" in attributes: # pragma no branch assert attributes["patch_url"] is None or isinstance(attributes["patch_url"], (str, unicode)), attributes["patch_url"] self._patch_url = attributes["patch_url"] + if "review_comment_url" in attributes: # pragma no branch + assert attributes["review_comment_url"] is None or isinstance(attributes["review_comment_url"], (str, unicode)), attributes["review_comment_url"] + self._review_comment_url = attributes["review_comment_url"] if "review_comments" in attributes: # pragma no branch assert attributes["review_comments"] is None or isinstance(attributes["review_comments"], (int, long)), attributes["review_comments"] self._review_comments = attributes["review_comments"] + if "review_comments_url" in attributes: # pragma no branch + assert attributes["review_comments_url"] is None or isinstance(attributes["review_comments_url"], (str, unicode)), attributes["review_comments_url"] + self._review_comments_url = attributes["review_comments_url"] if "state" in attributes: # pragma no branch assert attributes["state"] is None or isinstance(attributes["state"], (str, unicode)), attributes["state"] self._state = attributes["state"] @@ -574,4 +649,4 @@ class PullRequest(github.GithubObject.CompletableGithubObject): self._url = attributes["url"] if "user" in attributes: # pragma no branch assert attributes["user"] is None or isinstance(attributes["user"], dict), attributes["user"] - self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, attributes["user"], completed=False) + self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["user"], completed=False) diff --git a/github/PullRequestComment.py b/github/PullRequestComment.py index c8f0ef6f..5ebd95dd 100644 --- a/github/PullRequestComment.py +++ b/github/PullRequestComment.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Michael Stead # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # @@ -59,6 +60,14 @@ class PullRequestComment(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._created_at) return self._NoneIfNotSet(self._created_at) + @property + def diff_hunk(self): + """ + :type: string + """ + self._completeIfNotSet(self._diff_hunk) + return self._NoneIfNotSet(self._diff_hunk) + @property def id(self): """ @@ -99,6 +108,14 @@ class PullRequestComment(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._position) return self._NoneIfNotSet(self._position) + @property + def pull_request_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._pull_request_url) + return self._NoneIfNotSet(self._pull_request_url) + @property def updated_at(self): """ @@ -138,9 +155,7 @@ class PullRequestComment(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, body): @@ -156,8 +171,7 @@ class PullRequestComment(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -165,11 +179,13 @@ class PullRequestComment(github.GithubObject.CompletableGithubObject): self._body = github.GithubObject.NotSet self._commit_id = github.GithubObject.NotSet self._created_at = github.GithubObject.NotSet + self._diff_hunk = github.GithubObject.NotSet self._id = github.GithubObject.NotSet self._original_commit_id = github.GithubObject.NotSet self._original_position = github.GithubObject.NotSet self._path = github.GithubObject.NotSet self._position = github.GithubObject.NotSet + self._pull_request_url = github.GithubObject.NotSet self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet self._html_url = github.GithubObject.NotSet @@ -185,6 +201,9 @@ class PullRequestComment(github.GithubObject.CompletableGithubObject): if "created_at" in attributes: # pragma no branch assert attributes["created_at"] is None or isinstance(attributes["created_at"], (str, unicode)), attributes["created_at"] self._created_at = self._parseDatetime(attributes["created_at"]) + if "diff_hunk" in attributes: # pragma no branch + assert attributes["diff_hunk"] is None or isinstance(attributes["diff_hunk"], (str, unicode)), attributes["diff_hunk"] + self._diff_hunk = attributes["diff_hunk"] if "id" in attributes: # pragma no branch assert attributes["id"] is None or isinstance(attributes["id"], (int, long)), attributes["id"] self._id = attributes["id"] @@ -200,6 +219,9 @@ class PullRequestComment(github.GithubObject.CompletableGithubObject): if "position" in attributes: # pragma no branch assert attributes["position"] is None or isinstance(attributes["position"], (int, long)), attributes["position"] self._position = attributes["position"] + if "pull_request_url" in attributes: # pragma no branch + assert attributes["pull_request_url"] is None or isinstance(attributes["pull_request_url"], (str, unicode)), attributes["pull_request_url"] + self._pull_request_url = attributes["pull_request_url"] if "updated_at" in attributes: # pragma no branch assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] self._updated_at = self._parseDatetime(attributes["updated_at"]) @@ -211,4 +233,4 @@ class PullRequestComment(github.GithubObject.CompletableGithubObject): self._html_url = attributes["html_url"] if "user" in attributes: # pragma no branch assert attributes["user"] is None or isinstance(attributes["user"], dict), attributes["user"] - self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, attributes["user"], completed=False) + self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["user"], completed=False) diff --git a/github/PullRequestMergeStatus.py b/github/PullRequestMergeStatus.py index f9bae790..9c416dbd 100644 --- a/github/PullRequestMergeStatus.py +++ b/github/PullRequestMergeStatus.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # diff --git a/github/PullRequestPart.py b/github/PullRequestPart.py index 99778645..791452b0 100644 --- a/github/PullRequestPart.py +++ b/github/PullRequestPart.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -85,10 +86,10 @@ class PullRequestPart(github.GithubObject.NonCompletableGithubObject): self._ref = attributes["ref"] if "repo" in attributes: # pragma no branch assert attributes["repo"] is None or isinstance(attributes["repo"], dict), attributes["repo"] - self._repo = None if attributes["repo"] is None else github.Repository.Repository(self._requester, attributes["repo"], completed=False) + self._repo = None if attributes["repo"] is None else github.Repository.Repository(self._requester, self._headers, attributes["repo"], completed=False) if "sha" in attributes: # pragma no branch assert attributes["sha"] is None or isinstance(attributes["sha"], (str, unicode)), attributes["sha"] self._sha = attributes["sha"] if "user" in attributes: # pragma no branch assert attributes["user"] is None or isinstance(attributes["user"], dict), attributes["user"] - self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, attributes["user"], completed=False) + self._user = None if attributes["user"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["user"], completed=False) diff --git a/github/Rate.py b/github/Rate.py new file mode 100644 index 00000000..aad4ef3f --- /dev/null +++ b/github/Rate.py @@ -0,0 +1,68 @@ +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import github.GithubObject +import datetime + + +class Rate(github.GithubObject.NonCompletableGithubObject): + """ + This class represents rate limits as defined in http://developer.github.com/v3/rate_limit + """ + + @property + def limit(self): + """ + :type: integer + """ + return self._NoneIfNotSet(self._limit) + + @property + def remaining(self): + """ + :type: integer + """ + return self._NoneIfNotSet(self._remaining) + + @property + def reset(self): + """ + :type: datetime.datetime + """ + return self._NoneIfNotSet(self._reset) + + def _initAttributes(self): + self._limit = github.GithubObject.NotSet + self._remaining = github.GithubObject.NotSet + self._reset = github.GithubObject.NotSet + + def _useAttributes(self, attributes): + if "limit" in attributes: # pragma no branch + assert attributes["limit"] is None or isinstance(attributes["limit"], (int, long)), attributes["limit"] + self._limit = attributes["limit"] + if "remaining" in attributes: # pragma no branch + assert attributes["remaining"] is None or isinstance(attributes["remaining"], (int, long)), attributes["remaining"] + self._remaining = attributes["remaining"] + if "reset" in attributes: # pragma no branch + assert attributes["reset"] is None or isinstance(attributes["reset"], (int, long)), attributes["reset"] + self._reset = datetime.datetime.utcfromtimestamp(attributes["reset"]) diff --git a/github/RateLimit.py b/github/RateLimit.py new file mode 100644 index 00000000..38589049 --- /dev/null +++ b/github/RateLimit.py @@ -0,0 +1,46 @@ +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import github.GithubObject +import github.Rate + + +class RateLimit(github.GithubObject.NonCompletableGithubObject): + """ + This class represents rate limits as defined in http://developer.github.com/v3/rate_limit + """ + + @property + def rate(self): + """ + :type: class:`github.Rate.Rate` + """ + return self._NoneIfNotSet(self._rate) + + def _initAttributes(self): + self._rate = github.GithubObject.NotSet + + def _useAttributes(self, attributes): + if "rate" in attributes: # pragma no branch + assert attributes["rate"] is None or isinstance(attributes["rate"], dict), attributes["rate"] + self._rate = None if attributes["rate"] is None else github.Rate.Rate(self._requester, self._headers, attributes["rate"], completed=False) diff --git a/github/Repository.py b/github/Repository.py index 4361cf0a..37d303bb 100644 --- a/github/Repository.py +++ b/github/Repository.py @@ -6,6 +6,7 @@ # Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Adrian Petrescu # # Copyright 2013 Mark Roddy # # Copyright 2013 Vincent Jacques # @@ -67,6 +68,38 @@ class Repository(github.GithubObject.CompletableGithubObject): This class represents Repositorys. The reference can be found here http://developer.github.com/v3/repos/ """ + @property + def archive_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._archive_url) + return self._NoneIfNotSet(self._archive_url) + + @property + def assignees_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._assignees_url) + return self._NoneIfNotSet(self._assignees_url) + + @property + def blobs_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._blobs_url) + return self._NoneIfNotSet(self._blobs_url) + + @property + def branches_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._branches_url) + return self._NoneIfNotSet(self._branches_url) + @property def clone_url(self): """ @@ -75,6 +108,54 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._clone_url) return self._NoneIfNotSet(self._clone_url) + @property + def collaborators_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._collaborators_url) + return self._NoneIfNotSet(self._collaborators_url) + + @property + def comments_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._comments_url) + return self._NoneIfNotSet(self._comments_url) + + @property + def commits_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._commits_url) + return self._NoneIfNotSet(self._commits_url) + + @property + def compare_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._compare_url) + return self._NoneIfNotSet(self._compare_url) + + @property + def contents_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._contents_url) + return self._NoneIfNotSet(self._contents_url) + + @property + def contributors_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._contributors_url) + return self._NoneIfNotSet(self._contributors_url) + @property def created_at(self): """ @@ -83,6 +164,14 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._created_at) return self._NoneIfNotSet(self._created_at) + @property + def default_branch(self): + """ + :type: string + """ + self._completeIfNotSet(self._default_branch) + return self._NoneIfNotSet(self._default_branch) + @property def description(self): """ @@ -91,6 +180,22 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._description) return self._NoneIfNotSet(self._description) + @property + def downloads_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._downloads_url) + return self._NoneIfNotSet(self._downloads_url) + + @property + def events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._events_url) + return self._NoneIfNotSet(self._events_url) + @property def fork(self): """ @@ -107,6 +212,22 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._forks) return self._NoneIfNotSet(self._forks) + @property + def forks_count(self): + """ + :type: integer + """ + self._completeIfNotSet(self._forks_count) + return self._NoneIfNotSet(self._forks_count) + + @property + def forks_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._forks_url) + return self._NoneIfNotSet(self._forks_url) + @property def full_name(self): """ @@ -115,6 +236,30 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._full_name) return self._NoneIfNotSet(self._full_name) + @property + def git_commits_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._git_commits_url) + return self._NoneIfNotSet(self._git_commits_url) + + @property + def git_refs_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._git_refs_url) + return self._NoneIfNotSet(self._git_refs_url) + + @property + def git_tags_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._git_tags_url) + return self._NoneIfNotSet(self._git_tags_url) + @property def git_url(self): """ @@ -155,6 +300,14 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._homepage) return self._NoneIfNotSet(self._homepage) + @property + def hooks_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._hooks_url) + return self._NoneIfNotSet(self._hooks_url) + @property def html_url(self): """ @@ -171,6 +324,46 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._id) return self._NoneIfNotSet(self._id) + @property + def issue_comment_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._issue_comment_url) + return self._NoneIfNotSet(self._issue_comment_url) + + @property + def issue_events_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._issue_events_url) + return self._NoneIfNotSet(self._issue_events_url) + + @property + def issues_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._issues_url) + return self._NoneIfNotSet(self._issues_url) + + @property + def keys_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._keys_url) + return self._NoneIfNotSet(self._keys_url) + + @property + def labels_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._labels_url) + return self._NoneIfNotSet(self._labels_url) + @property def language(self): """ @@ -179,6 +372,14 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._language) return self._NoneIfNotSet(self._language) + @property + def languages_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._languages_url) + return self._NoneIfNotSet(self._languages_url) + @property def master_branch(self): """ @@ -187,6 +388,30 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._master_branch) return self._NoneIfNotSet(self._master_branch) + @property + def merges_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._merges_url) + return self._NoneIfNotSet(self._merges_url) + + @property + def milestones_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._milestones_url) + return self._NoneIfNotSet(self._milestones_url) + + @property + def mirror_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._mirror_url) + return self._NoneIfNotSet(self._mirror_url) + @property def name(self): """ @@ -195,6 +420,22 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._name) return self._NoneIfNotSet(self._name) + @property + def network_count(self): + """ + :type: integer + """ + self._completeIfNotSet(self._network_count) + return self._NoneIfNotSet(self._network_count) + + @property + def notifications_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._notifications_url) + return self._NoneIfNotSet(self._notifications_url) + @property def open_issues(self): """ @@ -203,6 +444,14 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._open_issues) return self._NoneIfNotSet(self._open_issues) + @property + def open_issues_count(self): + """ + :type: integer + """ + self._completeIfNotSet(self._open_issues_count) + return self._NoneIfNotSet(self._open_issues_count) + @property def organization(self): """ @@ -243,6 +492,14 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._private) return self._NoneIfNotSet(self._private) + @property + def pulls_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._pulls_url) + return self._NoneIfNotSet(self._pulls_url) + @property def pushed_at(self): """ @@ -275,6 +532,38 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._ssh_url) return self._NoneIfNotSet(self._ssh_url) + @property + def stargazers_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._stargazers_url) + return self._NoneIfNotSet(self._stargazers_url) + + @property + def statuses_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._statuses_url) + return self._NoneIfNotSet(self._statuses_url) + + @property + def subscribers_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._subscribers_url) + return self._NoneIfNotSet(self._subscribers_url) + + @property + def subscription_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._subscription_url) + return self._NoneIfNotSet(self._subscription_url) + @property def svn_url(self): """ @@ -283,6 +572,30 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._svn_url) return self._NoneIfNotSet(self._svn_url) + @property + def tags_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._tags_url) + return self._NoneIfNotSet(self._tags_url) + + @property + def teams_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._teams_url) + return self._NoneIfNotSet(self._teams_url) + + @property + def trees_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._trees_url) + return self._NoneIfNotSet(self._trees_url) + @property def updated_at(self): """ @@ -307,6 +620,14 @@ class Repository(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._watchers) return self._NoneIfNotSet(self._watchers) + @property + def watchers_count(self): + """ + :type: integer + """ + self._completeIfNotSet(self._watchers_count) + return self._NoneIfNotSet(self._watchers_count) + def add_to_collaborators(self, collaborator): """ :calls: `PUT /repos/:owner/:repo/collaborators/:user `_ @@ -316,9 +637,7 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(collaborator, github.NamedUser.NamedUser), collaborator headers, data = self._requester.requestJsonAndCheck( "PUT", - self.url + "/collaborators/" + collaborator._identity, - None, - None + self.url + "/collaborators/" + collaborator._identity ) def compare(self, base, head): @@ -332,11 +651,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(head, (str, unicode)), head headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/compare/" + base + "..." + head, - None, - None + self.url + "/compare/" + base + "..." + head ) - return github.Comparison.Comparison(self._requester, data, completed=True) + return github.Comparison.Comparison(self._requester, headers, data, completed=True) def create_download(self, name, size, description=github.GithubObject.NotSet, content_type=github.GithubObject.NotSet): """ @@ -362,10 +679,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/downloads", - None, - post_parameters + input=post_parameters ) - return github.Download.Download(self._requester, data, completed=True) + return github.Download.Download(self._requester, headers, data, completed=True) def create_git_blob(self, content, encoding): """ @@ -383,10 +699,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/git/blobs", - None, - post_parameters + input=post_parameters ) - return github.GitBlob.GitBlob(self._requester, data, completed=True) + return github.GitBlob.GitBlob(self._requester, headers, data, completed=True) def create_git_commit(self, message, tree, parents, author=github.GithubObject.NotSet, committer=github.GithubObject.NotSet): """ @@ -415,10 +730,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/git/commits", - None, - post_parameters + input=post_parameters ) - return github.GitCommit.GitCommit(self._requester, data, completed=True) + return github.GitCommit.GitCommit(self._requester, headers, data, completed=True) def create_git_ref(self, ref, sha): """ @@ -436,10 +750,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/git/refs", - None, - post_parameters + input=post_parameters ) - return github.GitRef.GitRef(self._requester, data, completed=True) + return github.GitRef.GitRef(self._requester, headers, data, completed=True) def create_git_tag(self, tag, message, object, type, tagger=github.GithubObject.NotSet): """ @@ -467,10 +780,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/git/tags", - None, - post_parameters + input=post_parameters ) - return github.GitTag.GitTag(self._requester, data, completed=True) + return github.GitTag.GitTag(self._requester, headers, data, completed=True) def create_git_tree(self, tree, base_tree=github.GithubObject.NotSet): """ @@ -489,10 +801,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/git/trees", - None, - post_parameters + input=post_parameters ) - return github.GitTree.GitTree(self._requester, data, completed=True) + return github.GitTree.GitTree(self._requester, headers, data, completed=True) def create_hook(self, name, config, events=github.GithubObject.NotSet, active=github.GithubObject.NotSet): """ @@ -518,10 +829,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/hooks", - None, - post_parameters + input=post_parameters ) - return github.Hook.Hook(self._requester, data, completed=True) + return github.Hook.Hook(self._requester, headers, data, completed=True) def create_issue(self, title, body=github.GithubObject.NotSet, assignee=github.GithubObject.NotSet, milestone=github.GithubObject.NotSet, labels=github.GithubObject.NotSet): """ @@ -552,10 +862,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/issues", - None, - post_parameters + input=post_parameters ) - return github.Issue.Issue(self._requester, data, completed=True) + return github.Issue.Issue(self._requester, headers, data, completed=True) def create_key(self, title, key): """ @@ -573,10 +882,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/keys", - None, - post_parameters + input=post_parameters ) - return github.RepositoryKey.RepositoryKey(self._requester, data, completed=True, repoUrl=self._url) + return github.RepositoryKey.RepositoryKey(self._requester, headers, data, completed=True, repoUrl=self._url) def create_label(self, name, color): """ @@ -594,10 +902,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/labels", - None, - post_parameters + input=post_parameters ) - return github.Label.Label(self._requester, data, completed=True) + return github.Label.Label(self._requester, headers, data, completed=True) def create_milestone(self, title, state=github.GithubObject.NotSet, description=github.GithubObject.NotSet, due_on=github.GithubObject.NotSet): """ @@ -624,10 +931,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/milestones", - None, - post_parameters + input=post_parameters ) - return github.Milestone.Milestone(self._requester, data, completed=True) + return github.Milestone.Milestone(self._requester, headers, data, completed=True) def create_pull(self, *args, **kwds): """ @@ -662,10 +968,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/pulls", - None, - post_parameters + input=post_parameters ) - return github.PullRequest.PullRequest(self._requester, data, completed=True) + return github.PullRequest.PullRequest(self._requester, headers, data, completed=True) def delete(self): """ @@ -674,9 +979,7 @@ class Repository(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, name, description=github.GithubObject.NotSet, homepage=github.GithubObject.NotSet, public=github.GithubObject.NotSet, has_issues=github.GithubObject.NotSet, has_wiki=github.GithubObject.NotSet, has_downloads=github.GithubObject.NotSet, default_branch=github.GithubObject.NotSet): @@ -720,8 +1023,7 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -739,9 +1041,7 @@ class Repository(github.GithubObject.CompletableGithubObject): url += "/" + ref headers, data = self._requester.requestJsonAndCheck( "GET", - url, - None, - None + url ) return headers["location"] @@ -766,11 +1066,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(branch, (str, unicode)), branch headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/branches/" + branch, - None, - None + self.url + "/branches/" + branch ) - return github.Branch.Branch(self._requester, data, completed=True) + return github.Branch.Branch(self._requester, headers, data, completed=True) def get_branches(self): """ @@ -805,11 +1103,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/comments/" + str(id), - None, - None + self.url + "/comments/" + str(id) ) - return github.CommitComment.CommitComment(self._requester, data, completed=True) + return github.CommitComment.CommitComment(self._requester, headers, data, completed=True) def get_comments(self): """ @@ -832,11 +1128,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(sha, (str, unicode)), sha headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/commits/" + sha, - None, - None + self.url + "/commits/" + sha ) - return github.Commit.Commit(self._requester, data, completed=True) + return github.Commit.Commit(self._requester, headers, data, completed=True) def get_commits(self, sha=github.GithubObject.NotSet, path=github.GithubObject.NotSet, since=github.GithubObject.NotSet, until=github.GithubObject.NotSet): """ @@ -891,10 +1185,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "GET", self.url + "/contents" + path, - url_parameters, - None + parameters=url_parameters ) - return github.ContentFile.ContentFile(self._requester, data, completed=True) + return github.ContentFile.ContentFile(self._requester, headers, data, completed=True) def get_dir_contents(self, path, ref=github.GithubObject.NotSet): """ @@ -911,8 +1204,7 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "GET", self.url + "/contents" + path, - url_parameters, - None + parameters=url_parameters ) # Handle 302 redirect response @@ -920,12 +1212,11 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "GET", headers['location'], - url_parameters, - None + parameters=url_parameters ) return [ - github.ContentFile.ContentFile(self._requester, attributes, completed=(attributes["type"] != "file")) # Lazy completion only makes sense for files. See discussion here: https://github.com/jacquev6/PyGithub/issues/140#issuecomment-13481130 + github.ContentFile.ContentFile(self._requester, headers, attributes, completed=(attributes["type"] != "file")) # Lazy completion only makes sense for files. See discussion here: https://github.com/jacquev6/PyGithub/issues/140#issuecomment-13481130 for attributes in data ] @@ -950,11 +1241,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/downloads/" + str(id), - None, - None + self.url + "/downloads/" + str(id) ) - return github.Download.Download(self._requester, data, completed=True) + return github.Download.Download(self._requester, headers, data, completed=True) def get_downloads(self): """ @@ -1001,11 +1290,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(sha, (str, unicode)), sha headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/git/blobs/" + sha, - None, - None + self.url + "/git/blobs/" + sha ) - return github.GitBlob.GitBlob(self._requester, data, completed=True) + return github.GitBlob.GitBlob(self._requester, headers, data, completed=True) def get_git_commit(self, sha): """ @@ -1016,11 +1303,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(sha, (str, unicode)), sha headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/git/commits/" + sha, - None, - None + self.url + "/git/commits/" + sha ) - return github.GitCommit.GitCommit(self._requester, data, completed=True) + return github.GitCommit.GitCommit(self._requester, headers, data, completed=True) def get_git_ref(self, ref): """ @@ -1034,11 +1319,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(ref, (str, unicode)), ref headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + prefix + ref, - None, - None + self.url + prefix + ref ) - return github.GitRef.GitRef(self._requester, data, completed=True) + return github.GitRef.GitRef(self._requester, headers, data, completed=True) def get_git_refs(self): """ @@ -1061,11 +1344,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(sha, (str, unicode)), sha headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/git/tags/" + sha, - None, - None + self.url + "/git/tags/" + sha ) - return github.GitTag.GitTag(self._requester, data, completed=True) + return github.GitTag.GitTag(self._requester, headers, data, completed=True) def get_git_tree(self, sha, recursive=github.GithubObject.NotSet): """ @@ -1082,10 +1363,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "GET", self.url + "/git/trees/" + sha, - url_parameters, - None + parameters=url_parameters ) - return github.GitTree.GitTree(self._requester, data, completed=True) + return github.GitTree.GitTree(self._requester, headers, data, completed=True) def get_hook(self, id): """ @@ -1096,11 +1376,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/hooks/" + str(id), - None, - None + self.url + "/hooks/" + str(id) ) - return github.Hook.Hook(self._requester, data, completed=True) + return github.Hook.Hook(self._requester, headers, data, completed=True) def get_hooks(self): """ @@ -1123,11 +1401,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(number, (int, long)), number headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/issues/" + str(number), - None, - None + self.url + "/issues/" + str(number) ) - return github.Issue.Issue(self._requester, data, completed=True) + return github.Issue.Issue(self._requester, headers, data, completed=True) def get_issues(self, milestone=github.GithubObject.NotSet, state=github.GithubObject.NotSet, assignee=github.GithubObject.NotSet, mentioned=github.GithubObject.NotSet, labels=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet, since=github.GithubObject.NotSet): """ @@ -1214,11 +1490,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/issues/events/" + str(id), - None, - None + self.url + "/issues/events/" + str(id) ) - return github.IssueEvent.IssueEvent(self._requester, data, completed=True) + return github.IssueEvent.IssueEvent(self._requester, headers, data, completed=True) def get_issues_events(self): """ @@ -1241,11 +1515,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(id, (int, long)), id headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/keys/" + str(id), - None, - None + self.url + "/keys/" + str(id) ) - return github.RepositoryKey.RepositoryKey(self._requester, data, completed=True, repoUrl=self._url) + return github.RepositoryKey.RepositoryKey(self._requester, headers, data, completed=True, repoUrl=self._url) def get_keys(self): """ @@ -1253,7 +1525,7 @@ class Repository(github.GithubObject.CompletableGithubObject): :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.RepositoryKey.RepositoryKey` """ return github.PaginatedList.PaginatedList( - lambda requester, data, completed: github.RepositoryKey.RepositoryKey(requester, data, completed, repoUrl=self._url), + lambda requester, headers, data, completed: github.RepositoryKey.RepositoryKey(requester, headers, data, completed, repoUrl=self._url), self._requester, self.url + "/keys", None @@ -1268,11 +1540,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(name, (str, unicode)), name headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/labels/" + urllib.quote(name), - None, - None + self.url + "/labels/" + urllib.quote(name) ) - return github.Label.Label(self._requester, data, completed=True) + return github.Label.Label(self._requester, headers, data, completed=True) def get_labels(self): """ @@ -1293,9 +1563,7 @@ class Repository(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/languages", - None, - None + self.url + "/languages" ) return data @@ -1308,11 +1576,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(number, (int, long)), number headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/milestones/" + str(number), - None, - None + self.url + "/milestones/" + str(number) ) - return github.Milestone.Milestone(self._requester, data, completed=True) + return github.Milestone.Milestone(self._requester, headers, data, completed=True) def get_milestones(self, state=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet): """ @@ -1360,11 +1626,9 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(number, (int, long)), number headers, data = self._requester.requestJsonAndCheck( "GET", - self.url + "/pulls/" + str(number), - None, - None + self.url + "/pulls/" + str(number) ) - return github.PullRequest.PullRequest(self._requester, data, completed=True) + return github.PullRequest.PullRequest(self._requester, headers, data, completed=True) def get_pulls(self, state=github.GithubObject.NotSet): """ @@ -1431,10 +1695,9 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "GET", self.url + "/readme", - url_parameters, - None + parameters=url_parameters ) - return github.ContentFile.ContentFile(self._requester, data, completed=True) + return github.ContentFile.ContentFile(self._requester, headers, data, completed=True) def get_stargazers(self): """ @@ -1505,9 +1768,7 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(assignee, github.NamedUser.NamedUser), assignee status, headers, data = self._requester.requestJson( "GET", - self.url + "/assignees/" + assignee._identity, - None, - None + self.url + "/assignees/" + assignee._identity ) return status == 204 @@ -1520,9 +1781,7 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(collaborator, github.NamedUser.NamedUser), collaborator status, headers, data = self._requester.requestJson( "GET", - self.url + "/collaborators/" + collaborator._identity, - None, - None + self.url + "/collaborators/" + collaborator._identity ) return status == 204 @@ -1537,12 +1796,10 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(keyword, (str, unicode)), keyword headers, data = self._requester.requestJsonAndCheck( "GET", - "/legacy/issues/search/" + self.owner.login + "/" + self.name + "/" + state + "/" + urllib.quote(keyword), - None, - None + "/legacy/issues/search/" + self.owner.login + "/" + self.name + "/" + state + "/" + urllib.quote(keyword) ) return [ - github.Issue.Issue(self._requester, github.Legacy.convertIssue(element), completed=False) + github.Issue.Issue(self._requester, headers, github.Legacy.convertIssue(element), completed=False) for element in data["issues"] ] @@ -1566,13 +1823,12 @@ class Repository(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "POST", self.url + "/merges", - None, - post_parameters + input=post_parameters ) if data is None: return None else: - return github.Commit.Commit(self._requester, data, completed=True) + return github.Commit.Commit(self._requester, headers, data, completed=True) def remove_from_collaborators(self, collaborator): """ @@ -1583,9 +1839,7 @@ class Repository(github.GithubObject.CompletableGithubObject): assert isinstance(collaborator, github.NamedUser.NamedUser), collaborator headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url + "/collaborators/" + collaborator._identity, - None, - None + self.url + "/collaborators/" + collaborator._identity ) def subscribe_to_hub(self, event, callback, secret=github.GithubObject.NotSet): @@ -1625,8 +1879,7 @@ class Repository(github.GithubObject.CompletableGithubObject): responseHeaders, output = self._requester.requestMultipartAndCheck( "POST", "/hub", - None, - post_parameters, + input=post_parameters ) @property @@ -1634,56 +1887,150 @@ class Repository(github.GithubObject.CompletableGithubObject): return self.owner.login + "/" + self.name def _initAttributes(self): + self._archive_url = github.GithubObject.NotSet + self._assignees_url = github.GithubObject.NotSet + self._blobs_url = github.GithubObject.NotSet + self._branches_url = github.GithubObject.NotSet self._clone_url = github.GithubObject.NotSet + self._collaborators_url = github.GithubObject.NotSet + self._comments_url = github.GithubObject.NotSet + self._commits_url = github.GithubObject.NotSet + self._compare_url = github.GithubObject.NotSet + self._contents_url = github.GithubObject.NotSet + self._contributors_url = github.GithubObject.NotSet self._created_at = github.GithubObject.NotSet + self._default_branch = github.GithubObject.NotSet self._description = github.GithubObject.NotSet + self._downloads_url = github.GithubObject.NotSet + self._events_url = github.GithubObject.NotSet self._fork = github.GithubObject.NotSet self._forks = github.GithubObject.NotSet + self._forks_count = github.GithubObject.NotSet + self._forks_url = github.GithubObject.NotSet self._full_name = github.GithubObject.NotSet + self._git_commits_url = github.GithubObject.NotSet + self._git_refs_url = github.GithubObject.NotSet + self._git_tags_url = github.GithubObject.NotSet self._git_url = github.GithubObject.NotSet self._has_downloads = github.GithubObject.NotSet self._has_issues = github.GithubObject.NotSet self._has_wiki = github.GithubObject.NotSet self._homepage = github.GithubObject.NotSet + self._hooks_url = github.GithubObject.NotSet self._html_url = github.GithubObject.NotSet self._id = github.GithubObject.NotSet + self._issue_comment_url = github.GithubObject.NotSet + self._issue_events_url = github.GithubObject.NotSet + self._issues_url = github.GithubObject.NotSet + self._keys_url = github.GithubObject.NotSet + self._labels_url = github.GithubObject.NotSet self._language = github.GithubObject.NotSet + self._languages_url = github.GithubObject.NotSet self._master_branch = github.GithubObject.NotSet + self._merges_url = github.GithubObject.NotSet + self._milestones_url = github.GithubObject.NotSet + self._mirror_url = github.GithubObject.NotSet self._name = github.GithubObject.NotSet + self._network_count = github.GithubObject.NotSet + self._notifications_url = github.GithubObject.NotSet self._open_issues = github.GithubObject.NotSet + self._open_issues_count = github.GithubObject.NotSet self._organization = github.GithubObject.NotSet self._owner = github.GithubObject.NotSet self._parent = github.GithubObject.NotSet self._permissions = github.GithubObject.NotSet self._private = github.GithubObject.NotSet + self._pulls_url = github.GithubObject.NotSet self._pushed_at = github.GithubObject.NotSet self._size = github.GithubObject.NotSet self._source = github.GithubObject.NotSet self._ssh_url = github.GithubObject.NotSet + self._stargazers_url = github.GithubObject.NotSet + self._statuses_url = github.GithubObject.NotSet + self._subscribers_url = github.GithubObject.NotSet + self._subscription_url = github.GithubObject.NotSet self._svn_url = github.GithubObject.NotSet + self._tags_url = github.GithubObject.NotSet + self._teams_url = github.GithubObject.NotSet + self._trees_url = github.GithubObject.NotSet self._updated_at = github.GithubObject.NotSet self._url = github.GithubObject.NotSet self._watchers = github.GithubObject.NotSet + self._watchers_count = github.GithubObject.NotSet def _useAttributes(self, attributes): + if "archive_url" in attributes: # pragma no branch + assert attributes["archive_url"] is None or isinstance(attributes["archive_url"], (str, unicode)), attributes["archive_url"] + self._archive_url = attributes["archive_url"] + if "assignees_url" in attributes: # pragma no branch + assert attributes["assignees_url"] is None or isinstance(attributes["assignees_url"], (str, unicode)), attributes["assignees_url"] + self._assignees_url = attributes["assignees_url"] + if "blobs_url" in attributes: # pragma no branch + assert attributes["blobs_url"] is None or isinstance(attributes["blobs_url"], (str, unicode)), attributes["blobs_url"] + self._blobs_url = attributes["blobs_url"] + if "branches_url" in attributes: # pragma no branch + assert attributes["branches_url"] is None or isinstance(attributes["branches_url"], (str, unicode)), attributes["branches_url"] + self._branches_url = attributes["branches_url"] if "clone_url" in attributes: # pragma no branch assert attributes["clone_url"] is None or isinstance(attributes["clone_url"], (str, unicode)), attributes["clone_url"] self._clone_url = attributes["clone_url"] + if "collaborators_url" in attributes: # pragma no branch + assert attributes["collaborators_url"] is None or isinstance(attributes["collaborators_url"], (str, unicode)), attributes["collaborators_url"] + self._collaborators_url = attributes["collaborators_url"] + if "comments_url" in attributes: # pragma no branch + assert attributes["comments_url"] is None or isinstance(attributes["comments_url"], (str, unicode)), attributes["comments_url"] + self._comments_url = attributes["comments_url"] + if "commits_url" in attributes: # pragma no branch + assert attributes["commits_url"] is None or isinstance(attributes["commits_url"], (str, unicode)), attributes["commits_url"] + self._commits_url = attributes["commits_url"] + if "compare_url" in attributes: # pragma no branch + assert attributes["compare_url"] is None or isinstance(attributes["compare_url"], (str, unicode)), attributes["compare_url"] + self._compare_url = attributes["compare_url"] + if "contents_url" in attributes: # pragma no branch + assert attributes["contents_url"] is None or isinstance(attributes["contents_url"], (str, unicode)), attributes["contents_url"] + self._contents_url = attributes["contents_url"] + if "contributors_url" in attributes: # pragma no branch + assert attributes["contributors_url"] is None or isinstance(attributes["contributors_url"], (str, unicode)), attributes["contributors_url"] + self._contributors_url = attributes["contributors_url"] if "created_at" in attributes: # pragma no branch assert attributes["created_at"] is None or isinstance(attributes["created_at"], (str, unicode)), attributes["created_at"] self._created_at = self._parseDatetime(attributes["created_at"]) + if "default_branch" in attributes: # pragma no branch + assert attributes["default_branch"] is None or isinstance(attributes["default_branch"], (str, unicode)), attributes["default_branch"] + self._default_branch = attributes["default_branch"] if "description" in attributes: # pragma no branch assert attributes["description"] is None or isinstance(attributes["description"], (str, unicode)), attributes["description"] self._description = attributes["description"] + if "downloads_url" in attributes: # pragma no branch + assert attributes["downloads_url"] is None or isinstance(attributes["downloads_url"], (str, unicode)), attributes["downloads_url"] + self._downloads_url = attributes["downloads_url"] + if "events_url" in attributes: # pragma no branch + assert attributes["events_url"] is None or isinstance(attributes["events_url"], (str, unicode)), attributes["events_url"] + self._events_url = attributes["events_url"] if "fork" in attributes: # pragma no branch assert attributes["fork"] is None or isinstance(attributes["fork"], bool), attributes["fork"] self._fork = attributes["fork"] if "forks" in attributes: # pragma no branch assert attributes["forks"] is None or isinstance(attributes["forks"], (int, long)), attributes["forks"] self._forks = attributes["forks"] + if "forks_count" in attributes: # pragma no branch + assert attributes["forks_count"] is None or isinstance(attributes["forks_count"], (int, long)), attributes["forks_count"] + self._forks_count = attributes["forks_count"] + if "forks_url" in attributes: # pragma no branch + assert attributes["forks_url"] is None or isinstance(attributes["forks_url"], (str, unicode)), attributes["forks_url"] + self._forks_url = attributes["forks_url"] if "full_name" in attributes: # pragma no branch assert attributes["full_name"] is None or isinstance(attributes["full_name"], (str, unicode)), attributes["full_name"] self._full_name = attributes["full_name"] + if "git_commits_url" in attributes: # pragma no branch + assert attributes["git_commits_url"] is None or isinstance(attributes["git_commits_url"], (str, unicode)), attributes["git_commits_url"] + self._git_commits_url = attributes["git_commits_url"] + if "git_refs_url" in attributes: # pragma no branch + assert attributes["git_refs_url"] is None or isinstance(attributes["git_refs_url"], (str, unicode)), attributes["git_refs_url"] + self._git_refs_url = attributes["git_refs_url"] + if "git_tags_url" in attributes: # pragma no branch + assert attributes["git_tags_url"] is None or isinstance(attributes["git_tags_url"], (str, unicode)), attributes["git_tags_url"] + self._git_tags_url = attributes["git_tags_url"] if "git_url" in attributes: # pragma no branch assert attributes["git_url"] is None or isinstance(attributes["git_url"], (str, unicode)), attributes["git_url"] self._git_url = attributes["git_url"] @@ -1699,39 +2046,81 @@ class Repository(github.GithubObject.CompletableGithubObject): if "homepage" in attributes: # pragma no branch assert attributes["homepage"] is None or isinstance(attributes["homepage"], (str, unicode)), attributes["homepage"] self._homepage = attributes["homepage"] + if "hooks_url" in attributes: # pragma no branch + assert attributes["hooks_url"] is None or isinstance(attributes["hooks_url"], (str, unicode)), attributes["hooks_url"] + self._hooks_url = attributes["hooks_url"] if "html_url" in attributes: # pragma no branch assert attributes["html_url"] is None or isinstance(attributes["html_url"], (str, unicode)), attributes["html_url"] self._html_url = attributes["html_url"] if "id" in attributes: # pragma no branch assert attributes["id"] is None or isinstance(attributes["id"], (int, long)), attributes["id"] self._id = attributes["id"] + if "issue_comment_url" in attributes: # pragma no branch + assert attributes["issue_comment_url"] is None or isinstance(attributes["issue_comment_url"], (str, unicode)), attributes["issue_comment_url"] + self._issue_comment_url = attributes["issue_comment_url"] + if "issue_events_url" in attributes: # pragma no branch + assert attributes["issue_events_url"] is None or isinstance(attributes["issue_events_url"], (str, unicode)), attributes["issue_events_url"] + self._issue_events_url = attributes["issue_events_url"] + if "issues_url" in attributes: # pragma no branch + assert attributes["issues_url"] is None or isinstance(attributes["issues_url"], (str, unicode)), attributes["issues_url"] + self._issues_url = attributes["issues_url"] + if "keys_url" in attributes: # pragma no branch + assert attributes["keys_url"] is None or isinstance(attributes["keys_url"], (str, unicode)), attributes["keys_url"] + self._keys_url = attributes["keys_url"] + if "labels_url" in attributes: # pragma no branch + assert attributes["labels_url"] is None or isinstance(attributes["labels_url"], (str, unicode)), attributes["labels_url"] + self._labels_url = attributes["labels_url"] if "language" in attributes: # pragma no branch assert attributes["language"] is None or isinstance(attributes["language"], (str, unicode)), attributes["language"] self._language = attributes["language"] + if "languages_url" in attributes: # pragma no branch + assert attributes["languages_url"] is None or isinstance(attributes["languages_url"], (str, unicode)), attributes["languages_url"] + self._languages_url = attributes["languages_url"] if "master_branch" in attributes: # pragma no branch assert attributes["master_branch"] is None or isinstance(attributes["master_branch"], (str, unicode)), attributes["master_branch"] self._master_branch = attributes["master_branch"] + if "merges_url" in attributes: # pragma no branch + assert attributes["merges_url"] is None or isinstance(attributes["merges_url"], (str, unicode)), attributes["merges_url"] + self._merges_url = attributes["merges_url"] + if "milestones_url" in attributes: # pragma no branch + assert attributes["milestones_url"] is None or isinstance(attributes["milestones_url"], (str, unicode)), attributes["milestones_url"] + self._milestones_url = attributes["milestones_url"] + if "mirror_url" in attributes: # pragma no branch + assert attributes["mirror_url"] is None or isinstance(attributes["mirror_url"], (str, unicode)), attributes["mirror_url"] + self._mirror_url = attributes["mirror_url"] if "name" in attributes: # pragma no branch assert attributes["name"] is None or isinstance(attributes["name"], (str, unicode)), attributes["name"] self._name = attributes["name"] + if "network_count" in attributes: # pragma no branch + assert attributes["network_count"] is None or isinstance(attributes["network_count"], (int, long)), attributes["network_count"] + self._network_count = attributes["network_count"] + if "notifications_url" in attributes: # pragma no branch + assert attributes["notifications_url"] is None or isinstance(attributes["notifications_url"], (str, unicode)), attributes["notifications_url"] + self._notifications_url = attributes["notifications_url"] if "open_issues" in attributes: # pragma no branch assert attributes["open_issues"] is None or isinstance(attributes["open_issues"], (int, long)), attributes["open_issues"] self._open_issues = attributes["open_issues"] + if "open_issues_count" in attributes: # pragma no branch + assert attributes["open_issues_count"] is None or isinstance(attributes["open_issues_count"], (int, long)), attributes["open_issues_count"] + self._open_issues_count = attributes["open_issues_count"] if "organization" in attributes: # pragma no branch assert attributes["organization"] is None or isinstance(attributes["organization"], dict), attributes["organization"] - self._organization = None if attributes["organization"] is None else github.Organization.Organization(self._requester, attributes["organization"], completed=False) + self._organization = None if attributes["organization"] is None else github.Organization.Organization(self._requester, self._headers, attributes["organization"], completed=False) if "owner" in attributes: # pragma no branch assert attributes["owner"] is None or isinstance(attributes["owner"], dict), attributes["owner"] - self._owner = None if attributes["owner"] is None else github.NamedUser.NamedUser(self._requester, attributes["owner"], completed=False) + self._owner = None if attributes["owner"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes["owner"], completed=False) if "parent" in attributes: # pragma no branch assert attributes["parent"] is None or isinstance(attributes["parent"], dict), attributes["parent"] - self._parent = None if attributes["parent"] is None else Repository(self._requester, attributes["parent"], completed=False) + self._parent = None if attributes["parent"] is None else Repository(self._requester, self._headers, attributes["parent"], completed=False) if "permissions" in attributes: # pragma no branch assert attributes["permissions"] is None or isinstance(attributes["permissions"], dict), attributes["permissions"] - self._permissions = None if attributes["permissions"] is None else github.Permissions.Permissions(self._requester, attributes["permissions"], completed=False) + self._permissions = None if attributes["permissions"] is None else github.Permissions.Permissions(self._requester, self._headers, attributes["permissions"], completed=False) if "private" in attributes: # pragma no branch assert attributes["private"] is None or isinstance(attributes["private"], bool), attributes["private"] self._private = attributes["private"] + if "pulls_url" in attributes: # pragma no branch + assert attributes["pulls_url"] is None or isinstance(attributes["pulls_url"], (str, unicode)), attributes["pulls_url"] + self._pulls_url = attributes["pulls_url"] if "pushed_at" in attributes: # pragma no branch assert attributes["pushed_at"] is None or isinstance(attributes["pushed_at"], (str, unicode)), attributes["pushed_at"] self._pushed_at = self._parseDatetime(attributes["pushed_at"]) @@ -1740,13 +2129,34 @@ class Repository(github.GithubObject.CompletableGithubObject): self._size = attributes["size"] if "source" in attributes: # pragma no branch assert attributes["source"] is None or isinstance(attributes["source"], dict), attributes["source"] - self._source = None if attributes["source"] is None else Repository(self._requester, attributes["source"], completed=False) + self._source = None if attributes["source"] is None else Repository(self._requester, self._headers, attributes["source"], completed=False) if "ssh_url" in attributes: # pragma no branch assert attributes["ssh_url"] is None or isinstance(attributes["ssh_url"], (str, unicode)), attributes["ssh_url"] self._ssh_url = attributes["ssh_url"] + if "stargazers_url" in attributes: # pragma no branch + assert attributes["stargazers_url"] is None or isinstance(attributes["stargazers_url"], (str, unicode)), attributes["stargazers_url"] + self._stargazers_url = attributes["stargazers_url"] + if "statuses_url" in attributes: # pragma no branch + assert attributes["statuses_url"] is None or isinstance(attributes["statuses_url"], (str, unicode)), attributes["statuses_url"] + self._statuses_url = attributes["statuses_url"] + if "subscribers_url" in attributes: # pragma no branch + assert attributes["subscribers_url"] is None or isinstance(attributes["subscribers_url"], (str, unicode)), attributes["subscribers_url"] + self._subscribers_url = attributes["subscribers_url"] + if "subscription_url" in attributes: # pragma no branch + assert attributes["subscription_url"] is None or isinstance(attributes["subscription_url"], (str, unicode)), attributes["subscription_url"] + self._subscription_url = attributes["subscription_url"] if "svn_url" in attributes: # pragma no branch assert attributes["svn_url"] is None or isinstance(attributes["svn_url"], (str, unicode)), attributes["svn_url"] self._svn_url = attributes["svn_url"] + if "tags_url" in attributes: # pragma no branch + assert attributes["tags_url"] is None or isinstance(attributes["tags_url"], (str, unicode)), attributes["tags_url"] + self._tags_url = attributes["tags_url"] + if "teams_url" in attributes: # pragma no branch + assert attributes["teams_url"] is None or isinstance(attributes["teams_url"], (str, unicode)), attributes["teams_url"] + self._teams_url = attributes["teams_url"] + if "trees_url" in attributes: # pragma no branch + assert attributes["trees_url"] is None or isinstance(attributes["trees_url"], (str, unicode)), attributes["trees_url"] + self._trees_url = attributes["trees_url"] if "updated_at" in attributes: # pragma no branch assert attributes["updated_at"] is None or isinstance(attributes["updated_at"], (str, unicode)), attributes["updated_at"] self._updated_at = self._parseDatetime(attributes["updated_at"]) @@ -1756,3 +2166,6 @@ class Repository(github.GithubObject.CompletableGithubObject): if "watchers" in attributes: # pragma no branch assert attributes["watchers"] is None or isinstance(attributes["watchers"], (int, long)), attributes["watchers"] self._watchers = attributes["watchers"] + if "watchers_count" in attributes: # pragma no branch + assert attributes["watchers_count"] is None or isinstance(attributes["watchers_count"], (int, long)), attributes["watchers_count"] + self._watchers_count = attributes["watchers_count"] diff --git a/github/RepositoryKey.py b/github/RepositoryKey.py index 750541b2..69e1c616 100644 --- a/github/RepositoryKey.py +++ b/github/RepositoryKey.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Srijan Choudhary # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # @@ -33,8 +34,8 @@ class RepositoryKey(github.GithubObject.CompletableGithubObject): This class represents RepositoryKeys. The reference can be found here http://developer.github.com/v3/repos/keys/ """ - def __init__(self, requester, attributes, completed, repoUrl): - github.GithubObject.CompletableGithubObject.__init__(self, requester, attributes, completed) + def __init__(self, requester, headers, attributes, completed, repoUrl): + github.GithubObject.CompletableGithubObject.__init__(self, requester, headers, attributes, completed) self.__repoUrl = repoUrl @property @@ -88,9 +89,7 @@ class RepositoryKey(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.__customUrl, - None, - None + self.__customUrl ) def edit(self, title=github.GithubObject.NotSet, key=github.GithubObject.NotSet): @@ -110,8 +109,7 @@ class RepositoryKey(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.__customUrl, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) diff --git a/github/Requester.py b/github/Requester.py index 5677501f..9901d3dd 100644 --- a/github/Requester.py +++ b/github/Requester.py @@ -9,6 +9,7 @@ # Copyright 2012 Steve English # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Ed Jackson # # Copyright 2013 Jonathan J Hunt # # Copyright 2013 Mark Roddy # @@ -37,6 +38,7 @@ import base64 import urllib import urlparse import sys +import Consts atLeastPython26 = sys.hexversion >= 0x02060000 atLeastPython3 = sys.hexversion >= 0x03000000 @@ -63,7 +65,66 @@ class Requester: cls.__httpConnectionClass = httplib.HTTPConnection cls.__httpsConnectionClass = httplib.HTTPSConnection + ############################################################# + # For Debug + @classmethod + def setDebugFlag(cls, flag): + cls.DEBUG_FLAG = flag + + @classmethod + def setOnCheckMe(cls, onCheckMe): + cls.ON_CHECK_ME = onCheckMe + + DEBUG_FLAG = False + + DEBUG_FRAME_BUFFER_SIZE = 1024 + + DEBUG_HEADER_KEY = "DEBUG_FRAME" + + ON_CHECK_ME = None + + def NEW_DEBUG_FRAME(self, requestHeader): + ''' + Initialize a debug frame with requestHeader + Frame count is updated and will be attached to respond header + The structure of a frame: [requestHeader, statusCode, responseHeader, raw_data] + Some of them may be None + ''' + if self.DEBUG_FLAG: # pragma no branch (Flag always set in tests) + new_frame = [requestHeader, None, None, None] + if self._frameCount < self.DEBUG_FRAME_BUFFER_SIZE - 1: # pragma no branch (Should be covered) + self._frameBuffer.append(new_frame) + else: + self._frameBuffer[0] = new_frame # pragma no cover (Should be covered) + + self._frameCount = len(self._frameBuffer) - 1 + + def DEBUG_ON_RESPONSE(self, statusCode, responseHeader, data): + ''' + Update current frame with response + Current frame index will be attached to responseHeader + ''' + if self.DEBUG_FLAG: # pragma no branch (Flag always set in tests) + self._frameBuffer[self._frameCount][1:4] = [statusCode, responseHeader, data] + responseHeader[self.DEBUG_HEADER_KEY] = self._frameCount + + def check_me(self, obj): + if self.DEBUG_FLAG and self.ON_CHECK_ME is not None: # pragma no branch (Flag always set in tests) + frame = None + if self.DEBUG_HEADER_KEY in obj._headers: + frame_index = obj._headers[self.DEBUG_HEADER_KEY] + frame = self._frameBuffer[frame_index] + self.ON_CHECK_ME(obj, frame) + + def _initializeDebugFeature(self): + self._frameCount = 0 + self._frameBuffer = [] + + ############################################################# + def __init__(self, login_or_token, password, base_url, timeout, client_id, client_secret, user_agent, per_page): + self._initializeDebugFeature() + if password is not None: login = login_or_token if atLeastPython3: @@ -103,11 +164,11 @@ class Requester: 'See http://developer.github.com/v3/#user-agent-required' self.__userAgent = user_agent - def requestJsonAndCheck(self, verb, url, parameters, input): - return self.__check(*self.requestJson(verb, url, parameters, input)) + def requestJsonAndCheck(self, verb, url, parameters=None, headers=None, input=None, cnx=None): + return self.__check(*self.requestJson(verb, url, parameters, headers, input, cnx)) - def requestMultipartAndCheck(self, verb, url, parameters, input): - return self.__check(*self.requestMultipart(verb, url, parameters, input)) + def requestMultipartAndCheck(self, verb, url, parameters=None, headers=None, input=None): + return self.__check(*self.requestMultipart(verb, url, parameters, headers, input)) def __check(self, status, responseHeaders, output): output = self.__structuredFromJson(output) @@ -116,13 +177,13 @@ class Requester: return responseHeaders, output def __createException(self, status, output): - if status == 401 and output["message"] == "Bad credentials": + if status == 401 and output.get("message") == "Bad credentials": cls = GithubException.BadCredentialsException - elif status == 403 and output["message"].startswith("Missing or invalid User Agent string"): + elif status == 403 and output.get("message").startswith("Missing or invalid User Agent string"): cls = GithubException.BadUserAgentException - elif status == 403 and output["message"].startswith("API Rate Limit Exceeded"): + elif status == 403 and output.get("message").startswith("API Rate Limit Exceeded"): cls = GithubException.RateLimitExceededException - elif status == 404 and output["message"] == "Not Found": + elif status == 404 and output.get("message") == "Not Found": cls = GithubException.UnknownObjectException else: cls = GithubException.GithubException @@ -139,13 +200,13 @@ class Requester: except ValueError, e: return {'data': data} - def requestJson(self, verb, url, parameters, input): + def requestJson(self, verb, url, parameters=None, headers=None, input=None, cnx=None): def encode(input): return "application/json", json.dumps(input) - return self.__requestEncode(verb, url, parameters, input, encode) + return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode) - def requestMultipart(self, verb, url, parameters, input): + def requestMultipart(self, verb, url, parameters=None, headers=None, input=None): def encode(input): boundary = "----------------------------3c3ba8b523b2" eol = "\r\n" @@ -159,14 +220,15 @@ class Requester: encoded_input += "--" + boundary + "--" + eol return "multipart/form-data; boundary=" + boundary, encoded_input - return self.__requestEncode(verb, url, parameters, input, encode) + return self.__requestEncode(None, verb, url, parameters, headers, input, encode) - def __requestEncode(self, verb, url, parameters, input, encode): + def __requestEncode(self, cnx, verb, url, parameters, requestHeaders, input, encode): assert verb in ["HEAD", "GET", "POST", "PATCH", "PUT", "DELETE"] if parameters is None: parameters = dict() + if requestHeaders is None: + requestHeaders = dict() - requestHeaders = dict() self.__authenticate(url, requestHeaders, parameters) requestHeaders["User-Agent"] = self.__userAgent @@ -177,7 +239,9 @@ class Requester: if input is not None: requestHeaders["Content-Type"], encoded_input = encode(input) - status, responseHeaders, output = self.__requestRaw(verb, url, requestHeaders, encoded_input) + self.NEW_DEBUG_FRAME(requestHeaders) + + status, responseHeaders, output = self.__requestRaw(cnx, verb, url, requestHeaders, encoded_input) if "x-ratelimit-remaining" in responseHeaders and "x-ratelimit-limit" in responseHeaders: self.rate_limiting = (int(responseHeaders["x-ratelimit-remaining"]), int(responseHeaders["x-ratelimit-limit"])) @@ -187,10 +251,16 @@ class Requester: if "x-oauth-scopes" in responseHeaders: self.oauth_scopes = responseHeaders["x-oauth-scopes"].split(", ") + self.DEBUG_ON_RESPONSE(status, responseHeaders, output) + return status, responseHeaders, output - def __requestRaw(self, verb, url, requestHeaders, input): - cnx = self.__createConnection() + def __requestRaw(self, cnx, verb, url, requestHeaders, input): + if cnx is None: + cnx = self.__createConnection() + else: + assert cnx == "status" + cnx = self.__httpsConnectionClass("status.github.com", 443) cnx.request( verb, url, @@ -244,7 +314,7 @@ class Requester: kwds["strict"] = True # Useless in Python3, would generate a deprecation warning if atLeastPython26: # pragma no branch (Branch useful only with Python 2.5) kwds["timeout"] = self.__timeout # Did not exist before Python2.6 - return self.__connectionClass(host=self.__hostname, port=self.__port, **kwds) + return self.__connectionClass(self.__hostname, self.__port, **kwds) def __log(self, verb, url, requestHeaders, input, status, responseHeaders, output): logger = logging.getLogger(__name__) @@ -254,4 +324,6 @@ class Requester: requestHeaders["Authorization"] = "Basic (login and password removed)" elif requestHeaders["Authorization"].startswith("token"): requestHeaders["Authorization"] = "token (oauth token removed)" + else: # pragma no cover (Cannot happen, but could if we add an authentication method => be prepared) + requestHeaders["Authorization"] = "(unknown auth removed)" # pragma no cover (Cannot happen, but could if we add an authentication method => be prepared) logger.debug("%s %s://%s%s %s %s ==> %i %s %s", str(verb), self.__scheme, self.__hostname, str(url), str(requestHeaders), str(input), status, str(responseHeaders), str(output)) diff --git a/github/Status.py b/github/Status.py new file mode 100644 index 00000000..6c117241 --- /dev/null +++ b/github/Status.py @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import github.GithubObject + + +class Status(github.GithubObject.NonCompletableGithubObject): + """ + This class represents status as defined in https://status.github.com/api + """ + + @property + def status(self): + """ + :type: string + """ + return self._NoneIfNotSet(self._status) + + @property + def last_updated(self): + """ + :type: datetime.datetime + """ + return self._NoneIfNotSet(self._last_updated) + + def _initAttributes(self): + self._status = github.GithubObject.NotSet + self._last_updated = github.GithubObject.NotSet + + def _useAttributes(self, attributes): + if "status" in attributes: # pragma no branch + assert attributes["status"] is None or isinstance(attributes["status"], (str, unicode)), attributes["status"] + self._status = attributes["status"] + if "last_updated" in attributes: # pragma no branch + assert attributes["last_updated"] is None or isinstance(attributes["last_updated"], (str, unicode)), attributes["last_updated"] + self._last_updated = self._parseDatetime(attributes["last_updated"]) diff --git a/github/StatusMessage.py b/github/StatusMessage.py new file mode 100644 index 00000000..266e1b05 --- /dev/null +++ b/github/StatusMessage.py @@ -0,0 +1,66 @@ +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import github.GithubObject + + +class StatusMessage(github.GithubObject.NonCompletableGithubObject): + """ + This class represents status messages as defined in https://status.github.com/api + """ + + @property + def body(self): + """ + :type: string + """ + return self._NoneIfNotSet(self._body) + + @property + def status(self): + """ + :type: string + """ + return self._NoneIfNotSet(self._status) + + @property + def created_on(self): + """ + :type: datetime.datetime + """ + return self._NoneIfNotSet(self._created_on) + + def _initAttributes(self): + self._status = github.GithubObject.NotSet + self._created_on = github.GithubObject.NotSet + + def _useAttributes(self, attributes): + if "body" in attributes: # pragma no branch + assert attributes["body"] is None or isinstance(attributes["body"], (str, unicode)), attributes["body"] + self._body = attributes["body"] + if "status" in attributes: # pragma no branch + assert attributes["status"] is None or isinstance(attributes["status"], (str, unicode)), attributes["status"] + self._status = attributes["status"] + if "created_on" in attributes: # pragma no branch + assert attributes["created_on"] is None or isinstance(attributes["created_on"], (str, unicode)), attributes["created_on"] + self._created_on = self._parseDatetime(attributes["created_on"]) diff --git a/github/Tag.py b/github/Tag.py index 5a42f637..890c1a02 100644 --- a/github/Tag.py +++ b/github/Tag.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -71,7 +72,7 @@ class Tag(github.GithubObject.NonCompletableGithubObject): def _useAttributes(self, attributes): if "commit" in attributes: # pragma no branch assert attributes["commit"] is None or isinstance(attributes["commit"], dict), attributes["commit"] - self._commit = None if attributes["commit"] is None else github.Commit.Commit(self._requester, attributes["commit"], completed=False) + self._commit = None if attributes["commit"] is None else github.Commit.Commit(self._requester, self._headers, attributes["commit"], completed=False) if "name" in attributes: # pragma no branch assert attributes["name"] is None or isinstance(attributes["name"], (str, unicode)), attributes["name"] self._name = attributes["name"] diff --git a/github/Team.py b/github/Team.py index b6d681d6..c3c2abbf 100644 --- a/github/Team.py +++ b/github/Team.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -52,6 +53,14 @@ class Team(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._members_count) return self._NoneIfNotSet(self._members_count) + @property + def members_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._members_url) + return self._NoneIfNotSet(self._members_url) + @property def name(self): """ @@ -76,6 +85,22 @@ class Team(github.GithubObject.CompletableGithubObject): self._completeIfNotSet(self._repos_count) return self._NoneIfNotSet(self._repos_count) + @property + def repositories_url(self): + """ + :type: string + """ + self._completeIfNotSet(self._repositories_url) + return self._NoneIfNotSet(self._repositories_url) + + @property + def slug(self): + """ + :type: string + """ + self._completeIfNotSet(self._slug) + return self._NoneIfNotSet(self._slug) + @property def url(self): """ @@ -93,9 +118,7 @@ class Team(github.GithubObject.CompletableGithubObject): assert isinstance(member, github.NamedUser.NamedUser), member headers, data = self._requester.requestJsonAndCheck( "PUT", - self.url + "/members/" + member._identity, - None, - None + self.url + "/members/" + member._identity ) def add_to_repos(self, repo): @@ -107,9 +130,7 @@ class Team(github.GithubObject.CompletableGithubObject): assert isinstance(repo, github.Repository.Repository), repo headers, data = self._requester.requestJsonAndCheck( "PUT", - self.url + "/repos/" + repo._identity, - None, - None + self.url + "/repos/" + repo._identity ) def delete(self): @@ -119,9 +140,7 @@ class Team(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, name, permission=github.GithubObject.NotSet): @@ -141,8 +160,7 @@ class Team(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) @@ -179,9 +197,7 @@ class Team(github.GithubObject.CompletableGithubObject): assert isinstance(member, github.NamedUser.NamedUser), member status, headers, data = self._requester.requestJson( "GET", - self.url + "/members/" + member._identity, - None, - None + self.url + "/members/" + member._identity ) return status == 204 @@ -194,9 +210,7 @@ class Team(github.GithubObject.CompletableGithubObject): assert isinstance(repo, github.Repository.Repository), repo status, headers, data = self._requester.requestJson( "GET", - self.url + "/repos/" + repo._identity, - None, - None + self.url + "/repos/" + repo._identity ) return status == 204 @@ -209,9 +223,7 @@ class Team(github.GithubObject.CompletableGithubObject): assert isinstance(member, github.NamedUser.NamedUser), member headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url + "/members/" + member._identity, - None, - None + self.url + "/members/" + member._identity ) def remove_from_repos(self, repo): @@ -223,9 +235,7 @@ class Team(github.GithubObject.CompletableGithubObject): assert isinstance(repo, github.Repository.Repository), repo headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url + "/repos/" + repo._identity, - None, - None + self.url + "/repos/" + repo._identity ) @property @@ -235,9 +245,12 @@ class Team(github.GithubObject.CompletableGithubObject): def _initAttributes(self): self._id = github.GithubObject.NotSet self._members_count = github.GithubObject.NotSet + self._members_url = github.GithubObject.NotSet self._name = github.GithubObject.NotSet self._permission = github.GithubObject.NotSet self._repos_count = github.GithubObject.NotSet + self._repositories_url = github.GithubObject.NotSet + self._slug = github.GithubObject.NotSet self._url = github.GithubObject.NotSet def _useAttributes(self, attributes): @@ -247,6 +260,9 @@ class Team(github.GithubObject.CompletableGithubObject): if "members_count" in attributes: # pragma no branch assert attributes["members_count"] is None or isinstance(attributes["members_count"], (int, long)), attributes["members_count"] self._members_count = attributes["members_count"] + if "members_url" in attributes: # pragma no branch + assert attributes["members_url"] is None or isinstance(attributes["members_url"], (str, unicode)), attributes["members_url"] + self._members_url = attributes["members_url"] if "name" in attributes: # pragma no branch assert attributes["name"] is None or isinstance(attributes["name"], (str, unicode)), attributes["name"] self._name = attributes["name"] @@ -256,6 +272,12 @@ class Team(github.GithubObject.CompletableGithubObject): if "repos_count" in attributes: # pragma no branch assert attributes["repos_count"] is None or isinstance(attributes["repos_count"], (int, long)), attributes["repos_count"] self._repos_count = attributes["repos_count"] + if "repositories_url" in attributes: # pragma no branch + assert attributes["repositories_url"] is None or isinstance(attributes["repositories_url"], (str, unicode)), attributes["repositories_url"] + self._repositories_url = attributes["repositories_url"] + if "slug" in attributes: # pragma no branch + assert attributes["slug"] is None or isinstance(attributes["slug"], (str, unicode)), attributes["slug"] + self._slug = attributes["slug"] if "url" in attributes: # pragma no branch assert attributes["url"] is None or isinstance(attributes["url"], (str, unicode)), attributes["url"] self._url = attributes["url"] diff --git a/github/UserKey.py b/github/UserKey.py index 222cd1a5..9ca0133b 100644 --- a/github/UserKey.py +++ b/github/UserKey.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # Copyright 2013 martinqt # # # @@ -79,9 +80,7 @@ class UserKey(github.GithubObject.CompletableGithubObject): """ headers, data = self._requester.requestJsonAndCheck( "DELETE", - self.url, - None, - None + self.url ) def edit(self, title=github.GithubObject.NotSet, key=github.GithubObject.NotSet): @@ -101,8 +100,7 @@ class UserKey(github.GithubObject.CompletableGithubObject): headers, data = self._requester.requestJsonAndCheck( "PATCH", self.url, - None, - post_parameters + input=post_parameters ) self._useAttributes(data) diff --git a/github/tests/AllTests.py b/github/tests/AllTests.py index a9e156ff..f2f5c54b 100644 --- a/github/tests/AllTests.py +++ b/github/tests/AllTests.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -56,6 +57,7 @@ from PullRequestFile import * from RateLimiting import * from Repository import * from RepositoryKey import * +from Status import * from Tag import * from Team import * from UserKey import * @@ -65,6 +67,9 @@ from Exceptions import * from Enterprise import * from Logging_ import * from RawData import * +from ConditionalRequestUpdate import * +from Persistence import * +from ExposeAllAttributes import * from Issue33 import * from Issue50 import * @@ -76,6 +81,6 @@ from Issue133 import * from Issue134 import * from Issue139 import * from Issue140 import * -# from Issue142 import * # Deactivated for Travis-CI because Github has lowered the rate limitations +from Issue142 import * from Issue158 import * from Issue174 import * diff --git a/github/tests/ConditionalRequestUpdate.py b/github/tests/ConditionalRequestUpdate.py new file mode 100644 index 00000000..f1494c64 --- /dev/null +++ b/github/tests/ConditionalRequestUpdate.py @@ -0,0 +1,44 @@ +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 AKFish # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +# #193: Line endings should be linux style + +import Framework +import github + + +class ConditionalRequestUpdate(Framework.TestCase): + def setUp(self): + Framework.TestCase.setUp(self) + self.repo = self.g.get_repo("akfish/PyGithub") + + def testDidNotUpdate(self): + self.assertFalse(self.repo.update(), msg="The repo is not changes. But update() != False") + + def testDidUpdate(self): + self.assertTrue(self.repo.update(), msg="The repo should be changed by now. But update() != True") + + def testUpdateObjectWithoutEtag(self): + r = self.g.get_repo("jacquev6/PyGithub") + self.assertTrue(r.update()) diff --git a/github/tests/ExposeAllAttributes.py b/github/tests/ExposeAllAttributes.py new file mode 100644 index 00000000..42cbc0af --- /dev/null +++ b/github/tests/ExposeAllAttributes.py @@ -0,0 +1,160 @@ +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import Framework + + +class ExposeAllAttributes(Framework.TestCase): + def testAllClasses(self): + authenticatedUser = self.g.get_user() + namedUser = self.g.get_user("nvie") + repository = authenticatedUser.get_repo("PyGithub") + organization = self.g.get_organization("BeaverSoftware") + plan = authenticatedUser.plan + branch = repository.get_branch("master") + commit = repository.get_commit("1292bf0e22c796e91cc3d6e24b544aece8c21f2a") + commitStats = commit.stats + commitStatus = commit.get_statuses()[0] + milestone = repository.get_milestone(17) + gist = self.g.get_gist("149016") + gistComment = gist.get_comment(4565) + gistFile = gist.files[".gitignore"] + gistHistoryState = gist.history[0] + gitCommit = repository.get_git_commit("be37b8a7f3a68631c32672dcd84d9eba27438ee6") + gitAuthor = gitCommit.author + gitTree = repository.get_git_tree("6f7c2d8c66d78863f7b91792deaead619799a1ce") + gitTreeElement = gitTree.tree[0] + gitBlob = repository.get_git_blob("681fb61f1761743a02f5c790f1c762cbfe8cfad1") + gitRef = repository.get_git_ref("tags/v1.17.0") + gitObject = gitRef.object + issue = repository.get_issue(188) + issueComment = issue.get_comment(22686536) + issueEvent = issue.get_events()[0] + issuePullRequest = issue.pull_request + gitignoreTemplate = self.g.get_gitignore_template("Python") + team = organization.get_team(141487) + label = repository.get_label("Bug") + pullRequest = repository.get_pull(31) + pullRequestComment = pullRequest.get_review_comment(1580134) + pullRequestPart = pullRequest.base + file = pullRequest.get_files()[0] + commitComment = repository.get_comment(3630301) + status = self.g.get_api_status() + statusMessage = self.g.get_last_api_status_message() + rateLimit = self.g.get_rate_limit() + rate = rateLimit.rate + hook = repository.get_hooks()[0] + hookResponse = hook.last_response + hookDescription = self.g.get_hooks()[0] + comparison = repository.compare("master", "develop") + contentFile = repository.get_file_contents("README.rst") + permissions = repository.permissions + event = repository.get_events()[0] + notification = authenticatedUser.get_notification("8406712") + notificationSubject = notification.subject + + missingAttributes = self.gatherMissingAttributes([ + authenticatedUser, + # authorization, # Security issue if put as-is in ReplayData + # authorizationApplication, # Security issue if put as-is in ReplayData + branch, + commit, + commitComment, + commitStats, + commitStatus, + comparison, + contentFile, + # download, # Deprecated: https://github.com/blog/1302-goodbye-uploads + event, + file, + gist, + gistComment, + gistFile, + gistHistoryState, + gitAuthor, + gitBlob, + gitCommit, + gitignoreTemplate, + gitObject, + gitRef, + # gitTag, + gitTree, + gitTreeElement, + hook, + hookDescription, + hookResponse, + issue, + issueComment, + issueEvent, + issuePullRequest, + label, + milestone, + namedUser, + notification, + notificationSubject, + organization, + permissions, + plan, + pullRequest, + pullRequestComment, + # pullRequestMergeStatus, # Only obtained when merging a pull request through the API + pullRequestPart, + rate, + rateLimit, + repository, + # repositoryKey, # Security issue if put as-is in ReplayData + status, + statusMessage, + # tag, + team, + # userKey, # Security issue if put as-is in ReplayData + ]) + + for className, attributesMissingInClass in sorted(missingAttributes.iteritems()): + for attrName, value in sorted(attributesMissingInClass.iteritems()): + print className, attrName, "->", repr(value) + + self.assertEqual(sum(len(attrs) for attrs in missingAttributes.values()), 0) + + def findMissingAttributes(self, obj): + if hasattr(obj, "update"): + obj.update() + className = obj.__class__.__name__ + missingAttributes = {} + for attribute in obj.raw_data: + if attribute != "_links": + if not hasattr(obj, attribute): + missingAttributes[attribute] = obj.raw_data[attribute] + return (className, missingAttributes) + + def gatherMissingAttributes(self, objs): + allMissingAttributes = dict() + + for obj in objs: + className, attributesMissingInClass = self.findMissingAttributes(obj) + if len(attributesMissingInClass) > 0: + if className not in allMissingAttributes: + allMissingAttributes[className] = dict() + allMissingAttributes[className].update(attributesMissingInClass) + + return allMissingAttributes diff --git a/github/tests/Framework.py b/github/tests/Framework.py index 706bdbdd..24e814b4 100644 --- a/github/tests/Framework.py +++ b/github/tests/Framework.py @@ -4,6 +4,7 @@ # # # Copyright 2012 Vincent Jacques # # Copyright 2012 Zearin # +# Copyright 2013 AKFish # # Copyright 2013 Vincent Jacques # # # # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # @@ -244,8 +245,24 @@ class BasicTestCase(unittest.TestCase): class TestCase(BasicTestCase): + def doCheckFrame(self, obj, frame): + if obj._headers == {} and frame is None: + return + if obj._headers is None and frame == {}: + return + self.assertEqual(obj._headers, frame[2]) + + def getFrameChecker(self): + return lambda requester, obj, frame: self.doCheckFrame(obj, frame) + def setUp(self): BasicTestCase.setUp(self) + + # Set up frame debugging + github.GithubObject.GithubObject.setCheckAfterInitFlag(True) + github.Requester.Requester.setDebugFlag(True) + github.Requester.Requester.setOnCheckMe(self.getFrameChecker()) + self.g = github.Github(self.login, self.password) diff --git a/github/tests/Gist.py b/github/tests/Gist.py index 0b32678f..d74dbac3 100644 --- a/github/tests/Gist.py +++ b/github/tests/Gist.py @@ -108,12 +108,12 @@ class Gist(Framework.TestCase): self.assertFalse(self.gist.is_starred()) def testFork(self): - gist = self.g.get_gist("2729818") # Random gist + gist = self.g.get_gist("6296553") # Random gist myGist = gist.create_fork() - self.assertEqual(myGist.id, "2729865") + self.assertEqual(myGist.id, "6296732") self.assertEqual(myGist.fork_of, None) # WTF - sameGist = self.g.get_gist("2729865") - self.assertEqual(sameGist.fork_of.id, "2729818") + sameGist = self.g.get_gist("6296732") + self.assertEqual(sameGist.fork_of.id, "6296553") def testDelete(self): self.gist.delete() diff --git a/github/tests/Github_.py b/github/tests/Github_.py index 4b6cfbc5..dec6a805 100644 --- a/github/tests/Github_.py +++ b/github/tests/Github_.py @@ -128,3 +128,9 @@ class Github(Framework.TestCase): def testGetUsersSince(self): self.assertListKeyBegin(self.g.get_users(since=1000), lambda u: u.login, ["sbecker"]) + + def testGetRepos(self): + self.assertListKeyBegin(self.g.get_repos(), lambda r: r.name, ["grit", "merb-core", "rubinius", "god", "jsawesome", "jspec", "exception_logger", "ambition"]) + + def testGetReposSince(self): + self.assertListKeyBegin(self.g.get_repos(since=1000), lambda r: r.name, ["jquery-humanize-messages-plugin", "4slicer", "fixture-scenarios", "mongrel_proctitle", "rails-plugins"]) diff --git a/github/tests/Issue142.py b/github/tests/Issue142.py index 8d4e6053..61e5e6a0 100644 --- a/github/tests/Issue142.py +++ b/github/tests/Issue142.py @@ -25,8 +25,8 @@ import unittest import github -class Issue142(unittest.TestCase): # https://github.com/jacquev6/PyGithub/issues/140 +class Issue142(unittest.TestCase): # https://github.com/jacquev6/PyGithub/issues/142 def testDecodeJson(self): # This test has to hit GitHub for real, because the record-replay framework looses types - # and python3 does not behave like python3 for strings and bytes - self.assertEqual(github.Github().get_user("jacquev6").name, "Vincent Jacques") + # and python3 does not behave like python2 for strings and bytes + self.assertEqual(github.Github().get_rate_limit().rate.limit, 60) diff --git a/github/tests/NamedUser.py b/github/tests/NamedUser.py index 2ea6944d..5a56bd19 100644 --- a/github/tests/NamedUser.py +++ b/github/tests/NamedUser.py @@ -109,6 +109,10 @@ class NamedUser(Framework.TestCase): def testGetFollowing(self): self.assertListKeyEqual(self.user.get_following(), lambda f: f.login, ["nvie", "schacon", "jamis", "chad", "unclebob", "dabrahams", "jnorthrup", "brugidou", "regisb", "walidk", "tanzilli", "fjardon", "r3c", "sdanzan", "vineus", "cjuniet", "gturri", "ant9000", "asquini", "claudyus", "jardon-u", "s-bernard", "kamaradclimber", "Lyloa"]) + def testHasInFollowing(self): + nvie = self.g.get_user("nvie") + self.assertTrue(self.user.has_in_following(nvie)) + def testGetOrgs(self): self.assertListKeyEqual(self.user.get_orgs(), lambda o: o.login, ["BeaverSoftware"]) diff --git a/github/tests/Persistence.py b/github/tests/Persistence.py new file mode 100644 index 00000000..300e9174 --- /dev/null +++ b/github/tests/Persistence.py @@ -0,0 +1,55 @@ +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import Framework +import github + +if Framework.atLeastPython26: + from io import BytesIO as IO +else: + from StringIO import StringIO as IO + + +class Persistence(Framework.TestCase): + def setUp(self): + Framework.TestCase.setUp(self) + self.repo = self.g.get_repo("akfish/PyGithub") + + self.dumpedRepo = IO() + self.g.dump(self.repo, self.dumpedRepo) + self.dumpedRepo.seek(0) + + def tearDown(self): + self.dumpedRepo.close() + + def testLoad(self): + loadedRepo = self.g.load(self.dumpedRepo) + self.assertTrue(isinstance(loadedRepo, github.Repository.Repository)) + self.assertTrue(loadedRepo._requester is self.repo._requester) + self.assertTrue(loadedRepo.owner._requester is self.repo._requester) + self.assertEqual(loadedRepo.name, "PyGithub") + self.assertEqual(loadedRepo.url, "https://api.github.com/repos/akfish/PyGithub") + + def testLoadAndUpdate(self): + loadedRepo = self.g.load(self.dumpedRepo) + self.assertTrue(loadedRepo.update()) diff --git a/github/tests/RateLimiting.py b/github/tests/RateLimiting.py index 69d24e38..43d53c21 100644 --- a/github/tests/RateLimiting.py +++ b/github/tests/RateLimiting.py @@ -24,6 +24,8 @@ # # ################################################################################ +import datetime + import Framework @@ -36,3 +38,9 @@ class RateLimiting(Framework.TestCase): def testResetTime(self): self.assertEqual(self.g.rate_limiting_resettime, 1375802816) + + def testGetRateLimit(self): + rateLimit = self.g.get_rate_limit() + self.assertEqual(rateLimit.rate.limit, 5000) + self.assertEqual(rateLimit.rate.remaining, 5000) + self.assertEqual(rateLimit.rate.reset, datetime.datetime(2013, 9, 6, 10, 29, 57)) diff --git a/github/tests/ReplayData/ConditionalRequestUpdate.setUp.txt b/github/tests/ReplayData/ConditionalRequestUpdate.setUp.txt new file mode 100644 index 00000000..dfc62ba2 --- /dev/null +++ b/github/tests/ReplayData/ConditionalRequestUpdate.setUp.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repos/akfish/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '13698'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:09:11 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"8600bedcb7fed1d8065e1693e05529ce"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:13:08 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')] +{"id":12156762,"name":"PyGithub","full_name":"akfish/PyGithub","owner":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"private":false,"html_url":"https://github.com/akfish/PyGithub","description":"Python library implementing the full Github API v3","fork":true,"url":"https://api.github.com/repos/akfish/PyGithub","forks_url":"https://api.github.com/repos/akfish/PyGithub/forks","keys_url":"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akfish/PyGithub/teams","hooks_url":"https://api.github.com/repos/akfish/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/akfish/PyGithub/events","assignees_url":"https://api.github.com/repos/akfish/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/akfish/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/akfish/PyGithub/tags","blobs_url":"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/akfish/PyGithub/languages","stargazers_url":"https://api.github.com/repos/akfish/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/akfish/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/akfish/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/akfish/PyGithub/subscription","commits_url":"https://api.github.com/repos/akfish/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/akfish/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/akfish/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akfish/PyGithub/merges","archive_url":"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akfish/PyGithub/downloads","issues_url":"https://api.github.com/repos/akfish/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/akfish/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/akfish/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akfish/PyGithub/labels{/name}","created_at":"2013-08-16T10:56:11Z","updated_at":"2013-08-22T02:09:11Z","pushed_at":"2013-08-22T02:09:09Z","git_url":"git://github.com/akfish/PyGithub.git","ssh_url":"git@github.com:akfish/PyGithub.git","clone_url":"https://github.com/akfish/PyGithub.git","svn_url":"https://github.com/akfish/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":6736,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":70,"parent":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"}} + diff --git a/github/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt b/github/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt new file mode 100755 index 00000000..025aee8c --- /dev/null +++ b/github/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repos/akfish/PyGithub +{'If-None-Match': '"8600bedcb7fed1d8065e1693e05529ce"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Thu, 22 Aug 2013 02:09:11 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4988'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:09:11 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"8600bedcb7fed1d8065e1693e05529ce"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:13:10 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1377140429')] + + diff --git a/github/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt b/github/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt new file mode 100644 index 00000000..b6d8aeec --- /dev/null +++ b/github/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repos/akfish/PyGithub +{'If-None-Match': '"8600bedcb7fed1d8065e1693e05529ce"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Thu, 22 Aug 2013 02:09:11 GMT'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '13712'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:14:54 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"ef281ef0e821c18f80da36902727160b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:15:01 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')] +{"id":12156762,"name":"PyGithub","full_name":"akfish/PyGithub","owner":{"login":"akfish","id":922715,"avatar_url":"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"private":false,"html_url":"https://github.com/akfish/PyGithub","description":"Python library implementing the full Github API v3 - AKFish Fork","fork":true,"url":"https://api.github.com/repos/akfish/PyGithub","forks_url":"https://api.github.com/repos/akfish/PyGithub/forks","keys_url":"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akfish/PyGithub/teams","hooks_url":"https://api.github.com/repos/akfish/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/akfish/PyGithub/events","assignees_url":"https://api.github.com/repos/akfish/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/akfish/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/akfish/PyGithub/tags","blobs_url":"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/akfish/PyGithub/languages","stargazers_url":"https://api.github.com/repos/akfish/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/akfish/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/akfish/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/akfish/PyGithub/subscription","commits_url":"https://api.github.com/repos/akfish/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/akfish/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/akfish/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akfish/PyGithub/merges","archive_url":"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akfish/PyGithub/downloads","issues_url":"https://api.github.com/repos/akfish/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/akfish/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/akfish/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akfish/PyGithub/labels{/name}","created_at":"2013-08-16T10:56:11Z","updated_at":"2013-08-22T02:14:54Z","pushed_at":"2013-08-22T02:09:09Z","git_url":"git://github.com/akfish/PyGithub.git","ssh_url":"git@github.com:akfish/PyGithub.git","clone_url":"https://github.com/akfish/PyGithub.git","svn_url":"https://github.com/akfish/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":6736,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":70,"parent":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"}} + diff --git a/github/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt b/github/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt new file mode 100755 index 00000000..6ef154b5 --- /dev/null +++ b/github/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt @@ -0,0 +1,22 @@ +https +GET +api.github.com +None +/repos/jacquev6/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4911'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('date', 'Sun, 27 May 2012 07:17:09 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"git_url":"git://github.com/jacquev6/PyGithub.git","updated_at":"2012-05-27T06:55:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":308,"private":false,"open_issues":16,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-27T06:00:28Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4911'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('date', 'Sun, 27 May 2012 07:17:09 GMT'), ('content-type', 'application/json; charset=utf-8')] +{"clone_url":"https://github.com/jacquev6/PyGithub.git","has_downloads":true,"watchers":15,"git_url":"git://github.com/jacquev6/PyGithub.git","updated_at":"2012-05-27T06:55:28Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub","mirror_url":null,"has_wiki":false,"has_issues":true,"fork":false,"forks":3,"size":308,"private":false,"open_issues":16,"svn_url":"https://github.com/jacquev6/PyGithub","owner":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:jacquev6/PyGithub.git","pushed_at":"2012-05-27T06:00:28Z","created_at":"2012-02-25T12:53:47Z","id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","full_name":"jacquev6/PyGithub"} + diff --git a/github/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt b/github/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt new file mode 100644 index 00000000..0dd9860c --- /dev/null +++ b/github/tests/ReplayData/ExposeAllAttributes.testAllClasses.txt @@ -0,0 +1,660 @@ +https +GET +api.github.com +None +/users/nvie +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4896'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '8af842fb-ea9b-4237-bb36-ba65ee012cca'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1218'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 13:38:58 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"ded215d39a497c6d2de00dd5e5a5deb6"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:00 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"login":"nvie","id":83844,"avatar_url":"https://1.gravatar.com/avatar/466ef7561a0b100dc5a1021959962d28?d=https%3A%2F%2Fidenticons.github.com%2Fe6d0513ce49cc06cb956251623cb8fd9.png","gravatar_id":"466ef7561a0b100dc5a1021959962d28","url":"https://api.github.com/users/nvie","html_url":"https://github.com/nvie","followers_url":"https://api.github.com/users/nvie/followers","following_url":"https://api.github.com/users/nvie/following{/other_user}","gists_url":"https://api.github.com/users/nvie/gists{/gist_id}","starred_url":"https://api.github.com/users/nvie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nvie/subscriptions","organizations_url":"https://api.github.com/users/nvie/orgs","repos_url":"https://api.github.com/users/nvie/repos","events_url":"https://api.github.com/users/nvie/events{/privacy}","received_events_url":"https://api.github.com/users/nvie/received_events","type":"User","name":"Vincent Driessen","company":"3rd Cloud","blog":"http://nvie.com","location":"Netherlands","email":"vincent@3rdcloud.com","hireable":true,"bio":null,"public_repos":87,"followers":542,"following":45,"created_at":"2009-05-12T21:19:38Z","updated_at":"2013-09-06T13:38:58Z","public_gists":38} + +https +GET +api.github.com +None +/user +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4895'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'bd7ef47e-9e8f-47b2-8367-f5d1185f675d'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1471'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:01 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User","name":"Vincent Jacques","company":"","blog":"http://vincent-jacques.net","location":"Paris, France","email":"vincent@vincent-jacques.net","hireable":false,"bio":"","public_repos":17,"followers":28,"following":40,"created_at":"2010-07-09T06:10:06Z","updated_at":"2013-09-06T12:51:22Z","public_gists":5,"total_private_repos":4,"owned_private_repos":4,"disk_usage":19212,"collaborators":1,"plan":{"name":"micro","space":614400,"collaborators":1,"private_repos":5},"private_gists":6,"site_admin":false} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4894'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '8834e1c1-f4f5-4da8-a92e-4b985517e4fd'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '4644'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:05 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"feb5059cac897bdd13fd1205785f865c"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:02 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-09-06T12:41:05Z","pushed_at":"2013-09-06T12:41:05Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":820,"watchers_count":256,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":76,"mirror_url":null,"open_issues_count":15,"forks":76,"open_issues":15,"watchers":256,"master_branch":"master","default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":76} + +https +GET +api.github.com +None +/orgs/BeaverSoftware +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4893'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'aadd8ce1-31df-4c38-b3d9-33ba75cfaf08'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1030'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 23 Jan 2013 12:15:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"99d8ce990ccf1acbb3508bd20d9883e4"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:03 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"login":"BeaverSoftware","id":1424031,"url":"https://api.github.com/orgs/BeaverSoftware","repos_url":"https://api.github.com/orgs/BeaverSoftware/repos","events_url":"https://api.github.com/orgs/BeaverSoftware/events","members_url":"https://api.github.com/orgs/BeaverSoftware/members{/member}","public_members_url":"https://api.github.com/orgs/BeaverSoftware/public_members{/member}","avatar_url":"https://0.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https%3A%2F%2Fidenticons.github.com%2Fde8dec416975d0a85845b1b88385b9d5.png","name":null,"company":null,"blog":null,"location":"Paris, France","email":null,"public_repos":1,"public_gists":0,"followers":0,"following":0,"html_url":"https://github.com/BeaverSoftware","created_at":"2012-02-09T19:20:12Z","updated_at":"2013-01-23T12:15:22Z","type":"Organization","total_private_repos":0,"owned_private_repos":0,"private_gists":0,"disk_usage":84,"collaborators":0,"billing_email":"BeaverSoftware@vincent-jacques.net","plan":{"name":"free","space":307200,"private_repos":0}} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/branches/master +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4892'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '43800e7e-e879-402b-8701-255c06ec7c33'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '3317'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"4363de8c7d91e18a17cec5a495ab091a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:04 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"name":"master","commit":{"sha":"ed781f8b1b96e1d2a342d36ca53114ea28862fa8","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T16:39:22Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T16:39:22Z"},"message":"Fix date of 1.18.0","tree":{"sha":"e90c43164378222f04883c0f6547102df818d1ef","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e90c43164378222f04883c0f6547102df818d1ef"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","html_url":"https://github.com/jacquev6/PyGithub/commit/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"2c4e3cbc24581c214f44682bfc3e7f438bae127a","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2c4e3cbc24581c214f44682bfc3e7f438bae127a","html_url":"https://github.com/jacquev6/PyGithub/commit/2c4e3cbc24581c214f44682bfc3e7f438bae127a"}]},"_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/branches/master","html":"https://github.com/jacquev6/PyGithub/tree/master"}} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4891'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '223c6b24-a4ca-4539-8d78-38adeb061554'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '5275'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 09 May 2012 16:22:33 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"91582e2dc24ad5461e61062c01b32969"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:05 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"sha":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2012-05-09T16:22:33Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2012-05-09T16:22:33Z"},"message":"Remove completion functions from GitAuthor","tree":{"sha":"4c6bd50994f0f9823f898b1c6c964ad7d4fa11ab","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4c6bd50994f0f9823f898b1c6c964ad7d4fa11ab"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","html_url":"https://github.com/jacquev6/PyGithub/commit/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","html_url":"https://github.com/jacquev6/PyGithub/commit/b46ed0dfde5ad02d3b91eb54a41c5ed960710eae"}],"stats":{"total":20,"additions":0,"deletions":20},"files":[{"sha":"ca6a3c616fc1367b6d01d04a7cf6ee27cf216f26","filename":"github/GithubObjects/GitAuthor.py","status":"modified","additions":0,"deletions":20,"changes":20,"blob_url":"https://github.com/jacquev6/PyGithub/blob/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github/GithubObjects/GitAuthor.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/1292bf0e22c796e91cc3d6e24b544aece8c21f2a/github/GithubObjects/GitAuthor.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GithubObjects/GitAuthor.py?ref=1292bf0e22c796e91cc3d6e24b544aece8c21f2a","patch":"@@ -14,22 +14,17 @@ def __init__( self, requester, attributes, lazy ):\n self.__completed = False\n self.__initAttributes()\n self.__useAttributes( attributes )\n- if not lazy:\n- self.__complete()\n \n @property\n def date( self ):\n- self.__completeIfNeeded( self.__date )\n return self.__date\n \n @property\n def email( self ):\n- self.__completeIfNeeded( self.__email )\n return self.__email\n \n @property\n def name( self ):\n- self.__completeIfNeeded( self.__name )\n return self.__name\n \n def __initAttributes( self ):\n@@ -37,21 +32,6 @@ def __initAttributes( self ):\n self.__email = None\n self.__name = None\n \n- def __completeIfNeeded( self, testedAttribute ):\n- if not self.__completed and testedAttribute is None:\n- self.__complete()\n-\n- # @todo Do not generate __complete if type has no url attribute\n- def __complete( self ):\n- status, headers, data = self.__requester.request(\n- \"GET\",\n- self.__url,\n- None,\n- None\n- )\n- self.__useAttributes( data )\n- self.__completed = True\n-\n def __useAttributes( self, attributes ):\n #@todo No need to check if attribute is in attributes when attribute is mandatory\n if \"date\" in attributes and attributes[ \"date\" ] is not None:"}]} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/statuses/1292bf0e22c796e91cc3d6e24b544aece8c21f2a +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4890'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'bfc3ae14-6a54-4607-9d33-e51833d38736'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '2539'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"97c44c9e1c063b88767ef99e812a077b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:06 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +[{"url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","id":277040,"state":"success","description":"Status successfuly created by PyGithub","target_url":"https://github.com/jacquev6/PyGithub/issues/67","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2012-09-08T11:30:56Z","updated_at":"2012-09-08T11:30:56Z"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","id":277031,"state":"pending","description":null,"target_url":null,"creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2012-09-08T11:27:12Z","updated_at":"2012-09-08T11:27:12Z"}] + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/milestones/17 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4889'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '77d21e66-086b-4a25-a708-948a4c057bf8'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1338'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:08 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/17","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/17/labels","id":215837,"number":17,"title":"Version 1.9.1","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":0,"closed_issues":2,"state":"closed","created_at":"2012-11-20T07:36:46Z","updated_at":"2012-11-20T18:42:30Z","due_on":null} + +https +GET +api.github.com +None +/gists/149016 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4888'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '9a8fb974-29df-453c-a56c-0da8b8ce072c'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '32105'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 13:04:59 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"1aaa6053c05e25abbc1703b90bd409b9"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:09 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/gists/149016","forks_url":"https://api.github.com/gists/149016/forks","commits_url":"https://api.github.com/gists/149016/commits","id":"149016","git_pull_url":"https://gist.github.com/149016.git","git_push_url":"https://gist.github.com/149016.git","html_url":"https://gist.github.com/149016","files":{".gitignore":{"filename":".gitignore","type":"text/plain","language":null,"raw_url":"https://gist.github.com/raw/149016/e056704ebab0fbcd7bf937169b4057d378d09cf8/.gitignore","size":145,"content":"*.aux\n*.glo\n*.idx\n*.log\n*.toc\n*.ist\n*.acn\n*.acr\n*.alg\n*.bbl\n*.blg\n*.dvi\n*.glg\n*.gls\n*.ilg\n*.ind\n*.lof\n*.lot\n*.maf\n*.mtc\n*.mtc1\n*.out\n*.synctex.gz"}},"public":true,"created_at":"2009-07-17T11:37:42Z","updated_at":"2013-09-06T13:04:59Z","description":"Git: .gitignore file for LaTeX projects","comments":18,"user":{"login":"kogakure","id":5535,"avatar_url":"https://0.gravatar.com/avatar/b53f98d49e275e8387897de02c92288d?d=https%3A%2F%2Fidenticons.github.com%2F7ec69dd44416c46745f6edd947b470cd.png","gravatar_id":"b53f98d49e275e8387897de02c92288d","url":"https://api.github.com/users/kogakure","html_url":"https://github.com/kogakure","followers_url":"https://api.github.com/users/kogakure/followers","following_url":"https://api.github.com/users/kogakure/following{/other_user}","gists_url":"https://api.github.com/users/kogakure/gists{/gist_id}","starred_url":"https://api.github.com/users/kogakure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kogakure/subscriptions","organizations_url":"https://api.github.com/users/kogakure/orgs","repos_url":"https://api.github.com/users/kogakure/repos","events_url":"https://api.github.com/users/kogakure/events{/privacy}","received_events_url":"https://api.github.com/users/kogakure/received_events","type":"User"},"comments_url":"https://api.github.com/gists/149016/comments","forks":[{"url":"https://api.github.com/gists/452042","user":{"login":"cflewis","id":43708,"avatar_url":"https://2.gravatar.com/avatar/5f986018993d9f078927fe29ee912cf2?d=https%3A%2F%2Fidenticons.github.com%2F287915711d06ce6d90e2c18e1d89d3a6.png","gravatar_id":"5f986018993d9f078927fe29ee912cf2","url":"https://api.github.com/users/cflewis","html_url":"https://github.com/cflewis","followers_url":"https://api.github.com/users/cflewis/followers","following_url":"https://api.github.com/users/cflewis/following{/other_user}","gists_url":"https://api.github.com/users/cflewis/gists{/gist_id}","starred_url":"https://api.github.com/users/cflewis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cflewis/subscriptions","organizations_url":"https://api.github.com/users/cflewis/orgs","repos_url":"https://api.github.com/users/cflewis/repos","events_url":"https://api.github.com/users/cflewis/events{/privacy}","received_events_url":"https://api.github.com/users/cflewis/received_events","type":"User"},"id":"452042","created_at":"2010-06-24T21:51:00Z","updated_at":"2010-06-24T21:51:25Z"},{"url":"https://api.github.com/gists/871983","user":{"login":"rbochet","id":56806,"avatar_url":"https://2.gravatar.com/avatar/54925726f7c3a2b76028718eddb8522a?d=https%3A%2F%2Fidenticons.github.com%2F8818556ce6ba4bc9302dca9ec1979591.png","gravatar_id":"54925726f7c3a2b76028718eddb8522a","url":"https://api.github.com/users/rbochet","html_url":"https://github.com/rbochet","followers_url":"https://api.github.com/users/rbochet/followers","following_url":"https://api.github.com/users/rbochet/following{/other_user}","gists_url":"https://api.github.com/users/rbochet/gists{/gist_id}","starred_url":"https://api.github.com/users/rbochet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbochet/subscriptions","organizations_url":"https://api.github.com/users/rbochet/orgs","repos_url":"https://api.github.com/users/rbochet/repos","events_url":"https://api.github.com/users/rbochet/events{/privacy}","received_events_url":"https://api.github.com/users/rbochet/received_events","type":"User"},"id":"871983","created_at":"2011-03-16T03:48:24Z","updated_at":"2013-08-16T00:46:15Z"},{"url":"https://api.github.com/gists/980414","user":{"login":"j10","id":250070,"avatar_url":"https://0.gravatar.com/avatar/7eb0a4d397a695f7fd15069a4f24ad44?d=https%3A%2F%2Fidenticons.github.com%2F6019c728e12af5d048c3d2decb9800cd.png","gravatar_id":"7eb0a4d397a695f7fd15069a4f24ad44","url":"https://api.github.com/users/j10","html_url":"https://github.com/j10","followers_url":"https://api.github.com/users/j10/followers","following_url":"https://api.github.com/users/j10/following{/other_user}","gists_url":"https://api.github.com/users/j10/gists{/gist_id}","starred_url":"https://api.github.com/users/j10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/j10/subscriptions","organizations_url":"https://api.github.com/users/j10/orgs","repos_url":"https://api.github.com/users/j10/repos","events_url":"https://api.github.com/users/j10/events{/privacy}","received_events_url":"https://api.github.com/users/j10/received_events","type":"User"},"id":"980414","created_at":"2011-05-19T08:43:14Z","updated_at":"2011-05-19T08:43:20Z"},{"url":"https://api.github.com/gists/1404741","user":{"login":"Vaguery","id":81171,"avatar_url":"https://0.gravatar.com/avatar/db04d40ecceb0a4c0683a60462d11794?d=https%3A%2F%2Fidenticons.github.com%2Fc3ea21d464d21b7bf62431791ec01b78.png","gravatar_id":"db04d40ecceb0a4c0683a60462d11794","url":"https://api.github.com/users/Vaguery","html_url":"https://github.com/Vaguery","followers_url":"https://api.github.com/users/Vaguery/followers","following_url":"https://api.github.com/users/Vaguery/following{/other_user}","gists_url":"https://api.github.com/users/Vaguery/gists{/gist_id}","starred_url":"https://api.github.com/users/Vaguery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vaguery/subscriptions","organizations_url":"https://api.github.com/users/Vaguery/orgs","repos_url":"https://api.github.com/users/Vaguery/repos","events_url":"https://api.github.com/users/Vaguery/events{/privacy}","received_events_url":"https://api.github.com/users/Vaguery/received_events","type":"User"},"id":"1404741","created_at":"2011-11-29T13:05:35Z","updated_at":"2011-11-29T13:05:35Z"},{"url":"https://api.github.com/gists/1422904","user":{"login":"phieber","id":1208351,"avatar_url":"https://1.gravatar.com/avatar/e2f846ae903d79fa8750763d0809cab5?d=https%3A%2F%2Fidenticons.github.com%2F09c10f8d5454910d48c67ff6081e8601.png","gravatar_id":"e2f846ae903d79fa8750763d0809cab5","url":"https://api.github.com/users/phieber","html_url":"https://github.com/phieber","followers_url":"https://api.github.com/users/phieber/followers","following_url":"https://api.github.com/users/phieber/following{/other_user}","gists_url":"https://api.github.com/users/phieber/gists{/gist_id}","starred_url":"https://api.github.com/users/phieber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phieber/subscriptions","organizations_url":"https://api.github.com/users/phieber/orgs","repos_url":"https://api.github.com/users/phieber/repos","events_url":"https://api.github.com/users/phieber/events{/privacy}","received_events_url":"https://api.github.com/users/phieber/received_events","type":"User"},"id":"1422904","created_at":"2011-12-02T11:25:46Z","updated_at":"2011-12-02T11:25:46Z"},{"url":"https://api.github.com/gists/1585783","user":{"login":"pbroschwitz","id":92129,"avatar_url":"https://1.gravatar.com/avatar/68e33f71f778ec322d68ca15ef2a7315?d=https%3A%2F%2Fidenticons.github.com%2F8417990ede5b8e7dc3295d4dd63e4062.png","gravatar_id":"68e33f71f778ec322d68ca15ef2a7315","url":"https://api.github.com/users/pbroschwitz","html_url":"https://github.com/pbroschwitz","followers_url":"https://api.github.com/users/pbroschwitz/followers","following_url":"https://api.github.com/users/pbroschwitz/following{/other_user}","gists_url":"https://api.github.com/users/pbroschwitz/gists{/gist_id}","starred_url":"https://api.github.com/users/pbroschwitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbroschwitz/subscriptions","organizations_url":"https://api.github.com/users/pbroschwitz/orgs","repos_url":"https://api.github.com/users/pbroschwitz/repos","events_url":"https://api.github.com/users/pbroschwitz/events{/privacy}","received_events_url":"https://api.github.com/users/pbroschwitz/received_events","type":"User"},"id":"1585783","created_at":"2012-01-09T23:59:07Z","updated_at":"2012-02-20T11:18:52Z"},{"url":"https://api.github.com/gists/2549120","user":{"login":"gaving","id":43741,"avatar_url":"https://2.gravatar.com/avatar/839485ec6b0111d4ccc69646789d6728?d=https%3A%2F%2Fidenticons.github.com%2F781870bb5979fcc948dcc48da5fb798a.png","gravatar_id":"839485ec6b0111d4ccc69646789d6728","url":"https://api.github.com/users/gaving","html_url":"https://github.com/gaving","followers_url":"https://api.github.com/users/gaving/followers","following_url":"https://api.github.com/users/gaving/following{/other_user}","gists_url":"https://api.github.com/users/gaving/gists{/gist_id}","starred_url":"https://api.github.com/users/gaving/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gaving/subscriptions","organizations_url":"https://api.github.com/users/gaving/orgs","repos_url":"https://api.github.com/users/gaving/repos","events_url":"https://api.github.com/users/gaving/events{/privacy}","received_events_url":"https://api.github.com/users/gaving/received_events","type":"User"},"id":"2549120","created_at":"2012-04-29T09:57:32Z","updated_at":"2012-04-29T09:57:32Z"},{"url":"https://api.github.com/gists/2549928","user":{"login":"pbelmans","id":700126,"avatar_url":"https://2.gravatar.com/avatar/bf4c56431003682b725b72668e7de35f?d=https%3A%2F%2Fidenticons.github.com%2Fb6e0db3b4d374eb7e8d52b9f271f4822.png","gravatar_id":"bf4c56431003682b725b72668e7de35f","url":"https://api.github.com/users/pbelmans","html_url":"https://github.com/pbelmans","followers_url":"https://api.github.com/users/pbelmans/followers","following_url":"https://api.github.com/users/pbelmans/following{/other_user}","gists_url":"https://api.github.com/users/pbelmans/gists{/gist_id}","starred_url":"https://api.github.com/users/pbelmans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbelmans/subscriptions","organizations_url":"https://api.github.com/users/pbelmans/orgs","repos_url":"https://api.github.com/users/pbelmans/repos","events_url":"https://api.github.com/users/pbelmans/events{/privacy}","received_events_url":"https://api.github.com/users/pbelmans/received_events","type":"User"},"id":"2549928","created_at":"2012-04-29T12:07:11Z","updated_at":"2012-05-14T11:08:39Z"},{"url":"https://api.github.com/gists/3061207","user":{"login":"robEllenberg","id":1210940,"avatar_url":"https://1.gravatar.com/avatar/cee0a0313cb89262ccaf408cf42eeae8?d=https%3A%2F%2Fidenticons.github.com%2Fb927fc8b72fac9a5b05e8afd1545e069.png","gravatar_id":"cee0a0313cb89262ccaf408cf42eeae8","url":"https://api.github.com/users/robEllenberg","html_url":"https://github.com/robEllenberg","followers_url":"https://api.github.com/users/robEllenberg/followers","following_url":"https://api.github.com/users/robEllenberg/following{/other_user}","gists_url":"https://api.github.com/users/robEllenberg/gists{/gist_id}","starred_url":"https://api.github.com/users/robEllenberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robEllenberg/subscriptions","organizations_url":"https://api.github.com/users/robEllenberg/orgs","repos_url":"https://api.github.com/users/robEllenberg/repos","events_url":"https://api.github.com/users/robEllenberg/events{/privacy}","received_events_url":"https://api.github.com/users/robEllenberg/received_events","type":"User"},"id":"3061207","created_at":"2012-07-06T16:34:35Z","updated_at":"2012-07-06T16:34:35Z"},{"url":"https://api.github.com/gists/3073850","user":{"login":"naught101","id":167164,"avatar_url":"https://2.gravatar.com/avatar/20cb8dcc17ad4334c0f8cb1ddc28bcd0?d=https%3A%2F%2Fidenticons.github.com%2F16a0a5f3381b862da55875130a94ad3f.png","gravatar_id":"20cb8dcc17ad4334c0f8cb1ddc28bcd0","url":"https://api.github.com/users/naught101","html_url":"https://github.com/naught101","followers_url":"https://api.github.com/users/naught101/followers","following_url":"https://api.github.com/users/naught101/following{/other_user}","gists_url":"https://api.github.com/users/naught101/gists{/gist_id}","starred_url":"https://api.github.com/users/naught101/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/naught101/subscriptions","organizations_url":"https://api.github.com/users/naught101/orgs","repos_url":"https://api.github.com/users/naught101/repos","events_url":"https://api.github.com/users/naught101/events{/privacy}","received_events_url":"https://api.github.com/users/naught101/received_events","type":"User"},"id":"3073850","created_at":"2012-07-09T02:17:21Z","updated_at":"2012-07-09T02:17:21Z"},{"url":"https://api.github.com/gists/3683565","user":{"login":"TKAB","id":66597,"avatar_url":"https://1.gravatar.com/avatar/7a66c8124726c66cf9901d7e09f4f3cb?d=https%3A%2F%2Fidenticons.github.com%2F4bec99ec5bd39630575692948d9e8169.png","gravatar_id":"7a66c8124726c66cf9901d7e09f4f3cb","url":"https://api.github.com/users/TKAB","html_url":"https://github.com/TKAB","followers_url":"https://api.github.com/users/TKAB/followers","following_url":"https://api.github.com/users/TKAB/following{/other_user}","gists_url":"https://api.github.com/users/TKAB/gists{/gist_id}","starred_url":"https://api.github.com/users/TKAB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TKAB/subscriptions","organizations_url":"https://api.github.com/users/TKAB/orgs","repos_url":"https://api.github.com/users/TKAB/repos","events_url":"https://api.github.com/users/TKAB/events{/privacy}","received_events_url":"https://api.github.com/users/TKAB/received_events","type":"User"},"id":"3683565","created_at":"2012-09-09T09:58:43Z","updated_at":"2012-09-09T09:58:43Z"},{"url":"https://api.github.com/gists/3802139","user":{"login":"linchen04","id":1383767,"avatar_url":"https://1.gravatar.com/avatar/4380e7c4928005fc0eaf9772e1fe64b7?d=https%3A%2F%2Fidenticons.github.com%2F39a2a9b3f884c9a2e97ce61cb56e02fd.png","gravatar_id":"4380e7c4928005fc0eaf9772e1fe64b7","url":"https://api.github.com/users/linchen04","html_url":"https://github.com/linchen04","followers_url":"https://api.github.com/users/linchen04/followers","following_url":"https://api.github.com/users/linchen04/following{/other_user}","gists_url":"https://api.github.com/users/linchen04/gists{/gist_id}","starred_url":"https://api.github.com/users/linchen04/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linchen04/subscriptions","organizations_url":"https://api.github.com/users/linchen04/orgs","repos_url":"https://api.github.com/users/linchen04/repos","events_url":"https://api.github.com/users/linchen04/events{/privacy}","received_events_url":"https://api.github.com/users/linchen04/received_events","type":"User"},"id":"3802139","created_at":"2012-09-28T21:20:16Z","updated_at":"2012-09-28T21:20:16Z"},{"url":"https://api.github.com/gists/3958094","user":{"login":"macalicious","id":717205,"avatar_url":"https://2.gravatar.com/avatar/59eb80f68e015e725e9eeb90f24987b2?d=https%3A%2F%2Fidenticons.github.com%2F1d2591e0232d5734561c3c71252a2efa.png","gravatar_id":"59eb80f68e015e725e9eeb90f24987b2","url":"https://api.github.com/users/macalicious","html_url":"https://github.com/macalicious","followers_url":"https://api.github.com/users/macalicious/followers","following_url":"https://api.github.com/users/macalicious/following{/other_user}","gists_url":"https://api.github.com/users/macalicious/gists{/gist_id}","starred_url":"https://api.github.com/users/macalicious/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/macalicious/subscriptions","organizations_url":"https://api.github.com/users/macalicious/orgs","repos_url":"https://api.github.com/users/macalicious/repos","events_url":"https://api.github.com/users/macalicious/events{/privacy}","received_events_url":"https://api.github.com/users/macalicious/received_events","type":"User"},"id":"3958094","created_at":"2012-10-26T10:37:44Z","updated_at":"2012-10-26T10:37:44Z"},{"url":"https://api.github.com/gists/4362953","user":{"login":"dermesser","id":1042327,"avatar_url":"https://0.gravatar.com/avatar/1f99406671a26d17de4f0a52a41ad0c7?d=https%3A%2F%2Fidenticons.github.com%2F1b2f62f9f8f36eeb3c2a1ed42d1a2249.png","gravatar_id":"1f99406671a26d17de4f0a52a41ad0c7","url":"https://api.github.com/users/dermesser","html_url":"https://github.com/dermesser","followers_url":"https://api.github.com/users/dermesser/followers","following_url":"https://api.github.com/users/dermesser/following{/other_user}","gists_url":"https://api.github.com/users/dermesser/gists{/gist_id}","starred_url":"https://api.github.com/users/dermesser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dermesser/subscriptions","organizations_url":"https://api.github.com/users/dermesser/orgs","repos_url":"https://api.github.com/users/dermesser/repos","events_url":"https://api.github.com/users/dermesser/events{/privacy}","received_events_url":"https://api.github.com/users/dermesser/received_events","type":"User"},"id":"4362953","created_at":"2012-12-23T11:04:08Z","updated_at":"2013-08-07T18:49:16Z"},{"url":"https://api.github.com/gists/4401093","user":{"login":"szalansky","id":323025,"avatar_url":"https://1.gravatar.com/avatar/b96196ac5b306a6f0d302dd9f82a24ee?d=https%3A%2F%2Fidenticons.github.com%2F6470274ac82665a71a91d36c419016ce.png","gravatar_id":"b96196ac5b306a6f0d302dd9f82a24ee","url":"https://api.github.com/users/szalansky","html_url":"https://github.com/szalansky","followers_url":"https://api.github.com/users/szalansky/followers","following_url":"https://api.github.com/users/szalansky/following{/other_user}","gists_url":"https://api.github.com/users/szalansky/gists{/gist_id}","starred_url":"https://api.github.com/users/szalansky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/szalansky/subscriptions","organizations_url":"https://api.github.com/users/szalansky/orgs","repos_url":"https://api.github.com/users/szalansky/repos","events_url":"https://api.github.com/users/szalansky/events{/privacy}","received_events_url":"https://api.github.com/users/szalansky/received_events","type":"User"},"id":"4401093","created_at":"2012-12-28T19:28:03Z","updated_at":"2012-12-28T19:28:03Z"},{"url":"https://api.github.com/gists/4568476","user":{"login":"flomey","id":3226735,"avatar_url":"https://1.gravatar.com/avatar/3143afe043a2fdcd6a22a537e4cc3c8e?d=https%3A%2F%2Fidenticons.github.com%2F9271b5a509f2dabd1c5850acf684759c.png","gravatar_id":"3143afe043a2fdcd6a22a537e4cc3c8e","url":"https://api.github.com/users/flomey","html_url":"https://github.com/flomey","followers_url":"https://api.github.com/users/flomey/followers","following_url":"https://api.github.com/users/flomey/following{/other_user}","gists_url":"https://api.github.com/users/flomey/gists{/gist_id}","starred_url":"https://api.github.com/users/flomey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flomey/subscriptions","organizations_url":"https://api.github.com/users/flomey/orgs","repos_url":"https://api.github.com/users/flomey/repos","events_url":"https://api.github.com/users/flomey/events{/privacy}","received_events_url":"https://api.github.com/users/flomey/received_events","type":"User"},"id":"4568476","created_at":"2013-01-18T20:59:25Z","updated_at":"2013-01-18T20:59:25Z"},{"url":"https://api.github.com/gists/4732801","user":{"login":"mhebing","id":905115,"avatar_url":"https://2.gravatar.com/avatar/14e2a01d187cb0a167942e24e9234f95?d=https%3A%2F%2Fidenticons.github.com%2Fb874dedd9bb70a549db142d519aa6648.png","gravatar_id":"14e2a01d187cb0a167942e24e9234f95","url":"https://api.github.com/users/mhebing","html_url":"https://github.com/mhebing","followers_url":"https://api.github.com/users/mhebing/followers","following_url":"https://api.github.com/users/mhebing/following{/other_user}","gists_url":"https://api.github.com/users/mhebing/gists{/gist_id}","starred_url":"https://api.github.com/users/mhebing/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhebing/subscriptions","organizations_url":"https://api.github.com/users/mhebing/orgs","repos_url":"https://api.github.com/users/mhebing/repos","events_url":"https://api.github.com/users/mhebing/events{/privacy}","received_events_url":"https://api.github.com/users/mhebing/received_events","type":"User"},"id":"4732801","created_at":"2013-02-07T17:57:21Z","updated_at":"2013-02-07T17:59:53Z"},{"url":"https://api.github.com/gists/5074215","user":{"login":"fumingshih","id":171536,"avatar_url":"https://0.gravatar.com/avatar/cdaeda52c7e0e7db119ec242652a7eac?d=https%3A%2F%2Fidenticons.github.com%2Ff3daf33ead84c02b32d673addce28321.png","gravatar_id":"cdaeda52c7e0e7db119ec242652a7eac","url":"https://api.github.com/users/fumingshih","html_url":"https://github.com/fumingshih","followers_url":"https://api.github.com/users/fumingshih/followers","following_url":"https://api.github.com/users/fumingshih/following{/other_user}","gists_url":"https://api.github.com/users/fumingshih/gists{/gist_id}","starred_url":"https://api.github.com/users/fumingshih/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fumingshih/subscriptions","organizations_url":"https://api.github.com/users/fumingshih/orgs","repos_url":"https://api.github.com/users/fumingshih/repos","events_url":"https://api.github.com/users/fumingshih/events{/privacy}","received_events_url":"https://api.github.com/users/fumingshih/received_events","type":"User"},"id":"5074215","created_at":"2013-03-03T02:30:54Z","updated_at":"2013-03-03T02:30:54Z"},{"url":"https://api.github.com/gists/5126805","user":{"login":"xiddw","id":742519,"avatar_url":"https://2.gravatar.com/avatar/e3aea2d1cdb375467416bff41c614582?d=https%3A%2F%2Fidenticons.github.com%2Ffd082f32f1f9679671081ba58bb37459.png","gravatar_id":"e3aea2d1cdb375467416bff41c614582","url":"https://api.github.com/users/xiddw","html_url":"https://github.com/xiddw","followers_url":"https://api.github.com/users/xiddw/followers","following_url":"https://api.github.com/users/xiddw/following{/other_user}","gists_url":"https://api.github.com/users/xiddw/gists{/gist_id}","starred_url":"https://api.github.com/users/xiddw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiddw/subscriptions","organizations_url":"https://api.github.com/users/xiddw/orgs","repos_url":"https://api.github.com/users/xiddw/repos","events_url":"https://api.github.com/users/xiddw/events{/privacy}","received_events_url":"https://api.github.com/users/xiddw/received_events","type":"User"},"id":"5126805","created_at":"2013-03-10T02:21:30Z","updated_at":"2013-03-10T02:21:30Z"},{"url":"https://api.github.com/gists/5353918","user":{"login":"stared","id":1001610,"avatar_url":"https://2.gravatar.com/avatar/1b324e4900e79878eb518c1263b41795?d=https%3A%2F%2Fidenticons.github.com%2F031dfe1b6a9e475fa708179fb35beb3b.png","gravatar_id":"1b324e4900e79878eb518c1263b41795","url":"https://api.github.com/users/stared","html_url":"https://github.com/stared","followers_url":"https://api.github.com/users/stared/followers","following_url":"https://api.github.com/users/stared/following{/other_user}","gists_url":"https://api.github.com/users/stared/gists{/gist_id}","starred_url":"https://api.github.com/users/stared/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stared/subscriptions","organizations_url":"https://api.github.com/users/stared/orgs","repos_url":"https://api.github.com/users/stared/repos","events_url":"https://api.github.com/users/stared/events{/privacy}","received_events_url":"https://api.github.com/users/stared/received_events","type":"User"},"id":"5353918","created_at":"2013-04-10T11:42:03Z","updated_at":"2013-04-10T11:43:47Z"},{"url":"https://api.github.com/gists/5600181","user":{"login":"huashuai","id":256761,"avatar_url":"https://1.gravatar.com/avatar/279030da669c3950fc54dea37ee3109e?d=https%3A%2F%2Fidenticons.github.com%2Fc66590f0228b4de1b7d16d1b8f10161c.png","gravatar_id":"279030da669c3950fc54dea37ee3109e","url":"https://api.github.com/users/huashuai","html_url":"https://github.com/huashuai","followers_url":"https://api.github.com/users/huashuai/followers","following_url":"https://api.github.com/users/huashuai/following{/other_user}","gists_url":"https://api.github.com/users/huashuai/gists{/gist_id}","starred_url":"https://api.github.com/users/huashuai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huashuai/subscriptions","organizations_url":"https://api.github.com/users/huashuai/orgs","repos_url":"https://api.github.com/users/huashuai/repos","events_url":"https://api.github.com/users/huashuai/events{/privacy}","received_events_url":"https://api.github.com/users/huashuai/received_events","type":"User"},"id":"5600181","created_at":"2013-05-17T16:15:32Z","updated_at":"2013-05-17T16:15:32Z"},{"url":"https://api.github.com/gists/5639946","user":{"login":"simardcasanova","id":739940,"avatar_url":"https://0.gravatar.com/avatar/63c42221c8ed3dfc335a0d1b19397e36?d=https%3A%2F%2Fidenticons.github.com%2F819fcce6467f36e0beb6ffc69afa9f21.png","gravatar_id":"63c42221c8ed3dfc335a0d1b19397e36","url":"https://api.github.com/users/simardcasanova","html_url":"https://github.com/simardcasanova","followers_url":"https://api.github.com/users/simardcasanova/followers","following_url":"https://api.github.com/users/simardcasanova/following{/other_user}","gists_url":"https://api.github.com/users/simardcasanova/gists{/gist_id}","starred_url":"https://api.github.com/users/simardcasanova/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simardcasanova/subscriptions","organizations_url":"https://api.github.com/users/simardcasanova/orgs","repos_url":"https://api.github.com/users/simardcasanova/repos","events_url":"https://api.github.com/users/simardcasanova/events{/privacy}","received_events_url":"https://api.github.com/users/simardcasanova/received_events","type":"User"},"id":"5639946","created_at":"2013-05-23T22:24:19Z","updated_at":"2013-05-23T22:24:57Z"},{"url":"https://api.github.com/gists/5965077","user":{"login":"habi","id":1651235,"avatar_url":"https://1.gravatar.com/avatar/4a0a820ba6c1996bc37d64ce14606ad4?d=https%3A%2F%2Fidenticons.github.com%2Fbaa3c8588d9ab73deea280466d5db7e1.png","gravatar_id":"4a0a820ba6c1996bc37d64ce14606ad4","url":"https://api.github.com/users/habi","html_url":"https://github.com/habi","followers_url":"https://api.github.com/users/habi/followers","following_url":"https://api.github.com/users/habi/following{/other_user}","gists_url":"https://api.github.com/users/habi/gists{/gist_id}","starred_url":"https://api.github.com/users/habi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/habi/subscriptions","organizations_url":"https://api.github.com/users/habi/orgs","repos_url":"https://api.github.com/users/habi/repos","events_url":"https://api.github.com/users/habi/events{/privacy}","received_events_url":"https://api.github.com/users/habi/received_events","type":"User"},"id":"5965077","created_at":"2013-07-10T09:57:15Z","updated_at":"2013-07-10T09:57:40Z"},{"url":"https://api.github.com/gists/6394053","user":{"login":"glaubius","id":5349064,"avatar_url":"https://0.gravatar.com/avatar/ff2451755814a23845b19551371bb026?d=https%3A%2F%2Fidenticons.github.com%2Faa59a5980a33a834ee55c9f386e7c996.png","gravatar_id":"ff2451755814a23845b19551371bb026","url":"https://api.github.com/users/glaubius","html_url":"https://github.com/glaubius","followers_url":"https://api.github.com/users/glaubius/followers","following_url":"https://api.github.com/users/glaubius/following{/other_user}","gists_url":"https://api.github.com/users/glaubius/gists{/gist_id}","starred_url":"https://api.github.com/users/glaubius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glaubius/subscriptions","organizations_url":"https://api.github.com/users/glaubius/orgs","repos_url":"https://api.github.com/users/glaubius/repos","events_url":"https://api.github.com/users/glaubius/events{/privacy}","received_events_url":"https://api.github.com/users/glaubius/received_events","type":"User"},"id":"6394053","created_at":"2013-08-30T20:39:05Z","updated_at":"2013-08-30T20:39:05Z"},{"url":"https://api.github.com/gists/6463518","user":{"login":"janten","id":1794407,"avatar_url":"https://2.gravatar.com/avatar/44f5d723bf2ef2dac40327bfa9815989?d=https%3A%2F%2Fidenticons.github.com%2Fe177a89b246259b7b5a84411923e6881.png","gravatar_id":"44f5d723bf2ef2dac40327bfa9815989","url":"https://api.github.com/users/janten","html_url":"https://github.com/janten","followers_url":"https://api.github.com/users/janten/followers","following_url":"https://api.github.com/users/janten/following{/other_user}","gists_url":"https://api.github.com/users/janten/gists{/gist_id}","starred_url":"https://api.github.com/users/janten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janten/subscriptions","organizations_url":"https://api.github.com/users/janten/orgs","repos_url":"https://api.github.com/users/janten/repos","events_url":"https://api.github.com/users/janten/events{/privacy}","received_events_url":"https://api.github.com/users/janten/received_events","type":"User"},"id":"6463518","created_at":"2013-09-06T13:04:58Z","updated_at":"2013-09-06T13:04:58Z"}],"history":[{"user":{"login":"kogakure","id":5535,"avatar_url":"https://0.gravatar.com/avatar/b53f98d49e275e8387897de02c92288d?d=https%3A%2F%2Fidenticons.github.com%2F7ec69dd44416c46745f6edd947b470cd.png","gravatar_id":"b53f98d49e275e8387897de02c92288d","url":"https://api.github.com/users/kogakure","html_url":"https://github.com/kogakure","followers_url":"https://api.github.com/users/kogakure/followers","following_url":"https://api.github.com/users/kogakure/following{/other_user}","gists_url":"https://api.github.com/users/kogakure/gists{/gist_id}","starred_url":"https://api.github.com/users/kogakure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kogakure/subscriptions","organizations_url":"https://api.github.com/users/kogakure/orgs","repos_url":"https://api.github.com/users/kogakure/repos","events_url":"https://api.github.com/users/kogakure/events{/privacy}","received_events_url":"https://api.github.com/users/kogakure/received_events","type":"User"},"version":"3e0e8350f040f21811ceea13975086158ccae986","committed_at":"2010-06-25T06:52:37Z","change_status":{"total":3,"additions":2,"deletions":1},"url":"https://api.github.com/gists/149016/3e0e8350f040f21811ceea13975086158ccae986"},{"user":{"login":"kogakure","id":5535,"avatar_url":"https://0.gravatar.com/avatar/b53f98d49e275e8387897de02c92288d?d=https%3A%2F%2Fidenticons.github.com%2F7ec69dd44416c46745f6edd947b470cd.png","gravatar_id":"b53f98d49e275e8387897de02c92288d","url":"https://api.github.com/users/kogakure","html_url":"https://github.com/kogakure","followers_url":"https://api.github.com/users/kogakure/followers","following_url":"https://api.github.com/users/kogakure/following{/other_user}","gists_url":"https://api.github.com/users/kogakure/gists{/gist_id}","starred_url":"https://api.github.com/users/kogakure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kogakure/subscriptions","organizations_url":"https://api.github.com/users/kogakure/orgs","repos_url":"https://api.github.com/users/kogakure/repos","events_url":"https://api.github.com/users/kogakure/events{/privacy}","received_events_url":"https://api.github.com/users/kogakure/received_events","type":"User"},"version":"a3ce60041fe20410fc55d141e77a25d26e1a562a","committed_at":"2009-07-17T11:37:43Z","change_status":{"total":22,"additions":22,"deletions":0},"url":"https://api.github.com/gists/149016/a3ce60041fe20410fc55d141e77a25d26e1a562a"}]} + +https +GET +api.github.com +None +/gists/149016/comments/4565 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4887'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'd7e4322b-0ea1-4673-8e35-b8c763037ecd'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1189'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 29 Aug 2013 01:07:03 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"923dd32a449cce56dae93d3438b9451a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:10 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/gists/149016/comments/4565","id":4565,"user":{"login":"cflewis","id":43708,"avatar_url":"https://2.gravatar.com/avatar/5f986018993d9f078927fe29ee912cf2?d=https%3A%2F%2Fidenticons.github.com%2F287915711d06ce6d90e2c18e1d89d3a6.png","gravatar_id":"5f986018993d9f078927fe29ee912cf2","url":"https://api.github.com/users/cflewis","html_url":"https://github.com/cflewis","followers_url":"https://api.github.com/users/cflewis/followers","following_url":"https://api.github.com/users/cflewis/following{/other_user}","gists_url":"https://api.github.com/users/cflewis/gists{/gist_id}","starred_url":"https://api.github.com/users/cflewis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cflewis/subscriptions","organizations_url":"https://api.github.com/users/cflewis/orgs","repos_url":"https://api.github.com/users/cflewis/repos","events_url":"https://api.github.com/users/cflewis/events{/privacy}","received_events_url":"https://api.github.com/users/cflewis/received_events","type":"User"},"created_at":"2010-06-24T21:50:00Z","updated_at":"2010-08-04T09:19:53Z","body":"Excellent! Thanks for this!\n\nI might consider adding '*.synctex.gz'. "} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/git/commits/be37b8a7f3a68631c32672dcd84d9eba27438ee6 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4886'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'deb2e31a-4791-4322-bb88-d697b2b31e72'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '952'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Nov 2012 19:06:01 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"b9013239d62338e81f6ec48bae78699e"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:11 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"sha":"be37b8a7f3a68631c32672dcd84d9eba27438ee6","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/be37b8a7f3a68631c32672dcd84d9eba27438ee6","html_url":"https://github.com/jacquev6/PyGithub/commits/be37b8a7f3a68631c32672dcd84d9eba27438ee6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2012-11-22T19:06:01Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2012-11-22T19:06:01Z"},"tree":{"sha":"6f7c2d8c66d78863f7b91792deaead619799a1ce","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6f7c2d8c66d78863f7b91792deaead619799a1ce"},"message":"Measure coverage simply in publish.sh","parents":[{"sha":"3026eb708fa0a6c669d3829e685663b8a161488b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/3026eb708fa0a6c669d3829e685663b8a161488b","html_url":"https://github.com/jacquev6/PyGithub/commits/3026eb708fa0a6c669d3829e685663b8a161488b"}]} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/git/trees/6f7c2d8c66d78863f7b91792deaead619799a1ce +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4885'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '43062d85-44e9-4b72-ba51-a94ccd029fd7'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '2784'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:05 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"feb5059cac897bdd13fd1205785f865c"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:12 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"sha":"6f7c2d8c66d78863f7b91792deaead619799a1ce","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6f7c2d8c66d78863f7b91792deaead619799a1ce","tree":[{"mode":"100644","type":"blob","sha":"55cb5a84a96705c9b23dd6c9b5095aee9284b30a","path":".gitignore","size":83,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/55cb5a84a96705c9b23dd6c9b5095aee9284b30a"},{"mode":"100644","type":"blob","sha":"d1258c3e8ccd002e6ec45473a8fdedc70137c569","path":".travis.yml","size":345,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/d1258c3e8ccd002e6ec45473a8fdedc70137c569"},{"mode":"100644","type":"blob","sha":"94a9ed024d3859793618152ea559a168bbcbb5e2","path":"COPYING","size":35147,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/94a9ed024d3859793618152ea559a168bbcbb5e2"},{"mode":"100644","type":"blob","sha":"65c5ca88a67c30becee01c5a8816d964b03862f9","path":"COPYING.LESSER","size":7651,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/65c5ca88a67c30becee01c5a8816d964b03862f9"},{"mode":"100644","type":"blob","sha":"efbb5203c0bb41b4921999a301a5a35e06e9a8f2","path":"Contributing.md","size":969,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/efbb5203c0bb41b4921999a301a5a35e06e9a8f2"},{"mode":"100644","type":"blob","sha":"1344507c245dd59bc972682cb43163176226c597","path":"ReadMe.md","size":4666,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/1344507c245dd59bc972682cb43163176226c597"},{"mode":"040000","type":"tree","sha":"d612362a2609ca747a4d6526ae2cbdcd7df19600","path":"doc","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d612362a2609ca747a4d6526ae2cbdcd7df19600"},{"mode":"040000","type":"tree","sha":"b19632adf7f22ba0561b5c2511cd61b904ede4ca","path":"github","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b19632adf7f22ba0561b5c2511cd61b904ede4ca"},{"mode":"100755","type":"blob","sha":"f3adf2bddb82857f356e8b6a5ea1da8ea35a6c68","path":"publish.sh","size":942,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/f3adf2bddb82857f356e8b6a5ea1da8ea35a6c68"},{"mode":"100644","type":"blob","sha":"609f912230aec315ba1d3c745e472fbc6393eefa","path":"python25-requirements.txt","size":23,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/609f912230aec315ba1d3c745e472fbc6393eefa"},{"mode":"100644","type":"blob","sha":"9a23970d3adfeed83eec1d89fbe27062de0b1bfa","path":"python26-requirements.txt","size":10,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/9a23970d3adfeed83eec1d89fbe27062de0b1bfa"},{"mode":"100755","type":"blob","sha":"0d8eea784e5bce67efd2f25c6ece0cd573896065","path":"setup.py","size":2481,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/0d8eea784e5bce67efd2f25c6ece0cd573896065"}]} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/git/blobs/681fb61f1761743a02f5c790f1c762cbfe8cfad1 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4884'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'cc0f0761-fe8d-4ccc-bc23-3348ed8945d5'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '299'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"01162d231bc8dfd76e35f833ecebaa0e"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:14 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"sha":"681fb61f1761743a02f5c790f1c762cbfe8cfad1","size":71,"url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/681fb61f1761743a02f5c790f1c762cbfe8cfad1","content":"Ki5weWMKR2l0aHViQ3JlZGVudGlhbHMucHkKL2Rpc3QvCi9idWlsZC8KL01B\nTklGRVNUCi9QeUdpdGh1Yi5lZ2ctaW5mby8=\n","encoding":"base64"} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/git/refs/tags/v1.17.0 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4883'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'eb4e50d0-67c7-41f4-977e-fd091a501b16'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '282'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:05 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"feb5059cac897bdd13fd1205785f865c"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:15 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"ref":"refs/tags/v1.17.0","url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs/tags/v1.17.0","object":{"sha":"a08db4387b1294359e283f2a5c2c79584e23450f","type":"tag","url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags/a08db4387b1294359e283f2a5c2c79584e23450f"}} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/issues/188 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4882'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '8ca72976-9b88-4917-8fd7-1aa29db18369'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '5443'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:21 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/events","html_url":"https://github.com/jacquev6/PyGithub/issues/188","id":17736533,"number":188,"title":"Getting the status of GitHub","user":{"login":"ruxandraburtica","id":797922,"avatar_url":"https://2.gravatar.com/avatar/5703c5907fc67b679be40fd307b07733?d=https%3A%2F%2Fidenticons.github.com%2F470a720db37e19afad67c34e30ffcd85.png","gravatar_id":"5703c5907fc67b679be40fd307b07733","url":"https://api.github.com/users/ruxandraburtica","html_url":"https://github.com/ruxandraburtica","followers_url":"https://api.github.com/users/ruxandraburtica/followers","following_url":"https://api.github.com/users/ruxandraburtica/following{/other_user}","gists_url":"https://api.github.com/users/ruxandraburtica/gists{/gist_id}","starred_url":"https://api.github.com/users/ruxandraburtica/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruxandraburtica/subscriptions","organizations_url":"https://api.github.com/users/ruxandraburtica/orgs","repos_url":"https://api.github.com/users/ruxandraburtica/repos","events_url":"https://api.github.com/users/ruxandraburtica/events{/privacy}","received_events_url":"https://api.github.com/users/ruxandraburtica/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":0,"closed_issues":3,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-06T09:42:02Z","due_on":null},"comments":2,"created_at":"2013-08-07T08:57:49Z","updated_at":"2013-09-06T09:11:57Z","closed_at":"2013-09-06T09:11:57Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Maybe I haven't found it, but it would be very useful to have methods for checking the status of the GitHub API (https://status.github.com/api)","closed_by":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"}} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/issues/comments/22686536 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4881'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '49eb6041-cb09-423d-b769-6a927988ef00'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1396'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:22 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/22686536","html_url":"https://github.com/jacquev6/PyGithub/issues/188#issuecomment-22686536","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188","id":22686536,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-08-15T05:53:37Z","updated_at":"2013-08-15T05:53:37Z","body":"This seems to be a good idea! I will try to do it in the version after the next one."} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/issues/188/events +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4880'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '67185958-5c65-481a-b8fd-86d28ceea272'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '3480'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:23 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +[{"id":60946408,"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/60946408","actor":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"event":"assigned","commit_id":null,"created_at":"2013-08-15T05:55:32Z"},{"id":64178794,"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/64178794","actor":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"event":"referenced","commit_id":"c819580ce872f251e8ec23deee95d9fb15ca19c9","created_at":"2013-09-06T09:05:10Z"},{"id":64179485,"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/64179485","actor":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"event":"closed","commit_id":null,"created_at":"2013-09-06T09:11:57Z"}] + +https +GET +api.github.com +None +/gitignore/templates/Python +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4879'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '8276ab6d-803c-4421-9a34-ecc99ff8ddec'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '367'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"7870725c2e426a0c93146449ebc6f176"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:26 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"name":"Python","source":"*.py[cod]\n\n# C extensions\n*.so\n\n# Packages\n*.egg\n*.egg-info\ndist\nbuild\neggs\nparts\nbin\nvar\nsdist\ndevelop-eggs\n.installed.cfg\nlib\nlib64\n\n# Installer logs\npip-log.txt\n\n# Unit test / coverage reports\n.coverage\n.tox\nnosetests.xml\n\n# Translations\n*.mo\n\n# Mr Developer\n.mr.developer.cfg\n.project\n.pydevproject\n"} + +https +GET +api.github.com +None +/teams/141487 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4878'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '7cb4a0fc-0363-4bfb-b09e-68f426c6e359'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '276'), ('server', 'GitHub.com'), ('last-modified', 'Sat, 20 Oct 2007 11:24:19 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"a4af9b5fe3ebc7d9ec2ecd4a637a4863"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:27 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"name":"Owners","id":141487,"slug":"owners","permission":"admin","url":"https://api.github.com/teams/141487","members_url":"https://api.github.com/teams/141487/members{/member}","repositories_url":"https://api.github.com/teams/141487/repos","members_count":1,"repos_count":1} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/labels/Bug +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4877'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'ebdad7b3-e224-4923-a10e-2db7e1e75530'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '97'), ('server', 'GitHub.com'), ('last-modified', 'Sat, 20 Oct 2007 11:24:19 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"a4af9b5fe3ebc7d9ec2ecd4a637a4863"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:28 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","name":"Bug","color":"e10c02"} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/pulls/31 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4876'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '571ddd42-66bf-460c-a9a5-bb5f62ffe987'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '11337'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:29 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31","id":1436215,"html_url":"https://github.com/jacquev6/PyGithub/pull/31","diff_url":"https://github.com/jacquev6/PyGithub/pull/31.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/31.patch","issue_url":"https://github.com/jacquev6/PyGithub/pull/31","number":31,"state":"closed","title":"Title edited by PyGithub","user":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"body":"Body edited by PyGithub","created_at":"2012-05-27T09:25:36Z","updated_at":"2012-11-03T08:19:40Z","closed_at":"2012-05-27T10:29:07Z","merged_at":"2012-05-27T10:29:07Z","merge_commit_sha":"28ae6dd10ebccd5eaf8db8dacb5b699ee7f4a663","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":null,"commits_url":"https://github.com/jacquev6/PyGithub/pull/31/commits","review_comments_url":"https://github.com/jacquev6/PyGithub/pull/31/comments","review_comment_url":"/repos/jacquev6/PyGithub/pulls/comments/{number}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/31/comments","head":{"label":"BeaverSoftware:master","ref":"master","sha":"8a4f306d4b223682dd19410d4a9150636ebe4206","user":{"login":"BeaverSoftware","id":1424031,"avatar_url":"https://2.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https%3A%2F%2Fidenticons.github.com%2Fde8dec416975d0a85845b1b88385b9d5.png","gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","url":"https://api.github.com/users/BeaverSoftware","html_url":"https://github.com/BeaverSoftware","followers_url":"https://api.github.com/users/BeaverSoftware/followers","following_url":"https://api.github.com/users/BeaverSoftware/following{/other_user}","gists_url":"https://api.github.com/users/BeaverSoftware/gists{/gist_id}","starred_url":"https://api.github.com/users/BeaverSoftware/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/BeaverSoftware/subscriptions","organizations_url":"https://api.github.com/users/BeaverSoftware/orgs","repos_url":"https://api.github.com/users/BeaverSoftware/repos","events_url":"https://api.github.com/users/BeaverSoftware/events{/privacy}","received_events_url":"https://api.github.com/users/BeaverSoftware/received_events","type":"Organization"},"repo":null},"base":{"label":"jacquev6:topic/RewriteWithGeneratedCode","ref":"topic/RewriteWithGeneratedCode","sha":"ed866fc43833802ab553e5ff8581c81bb00dd433","user":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"repo":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-09-06T12:41:05Z","pushed_at":"2013-09-06T12:41:05Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":820,"watchers_count":256,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":76,"mirror_url":null,"open_issues_count":15,"forks":76,"open_issues":15,"watchers":256,"master_branch":"master","default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31"},"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/31/comments"},"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31/comments"}},"merged":true,"mergeable":false,"mergeable_state":"dirty","merged_by":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"comments":1,"review_comments":1,"commits":3,"additions":511,"deletions":384,"changed_files":45} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/pulls/comments/1580134 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4875'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '677bae62-e9e4-4420-a6f7-5572ecd844c9'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '2269'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:31 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/1580134","id":1580134,"body":"Review comment created for PyGithub","diff_hunk":"@@ -70,7 +70,7 @@ def __useAttributes( self, attributes ):\n \n # @todo No need to check if attribute is in attributes when attribute is mandatory\n {% for attribute in class.attributes|dictsort:\"name\" %}\n- if \"{{ attribute.name }}\" in attributes and attributes[ \"{{ attribute.name }}\" ] is not None:\n+ if \"{{ attribute.name }}\" in attributes and attributes[ \"{{ attribute.name }}\" ] is not None: # pragma no branch","path":"codegen/templates/GithubObject.py","position":5,"original_position":5,"commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","original_commit_id":"8a4f306d4b223682dd19410d4a9150636ebe4206","user":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2012-09-11T20:06:32Z","updated_at":"2012-09-11T20:06:32Z","html_url":"https://github.com/jacquev6/PyGithub/pull/31#discussion_r1580134","pull_request_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31","_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/1580134"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/31#discussion_r1580134"},"pull_request":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/31"}}} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/pulls/31/files +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4874'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '2e2d4c57-e963-4381-985e-9c6ca34a5692'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '175951'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:32 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +[{"sha":"fb4855905c4825612bdd2db42346833c203e77c8","filename":"codegen/templates/GithubObject.py","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/codegen/templates/GithubObject.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/codegen/templates/GithubObject.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/codegen/templates/GithubObject.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -70,7 +70,7 @@ def __useAttributes( self, attributes ):\n \n # @todo No need to check if attribute is in attributes when attribute is mandatory\n {% for attribute in class.attributes|dictsort:\"name\" %}\n- if \"{{ attribute.name }}\" in attributes and attributes[ \"{{ attribute.name }}\" ] is not None:\n+ if \"{{ attribute.name }}\" in attributes and attributes[ \"{{ attribute.name }}\" ] is not None: # pragma no branch\n \n {% if attribute.type.cardinality == \"scalar\" %}\n {% if attribute.type.simple %}"},{"sha":"502f657077e67378a09cd923d8b7629a81469d81","filename":"src/github/AuthenticatedUser.py","status":"modified","additions":25,"deletions":25,"changes":50,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/AuthenticatedUser.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/AuthenticatedUser.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/AuthenticatedUser.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -568,78 +568,78 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"bio\", \"blog\", \"collaborators\", \"company\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"hireable\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], ( str, unicode ) )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"bio\" in attributes and attributes[ \"bio\" ] is not None:\n+ if \"bio\" in attributes and attributes[ \"bio\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"bio\" ], ( str, unicode ) )\n self.__bio = attributes[ \"bio\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], ( str, unicode ) )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], ( str, unicode ) )\n self.__company = attributes[ \"company\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], ( str, unicode ) )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], ( str, unicode ) )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], ( str, unicode ) )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None:\n+ if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"hireable\" ], bool )\n self.__hireable = attributes[ \"hireable\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], ( str, unicode ) )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], ( str, unicode ) )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], ( str, unicode ) )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], ( str, unicode ) )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], ( str, unicode ) )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"2c2e7ad5c7d5f5f6bbb16bc4149cc2388b870d63","filename":"src/github/Authorization.py","status":"modified","additions":9,"deletions":9,"changes":18,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Authorization.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Authorization.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Authorization.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -117,21 +117,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"app\", \"created_at\", \"id\", \"note\", \"note_url\", \"scopes\", \"token\", \"updated_at\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"app\" in attributes and attributes[ \"app\" ] is not None:\n+ if \"app\" in attributes and attributes[ \"app\" ] is not None: # pragma no branch\n self.__app = attributes[ \"app\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"note\" in attributes and attributes[ \"note\" ] is not None:\n+ if \"note\" in attributes and attributes[ \"note\" ] is not None: # pragma no branch\n self.__note = attributes[ \"note\" ]\n- if \"note_url\" in attributes and attributes[ \"note_url\" ] is not None:\n+ if \"note_url\" in attributes and attributes[ \"note_url\" ] is not None: # pragma no branch\n self.__note_url = attributes[ \"note_url\" ]\n- if \"scopes\" in attributes and attributes[ \"scopes\" ] is not None:\n+ if \"scopes\" in attributes and attributes[ \"scopes\" ] is not None: # pragma no branch\n self.__scopes = attributes[ \"scopes\" ]\n- if \"token\" in attributes and attributes[ \"token\" ] is not None:\n+ if \"token\" in attributes and attributes[ \"token\" ] is not None: # pragma no branch\n self.__token = attributes[ \"token\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]"},{"sha":"96ae96478e61087c378e8f5caaf8064ba3b5d9ff","filename":"src/github/Branch.py","status":"modified","additions":2,"deletions":2,"changes":4,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Branch.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Branch.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Branch.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -28,9 +28,9 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"commit\", \"name\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = Commit.Commit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], ( str, unicode ) )\n self.__name = attributes[ \"name\" ]"},{"sha":"bef139283f26710febfd03d3cce3a9193dbbde22","filename":"src/github/Commit.py","status":"modified","additions":8,"deletions":8,"changes":16,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Commit.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Commit.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Commit.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -120,33 +120,33 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"author\", \"commit\", \"committer\", \"files\", \"parents\", \"sha\", \"stats\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"author\" in attributes and attributes[ \"author\" ] is not None:\n+ if \"author\" in attributes and attributes[ \"author\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"author\" ], dict )\n self.__author = NamedUser.NamedUser( self.__requester, attributes[ \"author\" ], completion = LazyCompletion )\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = GitCommit.GitCommit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"committer\" in attributes and attributes[ \"committer\" ] is not None:\n+ if \"committer\" in attributes and attributes[ \"committer\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committer\" ], dict )\n self.__committer = NamedUser.NamedUser( self.__requester, attributes[ \"committer\" ], completion = LazyCompletion )\n- if \"files\" in attributes and attributes[ \"files\" ] is not None:\n+ if \"files\" in attributes and attributes[ \"files\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"files\" ], list ) and ( len( attributes[ \"files\" ] ) == 0 or isinstance( attributes[ \"files\" ][ 0 ], dict ) )\n self.__files = [\n CommitFile.CommitFile( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"files\" ]\n ]\n- if \"parents\" in attributes and attributes[ \"parents\" ] is not None:\n+ if \"parents\" in attributes and attributes[ \"parents\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parents\" ], list ) and ( len( attributes[ \"parents\" ] ) == 0 or isinstance( attributes[ \"parents\" ][ 0 ], dict ) )\n self.__parents = [\n Commit( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"parents\" ]\n ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], ( str, unicode ) )\n self.__sha = attributes[ \"sha\" ]\n- if \"stats\" in attributes and attributes[ \"stats\" ] is not None:\n+ if \"stats\" in attributes and attributes[ \"stats\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"stats\" ], dict )\n self.__stats = CommitStats.CommitStats( self.__requester, attributes[ \"stats\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"6e95e0bac8d227daedbcff076a182a762f4e7229","filename":"src/github/CommitComment.py","status":"modified","additions":11,"deletions":11,"changes":22,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitComment.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitComment.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/CommitComment.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -121,36 +121,36 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"commit_id\", \"created_at\", \"html_url\", \"id\", \"line\", \"path\", \"position\", \"updated_at\", \"url\", \"user\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"body\" ], ( str, unicode ) )\n self.__body = attributes[ \"body\" ]\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit_id\" ], ( str, unicode ) )\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], ( str, unicode ) )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], ( str, unicode ) )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"line\" in attributes and attributes[ \"line\" ] is not None:\n+ if \"line\" in attributes and attributes[ \"line\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"line\" ], int )\n self.__line = attributes[ \"line\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"path\" ], ( str, unicode ) )\n self.__path = attributes[ \"path\" ]\n- if \"position\" in attributes and attributes[ \"position\" ] is not None:\n+ if \"position\" in attributes and attributes[ \"position\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"position\" ], int )\n self.__position = attributes[ \"position\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], ( str, unicode ) )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )"},{"sha":"27185b984a57346b0ef4f591b08f9398b1d1cb83","filename":"src/github/CommitFile.py","status":"modified","additions":9,"deletions":9,"changes":18,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitFile.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitFile.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/CommitFile.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -62,21 +62,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"blob_url\", \"changes\", \"deletions\", \"filename\", \"patch\", \"raw_url\", \"sha\", \"status\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None:\n+ if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None: # pragma no branch\n self.__blob_url = attributes[ \"blob_url\" ]\n- if \"changes\" in attributes and attributes[ \"changes\" ] is not None:\n+ if \"changes\" in attributes and attributes[ \"changes\" ] is not None: # pragma no branch\n self.__changes = attributes[ \"changes\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"filename\" in attributes and attributes[ \"filename\" ] is not None:\n+ if \"filename\" in attributes and attributes[ \"filename\" ] is not None: # pragma no branch\n self.__filename = attributes[ \"filename\" ]\n- if \"patch\" in attributes and attributes[ \"patch\" ] is not None:\n+ if \"patch\" in attributes and attributes[ \"patch\" ] is not None: # pragma no branch\n self.__patch = attributes[ \"patch\" ]\n- if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None:\n+ if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None: # pragma no branch\n self.__raw_url = attributes[ \"raw_url\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n self.__sha = attributes[ \"sha\" ]\n- if \"status\" in attributes and attributes[ \"status\" ] is not None:\n+ if \"status\" in attributes and attributes[ \"status\" ] is not None: # pragma no branch\n self.__status = attributes[ \"status\" ]"},{"sha":"772d0eedaf7cf55d3e3e7c6ad040d17de3ec5f80","filename":"src/github/CommitStats.py","status":"modified","additions":3,"deletions":3,"changes":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitStats.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/CommitStats.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/CommitStats.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"deletions\", \"total\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"additions\" ], int )\n self.__additions = attributes[ \"additions\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"deletions\" ], int )\n self.__deletions = attributes[ \"deletions\" ]\n- if \"total\" in attributes and attributes[ \"total\" ] is not None:\n+ if \"total\" in attributes and attributes[ \"total\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total\" ], int )\n self.__total = attributes[ \"total\" ]"},{"sha":"28c49231bb6c27f102b9f5d42505764cdcb79089","filename":"src/github/Download.py","status":"modified","additions":20,"deletions":20,"changes":40,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Download.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Download.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Download.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -162,43 +162,43 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"accesskeyid\", \"acl\", \"bucket\", \"content_type\", \"created_at\", \"description\", \"download_count\", \"expirationdate\", \"html_url\", \"id\", \"mime_type\", \"name\", \"path\", \"policy\", \"prefix\", \"redirect\", \"s3_url\", \"signature\", \"size\", \"url\", \"x-amz-meta-content-disposition\" ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"accesskeyid\" in attributes and attributes[ \"accesskeyid\" ] is not None:\n+ if \"accesskeyid\" in attributes and attributes[ \"accesskeyid\" ] is not None: # pragma no branch\n self.__accesskeyid = attributes[ \"accesskeyid\" ]\n- if \"acl\" in attributes and attributes[ \"acl\" ] is not None:\n+ if \"acl\" in attributes and attributes[ \"acl\" ] is not None: # pragma no branch\n self.__acl = attributes[ \"acl\" ]\n- if \"bucket\" in attributes and attributes[ \"bucket\" ] is not None:\n+ if \"bucket\" in attributes and attributes[ \"bucket\" ] is not None: # pragma no branch\n self.__bucket = attributes[ \"bucket\" ]\n- if \"content_type\" in attributes and attributes[ \"content_type\" ] is not None:\n+ if \"content_type\" in attributes and attributes[ \"content_type\" ] is not None: # pragma no branch\n self.__content_type = attributes[ \"content_type\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n self.__description = attributes[ \"description\" ]\n- if \"download_count\" in attributes and attributes[ \"download_count\" ] is not None:\n+ if \"download_count\" in attributes and attributes[ \"download_count\" ] is not None: # pragma no branch\n self.__download_count = attributes[ \"download_count\" ]\n- if \"expirationdate\" in attributes and attributes[ \"expirationdate\" ] is not None:\n+ if \"expirationdate\" in attributes and attributes[ \"expirationdate\" ] is not None: # pragma no branch\n self.__expirationdate = attributes[ \"expirationdate\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"mime_type\" in attributes and attributes[ \"mime_type\" ] is not None:\n+ if \"mime_type\" in attributes and attributes[ \"mime_type\" ] is not None: # pragma no branch\n self.__mime_type = attributes[ \"mime_type\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n self.__path = attributes[ \"path\" ]\n- if \"policy\" in attributes and attributes[ \"policy\" ] is not None:\n+ if \"policy\" in attributes and attributes[ \"policy\" ] is not None: # pragma no branch\n self.__policy = attributes[ \"policy\" ]\n- if \"prefix\" in attributes and attributes[ \"prefix\" ] is not None:\n+ if \"prefix\" in attributes and attributes[ \"prefix\" ] is not None: # pragma no branch\n self.__prefix = attributes[ \"prefix\" ]\n- if \"redirect\" in attributes and attributes[ \"redirect\" ] is not None:\n+ if \"redirect\" in attributes and attributes[ \"redirect\" ] is not None: # pragma no branch\n self.__redirect = attributes[ \"redirect\" ]\n- if \"s3_url\" in attributes and attributes[ \"s3_url\" ] is not None:\n+ if \"s3_url\" in attributes and attributes[ \"s3_url\" ] is not None: # pragma no branch\n self.__s3_url = attributes[ \"s3_url\" ]\n- if \"signature\" in attributes and attributes[ \"signature\" ] is not None:\n+ if \"signature\" in attributes and attributes[ \"signature\" ] is not None: # pragma no branch\n self.__signature = attributes[ \"signature\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n self.__size = attributes[ \"size\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]"},{"sha":"f04618e50b93c36d1b454fd3c04eda2304c3f953","filename":"src/github/Event.py","status":"modified","additions":8,"deletions":8,"changes":16,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Event.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Event.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Event.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -60,22 +60,22 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"actor\", \"created_at\", \"id\", \"org\", \"payload\", \"public\", \"repo\", \"type\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"actor\" in attributes and attributes[ \"actor\" ] is not None:\n+ if \"actor\" in attributes and attributes[ \"actor\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"actor\" ], dict )\n self.__actor = NamedUser.NamedUser( self.__requester, attributes[ \"actor\" ], completion = LazyCompletion )\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"org\" in attributes and attributes[ \"org\" ] is not None:\n+ if \"org\" in attributes and attributes[ \"org\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"org\" ], dict )\n self.__org = Organization.Organization( self.__requester, attributes[ \"org\" ], completion = LazyCompletion )\n- if \"payload\" in attributes and attributes[ \"payload\" ] is not None:\n+ if \"payload\" in attributes and attributes[ \"payload\" ] is not None: # pragma no branch\n self.__payload = attributes[ \"payload\" ]\n- if \"public\" in attributes and attributes[ \"public\" ] is not None:\n+ if \"public\" in attributes and attributes[ \"public\" ] is not None: # pragma no branch\n self.__public = attributes[ \"public\" ]\n- if \"repo\" in attributes and attributes[ \"repo\" ] is not None:\n+ if \"repo\" in attributes and attributes[ \"repo\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"repo\" ], dict )\n self.__repo = Repository.Repository( self.__requester, attributes[ \"repo\" ], completion = LazyCompletion )\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n self.__type = attributes[ \"type\" ]"},{"sha":"56bd080c75f4063321baab79027bddbf48a23063","filename":"src/github/Gist.py","status":"modified","additions":15,"deletions":15,"changes":30,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Gist.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Gist.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Gist.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -220,53 +220,53 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"comments\", \"created_at\", \"description\", \"files\", \"fork_of\", \"forks\", \"git_pull_url\", \"git_push_url\", \"history\", \"html_url\", \"id\", \"public\", \"updated_at\", \"url\", \"user\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"comments\" ], int )\n self.__comments = attributes[ \"comments\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], ( str, unicode ) )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], ( str, unicode ) )\n self.__description = attributes[ \"description\" ]\n- if \"files\" in attributes and attributes[ \"files\" ] is not None:\n+ if \"files\" in attributes and attributes[ \"files\" ] is not None: # pragma no branch\n self.__files = attributes[ \"files\" ]\n- if \"fork_of\" in attributes and attributes[ \"fork_of\" ] is not None:\n+ if \"fork_of\" in attributes and attributes[ \"fork_of\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"fork_of\" ], dict )\n self.__fork_of = Gist( self.__requester, attributes[ \"fork_of\" ], completion = LazyCompletion )\n- if \"forks\" in attributes and attributes[ \"forks\" ] is not None:\n+ if \"forks\" in attributes and attributes[ \"forks\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"forks\" ], list ) and ( len( attributes[ \"forks\" ] ) == 0 or isinstance( attributes[ \"forks\" ][ 0 ], dict ) )\n self.__forks = [\n Gist( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"forks\" ]\n ]\n- if \"git_pull_url\" in attributes and attributes[ \"git_pull_url\" ] is not None:\n+ if \"git_pull_url\" in attributes and attributes[ \"git_pull_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_pull_url\" ], ( str, unicode ) )\n self.__git_pull_url = attributes[ \"git_pull_url\" ]\n- if \"git_push_url\" in attributes and attributes[ \"git_push_url\" ] is not None:\n+ if \"git_push_url\" in attributes and attributes[ \"git_push_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_push_url\" ], ( str, unicode ) )\n self.__git_push_url = attributes[ \"git_push_url\" ]\n- if \"history\" in attributes and attributes[ \"history\" ] is not None:\n+ if \"history\" in attributes and attributes[ \"history\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"history\" ], list ) and ( len( attributes[ \"history\" ] ) == 0 or isinstance( attributes[ \"history\" ][ 0 ], dict ) )\n self.__history = [\n GistHistoryState.GistHistoryState( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"history\" ]\n ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], ( str, unicode ) )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], ( str, unicode ) )\n self.__id = attributes[ \"id\" ]\n- if \"public\" in attributes and attributes[ \"public\" ] is not None:\n+ if \"public\" in attributes and attributes[ \"public\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public\" ], bool )\n self.__public = attributes[ \"public\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], ( str, unicode ) )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )"},{"sha":"a595ca288f230fbe30416bc854cc8df51682fb65","filename":"src/github/GistComment.py","status":"modified","additions":6,"deletions":6,"changes":12,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistComment.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistComment.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GistComment.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -68,16 +68,16 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"created_at\", \"id\", \"updated_at\", \"url\", \"user\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )"},{"sha":"d325a2b14180a808327beb752c8365467ff4872f","filename":"src/github/GistHistoryState.py","status":"modified","additions":5,"deletions":5,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistHistoryState.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GistHistoryState.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GistHistoryState.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -44,18 +44,18 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"change_status\", \"committed_at\", \"url\", \"user\", \"version\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"change_status\" in attributes and attributes[ \"change_status\" ] is not None:\n+ if \"change_status\" in attributes and attributes[ \"change_status\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"change_status\" ], dict )\n self.__change_status = CommitStats.CommitStats( self.__requester, attributes[ \"change_status\" ], completion = LazyCompletion )\n- if \"committed_at\" in attributes and attributes[ \"committed_at\" ] is not None:\n+ if \"committed_at\" in attributes and attributes[ \"committed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committed_at\" ], ( str, unicode ) )\n self.__committed_at = attributes[ \"committed_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )\n- if \"version\" in attributes and attributes[ \"version\" ] is not None:\n+ if \"version\" in attributes and attributes[ \"version\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"version\" ], ( str, unicode ) )\n self.__version = attributes[ \"version\" ]"},{"sha":"2c710f56cfbe950099e74565680aee6ef2a20402","filename":"src/github/GitAuthor.py","status":"modified","additions":3,"deletions":3,"changes":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitAuthor.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitAuthor.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GitAuthor.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"date\", \"email\", \"name\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"date\" in attributes and attributes[ \"date\" ] is not None:\n+ if \"date\" in attributes and attributes[ \"date\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"date\" ], ( str, unicode ) )\n self.__date = attributes[ \"date\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], ( str, unicode ) )\n self.__email = attributes[ \"email\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], ( str, unicode ) )\n self.__name = attributes[ \"name\" ]"},{"sha":"4defbde8b71269490ca951e836b5b1e1c540cb64","filename":"src/github/GitBlob.py","status":"modified","additions":5,"deletions":5,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitBlob.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitBlob.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GitBlob.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -42,18 +42,18 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"content\", \"encoding\", \"sha\", \"size\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"content\" in attributes and attributes[ \"content\" ] is not None:\n+ if \"content\" in attributes and attributes[ \"content\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"content\" ], ( str, unicode ) )\n self.__content = attributes[ \"content\" ]\n- if \"encoding\" in attributes and attributes[ \"encoding\" ] is not None:\n+ if \"encoding\" in attributes and attributes[ \"encoding\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"encoding\" ], ( str, unicode ) )\n self.__encoding = attributes[ \"encoding\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], ( str, unicode ) )\n self.__sha = attributes[ \"sha\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"13382cd7ac3c062fdb71e0873b223dbdd18f244e","filename":"src/github/GitCommit.py","status":"modified","additions":7,"deletions":7,"changes":14,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitCommit.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitCommit.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GitCommit.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -55,27 +55,27 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"author\", \"committer\", \"message\", \"parents\", \"sha\", \"tree\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"author\" in attributes and attributes[ \"author\" ] is not None:\n+ if \"author\" in attributes and attributes[ \"author\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"author\" ], dict )\n self.__author = GitAuthor.GitAuthor( self.__requester, attributes[ \"author\" ], completion = LazyCompletion )\n- if \"committer\" in attributes and attributes[ \"committer\" ] is not None:\n+ if \"committer\" in attributes and attributes[ \"committer\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"committer\" ], dict )\n self.__committer = GitAuthor.GitAuthor( self.__requester, attributes[ \"committer\" ], completion = LazyCompletion )\n- if \"message\" in attributes and attributes[ \"message\" ] is not None:\n+ if \"message\" in attributes and attributes[ \"message\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"message\" ], ( str, unicode ) )\n self.__message = attributes[ \"message\" ]\n- if \"parents\" in attributes and attributes[ \"parents\" ] is not None:\n+ if \"parents\" in attributes and attributes[ \"parents\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parents\" ], list ) and ( len( attributes[ \"parents\" ] ) == 0 or isinstance( attributes[ \"parents\" ][ 0 ], dict ) )\n self.__parents = [\n GitCommit( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"parents\" ]\n ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], ( str, unicode ) )\n self.__sha = attributes[ \"sha\" ]\n- if \"tree\" in attributes and attributes[ \"tree\" ] is not None:\n+ if \"tree\" in attributes and attributes[ \"tree\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tree\" ], dict )\n self.__tree = GitTree.GitTree( self.__requester, attributes[ \"tree\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"05e3067c1014ce22ced1faca83a74fa9215fd97e","filename":"src/github/GitObject.py","status":"modified","additions":3,"deletions":3,"changes":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitObject.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitObject.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GitObject.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"sha\", \"type\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], ( str, unicode ) )\n self.__sha = attributes[ \"sha\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], ( str, unicode ) )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"bfc8d91335cf0f81694a81ce534d79988f1bb0fe","filename":"src/github/GitRef.py","status":"modified","additions":3,"deletions":3,"changes":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitRef.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitRef.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GitRef.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -55,12 +55,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"object\", \"ref\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"object\" in attributes and attributes[ \"object\" ] is not None:\n+ if \"object\" in attributes and attributes[ \"object\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"object\" ], dict )\n self.__object = GitObject.GitObject( self.__requester, attributes[ \"object\" ], completion = LazyCompletion )\n- if \"ref\" in attributes and attributes[ \"ref\" ] is not None:\n+ if \"ref\" in attributes and attributes[ \"ref\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"ref\" ], ( str, unicode ) )\n self.__ref = attributes[ \"ref\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"532d3a056c2490883f826da7369067a24d001055","filename":"src/github/GitTag.py","status":"modified","additions":6,"deletions":6,"changes":12,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTag.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTag.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GitTag.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -49,21 +49,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"message\", \"object\", \"sha\", \"tag\", \"tagger\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"message\" in attributes and attributes[ \"message\" ] is not None:\n+ if \"message\" in attributes and attributes[ \"message\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"message\" ], ( str, unicode ) )\n self.__message = attributes[ \"message\" ]\n- if \"object\" in attributes and attributes[ \"object\" ] is not None:\n+ if \"object\" in attributes and attributes[ \"object\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"object\" ], dict )\n self.__object = GitObject.GitObject( self.__requester, attributes[ \"object\" ], completion = LazyCompletion )\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], ( str, unicode ) )\n self.__sha = attributes[ \"sha\" ]\n- if \"tag\" in attributes and attributes[ \"tag\" ] is not None:\n+ if \"tag\" in attributes and attributes[ \"tag\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tag\" ], ( str, unicode ) )\n self.__tag = attributes[ \"tag\" ]\n- if \"tagger\" in attributes and attributes[ \"tagger\" ] is not None:\n+ if \"tagger\" in attributes and attributes[ \"tagger\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tagger\" ], dict )\n self.__tagger = GitAuthor.GitAuthor( self.__requester, attributes[ \"tagger\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"321f54fc52bcb0ac7843ecf9de53c091e2ad942c","filename":"src/github/GitTree.py","status":"modified","additions":3,"deletions":3,"changes":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTree.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTree.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GitTree.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -33,15 +33,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"sha\", \"tree\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], ( str, unicode ) )\n self.__sha = attributes[ \"sha\" ]\n- if \"tree\" in attributes and attributes[ \"tree\" ] is not None:\n+ if \"tree\" in attributes and attributes[ \"tree\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tree\" ], list ) and ( len( attributes[ \"tree\" ] ) == 0 or isinstance( attributes[ \"tree\" ][ 0 ], dict ) )\n self.__tree = [\n GitTreeElement.GitTreeElement( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"tree\" ]\n ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"97ff07009a4af0d1bacc2c404dbbbff58700b359","filename":"src/github/GitTreeElement.py","status":"modified","additions":6,"deletions":6,"changes":12,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTreeElement.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/GitTreeElement.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/GitTreeElement.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -47,21 +47,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"mode\", \"path\", \"sha\", \"size\", \"type\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"mode\" in attributes and attributes[ \"mode\" ] is not None:\n+ if \"mode\" in attributes and attributes[ \"mode\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"mode\" ], ( str, unicode ) )\n self.__mode = attributes[ \"mode\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"path\" ], ( str, unicode ) )\n self.__path = attributes[ \"path\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"sha\" ], ( str, unicode ) )\n self.__sha = attributes[ \"sha\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], ( str, unicode ) )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"9ac71aa29d8287d57b4d2109754f9da1b0a13fb7","filename":"src/github/Hook.py","status":"modified","additions":9,"deletions":9,"changes":18,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Hook.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Hook.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Hook.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -99,21 +99,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"active\", \"config\", \"created_at\", \"events\", \"id\", \"last_response\", \"name\", \"updated_at\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"active\" in attributes and attributes[ \"active\" ] is not None:\n+ if \"active\" in attributes and attributes[ \"active\" ] is not None: # pragma no branch\n self.__active = attributes[ \"active\" ]\n- if \"config\" in attributes and attributes[ \"config\" ] is not None:\n+ if \"config\" in attributes and attributes[ \"config\" ] is not None: # pragma no branch\n self.__config = attributes[ \"config\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"events\" in attributes and attributes[ \"events\" ] is not None:\n+ if \"events\" in attributes and attributes[ \"events\" ] is not None: # pragma no branch\n self.__events = attributes[ \"events\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"last_response\" in attributes and attributes[ \"last_response\" ] is not None:\n+ if \"last_response\" in attributes and attributes[ \"last_response\" ] is not None: # pragma no branch\n self.__last_response = attributes[ \"last_response\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]"},{"sha":"8c10440882b7a8a0ce52adacff48066cce006a31","filename":"src/github/Issue.py","status":"modified","additions":32,"deletions":21,"changes":53,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Issue.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Issue.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -110,7 +110,7 @@ def user( self ):\n return self.__user\n \n def add_to_labels( self, *labels ):\n- post_parameters = labels\n+ post_parameters = [ label.name for label in labels ]\n status, headers, data = self.__requester.request(\n \"POST\",\n str( self.url ) + \"/labels\",\n@@ -131,7 +131,12 @@ def create_comment( self, body ):\n return IssueComment.IssueComment( self.__requester, data, completion = NoCompletion )\n \n def delete_labels( self ):\n- pass\n+ status, headers, data = self.__requester.request(\n+ \"DELETE\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ None\n+ )\n \n def edit( self, title = DefaultValueForOptionalParameters, body = DefaultValueForOptionalParameters, assignee = DefaultValueForOptionalParameters, state = DefaultValueForOptionalParameters, milestone = DefaultValueForOptionalParameters, labels = DefaultValueForOptionalParameters ):\n post_parameters = {\n@@ -216,7 +221,13 @@ def remove_from_labels( self, label ):\n )\n \n def set_labels( self, *labels ):\n- pass\n+ post_parameters = [ label.name for label in labels ]\n+ status, headers, data = self.__requester.request(\n+ \"PUT\",\n+ str( self.url ) + \"/labels\",\n+ None,\n+ post_parameters\n+ )\n \n def __initAttributes( self ):\n self.__assignee = None\n@@ -257,59 +268,59 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"assignee\", \"body\", \"closed_at\", \"closed_by\", \"comments\", \"created_at\", \"html_url\", \"id\", \"labels\", \"milestone\", \"number\", \"pull_request\", \"repository\", \"state\", \"title\", \"updated_at\", \"url\", \"user\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"assignee\" in attributes and attributes[ \"assignee\" ] is not None:\n+ if \"assignee\" in attributes and attributes[ \"assignee\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"assignee\" ], dict )\n self.__assignee = NamedUser.NamedUser( self.__requester, attributes[ \"assignee\" ], completion = LazyCompletion )\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"body\" ], ( str, unicode ) )\n self.__body = attributes[ \"body\" ]\n- if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None:\n+ if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_at\" ], ( str, unicode ) )\n self.__closed_at = attributes[ \"closed_at\" ]\n- if \"closed_by\" in attributes and attributes[ \"closed_by\" ] is not None:\n+ if \"closed_by\" in attributes and attributes[ \"closed_by\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_by\" ], dict )\n self.__closed_by = NamedUser.NamedUser( self.__requester, attributes[ \"closed_by\" ], completion = LazyCompletion )\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"comments\" ], int )\n self.__comments = attributes[ \"comments\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], ( str, unicode ) )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], ( str, unicode ) )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"labels\" in attributes and attributes[ \"labels\" ] is not None:\n+ if \"labels\" in attributes and attributes[ \"labels\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"labels\" ], list ) and ( len( attributes[ \"labels\" ] ) == 0 or isinstance( attributes[ \"labels\" ][ 0 ], dict ) )\n self.__labels = [\n Label.Label( self.__requester, element, completion = LazyCompletion )\n for element in attributes[ \"labels\" ]\n ]\n- if \"milestone\" in attributes and attributes[ \"milestone\" ] is not None:\n+ if \"milestone\" in attributes and attributes[ \"milestone\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"milestone\" ], dict )\n self.__milestone = Milestone.Milestone( self.__requester, attributes[ \"milestone\" ], completion = LazyCompletion )\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"number\" ], int )\n self.__number = attributes[ \"number\" ]\n- if \"pull_request\" in attributes and attributes[ \"pull_request\" ] is not None:\n+ if \"pull_request\" in attributes and attributes[ \"pull_request\" ] is not None: # pragma no branch\n self.__pull_request = attributes[ \"pull_request\" ]\n- if \"repository\" in attributes and attributes[ \"repository\" ] is not None:\n+ if \"repository\" in attributes and attributes[ \"repository\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"repository\" ], dict )\n self.__repository = Repository.Repository( self.__requester, attributes[ \"repository\" ], completion = LazyCompletion )\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"state\" ], ( str, unicode ) )\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"title\" ], ( str, unicode ) )\n self.__title = attributes[ \"title\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], ( str, unicode ) )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )"},{"sha":"5ed8d8d10b46e6427503e050fdfad6ba22837e25","filename":"src/github/IssueComment.py","status":"modified","additions":6,"deletions":6,"changes":12,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueComment.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueComment.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/IssueComment.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -68,16 +68,16 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"created_at\", \"id\", \"updated_at\", \"url\", \"user\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )"},{"sha":"a276fe9eaea713a8599710636ead83d77023b99f","filename":"src/github/IssueEvent.py","status":"modified","additions":7,"deletions":7,"changes":14,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueEvent.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/IssueEvent.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/IssueEvent.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -78,24 +78,24 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"actor\", \"commit_id\", \"created_at\", \"event\", \"id\", \"issue\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"actor\" in attributes and attributes[ \"actor\" ] is not None:\n+ if \"actor\" in attributes and attributes[ \"actor\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"actor\" ], dict )\n self.__actor = NamedUser.NamedUser( self.__requester, attributes[ \"actor\" ], completion = LazyCompletion )\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit_id\" ], ( str, unicode ) )\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], ( str, unicode ) )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"event\" in attributes and attributes[ \"event\" ] is not None:\n+ if \"event\" in attributes and attributes[ \"event\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"event\" ], ( str, unicode ) )\n self.__event = attributes[ \"event\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"issue\" in attributes and attributes[ \"issue\" ] is not None:\n+ if \"issue\" in attributes and attributes[ \"issue\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"issue\" ], dict )\n self.__issue = Issue.Issue( self.__requester, attributes[ \"issue\" ], completion = LazyCompletion )\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"1f11c4d96625bb675a5c9ce84c813caf4745ff67","filename":"src/github/Label.py","status":"modified","additions":10,"deletions":3,"changes":13,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Label.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Label.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -1,6 +1,8 @@\n # WARNING: this file is generated automaticaly.\n # Do not modify it manually, your work would be lost.\n \n+import urllib\n+\n import PaginatedList\n from GithubObject import *\n \n@@ -43,6 +45,11 @@ def edit( self, name, color ):\n )\n self.__useAttributes( data )\n \n+ # @todo Remove '_identity' from the normalized json description\n+ @property\n+ def _identity( self ):\n+ return urllib.quote( self.name )\n+\n def __initAttributes( self ):\n self.__color = None\n self.__name = None\n@@ -53,9 +60,9 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"color\", \"name\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"color\" in attributes and attributes[ \"color\" ] is not None:\n+ if \"color\" in attributes and attributes[ \"color\" ] is not None: # pragma no branch\n self.__color = attributes[ \"color\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]"},{"sha":"ffbb51b8941c5bdd34bbc539825666e1155b0699","filename":"src/github/Milestone.py","status":"modified","additions":11,"deletions":11,"changes":22,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Milestone.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Milestone.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Milestone.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -114,36 +114,36 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"closed_issues\", \"created_at\", \"creator\", \"description\", \"due_on\", \"id\", \"number\", \"open_issues\", \"state\", \"title\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"closed_issues\" in attributes and attributes[ \"closed_issues\" ] is not None:\n+ if \"closed_issues\" in attributes and attributes[ \"closed_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"closed_issues\" ], int )\n self.__closed_issues = attributes[ \"closed_issues\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], ( str, unicode ) )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"creator\" in attributes and attributes[ \"creator\" ] is not None:\n+ if \"creator\" in attributes and attributes[ \"creator\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"creator\" ], dict )\n self.__creator = NamedUser.NamedUser( self.__requester, attributes[ \"creator\" ], completion = LazyCompletion )\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], ( str, unicode ) )\n self.__description = attributes[ \"description\" ]\n- if \"due_on\" in attributes and attributes[ \"due_on\" ] is not None:\n+ if \"due_on\" in attributes and attributes[ \"due_on\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"due_on\" ], ( str, unicode ) )\n self.__due_on = attributes[ \"due_on\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"number\" ], int )\n self.__number = attributes[ \"number\" ]\n- if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None:\n+ if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"open_issues\" ], int )\n self.__open_issues = attributes[ \"open_issues\" ]\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"state\" ], ( str, unicode ) )\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"title\" ], ( str, unicode ) )\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"61400ed17d9985d2de72dbf8b489de903dbe494e","filename":"src/github/NamedUser.py","status":"modified","additions":26,"deletions":26,"changes":52,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/NamedUser.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/NamedUser.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/NamedUser.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -365,81 +365,81 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"bio\", \"blog\", \"collaborators\", \"company\", \"contributions\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"hireable\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], ( str, unicode ) )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"bio\" in attributes and attributes[ \"bio\" ] is not None:\n+ if \"bio\" in attributes and attributes[ \"bio\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"bio\" ], ( str, unicode ) )\n self.__bio = attributes[ \"bio\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], ( str, unicode ) )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], ( str, unicode ) )\n self.__company = attributes[ \"company\" ]\n- if \"contributions\" in attributes and attributes[ \"contributions\" ] is not None:\n+ if \"contributions\" in attributes and attributes[ \"contributions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"contributions\" ], int )\n self.__contributions = attributes[ \"contributions\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], ( str, unicode ) )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], ( str, unicode ) )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], ( str, unicode ) )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None:\n+ if \"hireable\" in attributes and attributes[ \"hireable\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"hireable\" ], bool )\n self.__hireable = attributes[ \"hireable\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], ( str, unicode ) )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], ( str, unicode ) )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], ( str, unicode ) )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], ( str, unicode ) )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], ( str, unicode ) )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"78ac913ccb12dc01a5064095456078444925ae9e","filename":"src/github/Organization.py","status":"modified","additions":24,"deletions":24,"changes":48,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Organization.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Organization.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Organization.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -390,75 +390,75 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"avatar_url\", \"billing_email\", \"blog\", \"collaborators\", \"company\", \"created_at\", \"disk_usage\", \"email\", \"followers\", \"following\", \"gravatar_id\", \"html_url\", \"id\", \"location\", \"login\", \"name\", \"owned_private_repos\", \"plan\", \"private_gists\", \"public_gists\", \"public_repos\", \"total_private_repos\", \"type\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None:\n+ if \"avatar_url\" in attributes and attributes[ \"avatar_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"avatar_url\" ], ( str, unicode ) )\n self.__avatar_url = attributes[ \"avatar_url\" ]\n- if \"billing_email\" in attributes and attributes[ \"billing_email\" ] is not None:\n+ if \"billing_email\" in attributes and attributes[ \"billing_email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"billing_email\" ], ( str, unicode ) )\n self.__billing_email = attributes[ \"billing_email\" ]\n- if \"blog\" in attributes and attributes[ \"blog\" ] is not None:\n+ if \"blog\" in attributes and attributes[ \"blog\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"blog\" ], ( str, unicode ) )\n self.__blog = attributes[ \"blog\" ]\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"company\" in attributes and attributes[ \"company\" ] is not None:\n+ if \"company\" in attributes and attributes[ \"company\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"company\" ], ( str, unicode ) )\n self.__company = attributes[ \"company\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], ( str, unicode ) )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None:\n+ if \"disk_usage\" in attributes and attributes[ \"disk_usage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"disk_usage\" ], int )\n self.__disk_usage = attributes[ \"disk_usage\" ]\n- if \"email\" in attributes and attributes[ \"email\" ] is not None:\n+ if \"email\" in attributes and attributes[ \"email\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"email\" ], ( str, unicode ) )\n self.__email = attributes[ \"email\" ]\n- if \"followers\" in attributes and attributes[ \"followers\" ] is not None:\n+ if \"followers\" in attributes and attributes[ \"followers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"followers\" ], int )\n self.__followers = attributes[ \"followers\" ]\n- if \"following\" in attributes and attributes[ \"following\" ] is not None:\n+ if \"following\" in attributes and attributes[ \"following\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"following\" ], int )\n self.__following = attributes[ \"following\" ]\n- if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None:\n+ if \"gravatar_id\" in attributes and attributes[ \"gravatar_id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"gravatar_id\" ], ( str, unicode ) )\n self.__gravatar_id = attributes[ \"gravatar_id\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], ( str, unicode ) )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"location\" in attributes and attributes[ \"location\" ] is not None:\n+ if \"location\" in attributes and attributes[ \"location\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"location\" ], ( str, unicode ) )\n self.__location = attributes[ \"location\" ]\n- if \"login\" in attributes and attributes[ \"login\" ] is not None:\n+ if \"login\" in attributes and attributes[ \"login\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"login\" ], ( str, unicode ) )\n self.__login = attributes[ \"login\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], ( str, unicode ) )\n self.__name = attributes[ \"name\" ]\n- if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None:\n+ if \"owned_private_repos\" in attributes and attributes[ \"owned_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owned_private_repos\" ], int )\n self.__owned_private_repos = attributes[ \"owned_private_repos\" ]\n- if \"plan\" in attributes and attributes[ \"plan\" ] is not None:\n+ if \"plan\" in attributes and attributes[ \"plan\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"plan\" ], dict )\n self.__plan = Plan.Plan( self.__requester, attributes[ \"plan\" ], completion = LazyCompletion )\n- if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None:\n+ if \"private_gists\" in attributes and attributes[ \"private_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_gists\" ], int )\n self.__private_gists = attributes[ \"private_gists\" ]\n- if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None:\n+ if \"public_gists\" in attributes and attributes[ \"public_gists\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_gists\" ], int )\n self.__public_gists = attributes[ \"public_gists\" ]\n- if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None:\n+ if \"public_repos\" in attributes and attributes[ \"public_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"public_repos\" ], int )\n self.__public_repos = attributes[ \"public_repos\" ]\n- if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None:\n+ if \"total_private_repos\" in attributes and attributes[ \"total_private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"total_private_repos\" ], int )\n self.__total_private_repos = attributes[ \"total_private_repos\" ]\n- if \"type\" in attributes and attributes[ \"type\" ] is not None:\n+ if \"type\" in attributes and attributes[ \"type\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"type\" ], ( str, unicode ) )\n self.__type = attributes[ \"type\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]"},{"sha":"043f6f5db4d094d723aafbec7fe54a77205e9f0f","filename":"src/github/Permissions.py","status":"modified","additions":3,"deletions":3,"changes":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Permissions.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Permissions.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Permissions.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -32,12 +32,12 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"admin\", \"pull\", \"push\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"admin\" in attributes and attributes[ \"admin\" ] is not None:\n+ if \"admin\" in attributes and attributes[ \"admin\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"admin\" ], bool )\n self.__admin = attributes[ \"admin\" ]\n- if \"pull\" in attributes and attributes[ \"pull\" ] is not None:\n+ if \"pull\" in attributes and attributes[ \"pull\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"pull\" ], bool )\n self.__pull = attributes[ \"pull\" ]\n- if \"push\" in attributes and attributes[ \"push\" ] is not None:\n+ if \"push\" in attributes and attributes[ \"push\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"push\" ], bool )\n self.__push = attributes[ \"push\" ]"},{"sha":"14ac71bd4920084cd9c8dd2e452c707d82807a64","filename":"src/github/Plan.py","status":"modified","additions":4,"deletions":4,"changes":8,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Plan.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Plan.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Plan.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -37,15 +37,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"collaborators\", \"name\", \"private_repos\", \"space\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None:\n+ if \"collaborators\" in attributes and attributes[ \"collaborators\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"collaborators\" ], int )\n self.__collaborators = attributes[ \"collaborators\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], ( str, unicode ) )\n self.__name = attributes[ \"name\" ]\n- if \"private_repos\" in attributes and attributes[ \"private_repos\" ] is not None:\n+ if \"private_repos\" in attributes and attributes[ \"private_repos\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private_repos\" ], int )\n self.__private_repos = attributes[ \"private_repos\" ]\n- if \"space\" in attributes and attributes[ \"space\" ] is not None:\n+ if \"space\" in attributes and attributes[ \"space\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"space\" ], int )\n self.__space = attributes[ \"space\" ]"},{"sha":"07e945e4b49ca0d8cb8e06c124431022765bc8f0","filename":"src/github/PullRequest.py","status":"modified","additions":26,"deletions":26,"changes":52,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequest.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequest.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/PullRequest.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -279,56 +279,56 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"base\", \"body\", \"changed_files\", \"closed_at\", \"comments\", \"commits\", \"created_at\", \"deletions\", \"diff_url\", \"head\", \"html_url\", \"id\", \"issue_url\", \"mergeable\", \"merged\", \"merged_at\", \"merged_by\", \"number\", \"patch_url\", \"review_comments\", \"state\", \"title\", \"updated_at\", \"url\", \"user\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"base\" in attributes and attributes[ \"base\" ] is not None:\n+ if \"base\" in attributes and attributes[ \"base\" ] is not None: # pragma no branch\n self.__base = attributes[ \"base\" ]\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"changed_files\" in attributes and attributes[ \"changed_files\" ] is not None:\n+ if \"changed_files\" in attributes and attributes[ \"changed_files\" ] is not None: # pragma no branch\n self.__changed_files = attributes[ \"changed_files\" ]\n- if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None:\n+ if \"closed_at\" in attributes and attributes[ \"closed_at\" ] is not None: # pragma no branch\n self.__closed_at = attributes[ \"closed_at\" ]\n- if \"comments\" in attributes and attributes[ \"comments\" ] is not None:\n+ if \"comments\" in attributes and attributes[ \"comments\" ] is not None: # pragma no branch\n self.__comments = attributes[ \"comments\" ]\n- if \"commits\" in attributes and attributes[ \"commits\" ] is not None:\n+ if \"commits\" in attributes and attributes[ \"commits\" ] is not None: # pragma no branch\n self.__commits = attributes[ \"commits\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"diff_url\" in attributes and attributes[ \"diff_url\" ] is not None:\n+ if \"diff_url\" in attributes and attributes[ \"diff_url\" ] is not None: # pragma no branch\n self.__diff_url = attributes[ \"diff_url\" ]\n- if \"head\" in attributes and attributes[ \"head\" ] is not None:\n+ if \"head\" in attributes and attributes[ \"head\" ] is not None: # pragma no branch\n self.__head = attributes[ \"head\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"issue_url\" in attributes and attributes[ \"issue_url\" ] is not None:\n+ if \"issue_url\" in attributes and attributes[ \"issue_url\" ] is not None: # pragma no branch\n self.__issue_url = attributes[ \"issue_url\" ]\n- if \"mergeable\" in attributes and attributes[ \"mergeable\" ] is not None:\n+ if \"mergeable\" in attributes and attributes[ \"mergeable\" ] is not None: # pragma no branch\n self.__mergeable = attributes[ \"mergeable\" ]\n- if \"merged\" in attributes and attributes[ \"merged\" ] is not None:\n+ if \"merged\" in attributes and attributes[ \"merged\" ] is not None: # pragma no branch\n self.__merged = attributes[ \"merged\" ]\n- if \"merged_at\" in attributes and attributes[ \"merged_at\" ] is not None:\n+ if \"merged_at\" in attributes and attributes[ \"merged_at\" ] is not None: # pragma no branch\n self.__merged_at = attributes[ \"merged_at\" ]\n- if \"merged_by\" in attributes and attributes[ \"merged_by\" ] is not None:\n+ if \"merged_by\" in attributes and attributes[ \"merged_by\" ] is not None: # pragma no branch\n self.__merged_by = attributes[ \"merged_by\" ]\n- if \"number\" in attributes and attributes[ \"number\" ] is not None:\n+ if \"number\" in attributes and attributes[ \"number\" ] is not None: # pragma no branch\n self.__number = attributes[ \"number\" ]\n- if \"patch_url\" in attributes and attributes[ \"patch_url\" ] is not None:\n+ if \"patch_url\" in attributes and attributes[ \"patch_url\" ] is not None: # pragma no branch\n self.__patch_url = attributes[ \"patch_url\" ]\n- if \"review_comments\" in attributes and attributes[ \"review_comments\" ] is not None:\n+ if \"review_comments\" in attributes and attributes[ \"review_comments\" ] is not None: # pragma no branch\n self.__review_comments = attributes[ \"review_comments\" ]\n- if \"state\" in attributes and attributes[ \"state\" ] is not None:\n+ if \"state\" in attributes and attributes[ \"state\" ] is not None: # pragma no branch\n self.__state = attributes[ \"state\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )"},{"sha":"d0095192e606f65fec81882be15aca06ac47e5e3","filename":"src/github/PullRequestComment.py","status":"modified","additions":11,"deletions":11,"changes":22,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestComment.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestComment.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/PullRequestComment.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -121,26 +121,26 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"body\", \"commit_id\", \"created_at\", \"html_url\", \"id\", \"line\", \"path\", \"position\", \"updated_at\", \"url\", \"user\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"body\" in attributes and attributes[ \"body\" ] is not None:\n+ if \"body\" in attributes and attributes[ \"body\" ] is not None: # pragma no branch\n self.__body = attributes[ \"body\" ]\n- if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None:\n+ if \"commit_id\" in attributes and attributes[ \"commit_id\" ] is not None: # pragma no branch\n self.__commit_id = attributes[ \"commit_id\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n self.__created_at = attributes[ \"created_at\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"line\" in attributes and attributes[ \"line\" ] is not None:\n+ if \"line\" in attributes and attributes[ \"line\" ] is not None: # pragma no branch\n self.__line = attributes[ \"line\" ]\n- if \"path\" in attributes and attributes[ \"path\" ] is not None:\n+ if \"path\" in attributes and attributes[ \"path\" ] is not None: # pragma no branch\n self.__path = attributes[ \"path\" ]\n- if \"position\" in attributes and attributes[ \"position\" ] is not None:\n+ if \"position\" in attributes and attributes[ \"position\" ] is not None: # pragma no branch\n self.__position = attributes[ \"position\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"user\" in attributes and attributes[ \"user\" ] is not None:\n+ if \"user\" in attributes and attributes[ \"user\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"user\" ], dict )\n self.__user = NamedUser.NamedUser( self.__requester, attributes[ \"user\" ], completion = LazyCompletion )"},{"sha":"043fb9a5328ad003b449573616e418f17e25bac2","filename":"src/github/PullRequestFile.py","status":"modified","additions":9,"deletions":9,"changes":18,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestFile.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/PullRequestFile.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/PullRequestFile.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -62,21 +62,21 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"additions\", \"blob_url\", \"changes\", \"deletions\", \"filename\", \"patch\", \"raw_url\", \"sha\", \"status\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"additions\" in attributes and attributes[ \"additions\" ] is not None:\n+ if \"additions\" in attributes and attributes[ \"additions\" ] is not None: # pragma no branch\n self.__additions = attributes[ \"additions\" ]\n- if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None:\n+ if \"blob_url\" in attributes and attributes[ \"blob_url\" ] is not None: # pragma no branch\n self.__blob_url = attributes[ \"blob_url\" ]\n- if \"changes\" in attributes and attributes[ \"changes\" ] is not None:\n+ if \"changes\" in attributes and attributes[ \"changes\" ] is not None: # pragma no branch\n self.__changes = attributes[ \"changes\" ]\n- if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None:\n+ if \"deletions\" in attributes and attributes[ \"deletions\" ] is not None: # pragma no branch\n self.__deletions = attributes[ \"deletions\" ]\n- if \"filename\" in attributes and attributes[ \"filename\" ] is not None:\n+ if \"filename\" in attributes and attributes[ \"filename\" ] is not None: # pragma no branch\n self.__filename = attributes[ \"filename\" ]\n- if \"patch\" in attributes and attributes[ \"patch\" ] is not None:\n+ if \"patch\" in attributes and attributes[ \"patch\" ] is not None: # pragma no branch\n self.__patch = attributes[ \"patch\" ]\n- if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None:\n+ if \"raw_url\" in attributes and attributes[ \"raw_url\" ] is not None: # pragma no branch\n self.__raw_url = attributes[ \"raw_url\" ]\n- if \"sha\" in attributes and attributes[ \"sha\" ] is not None:\n+ if \"sha\" in attributes and attributes[ \"sha\" ] is not None: # pragma no branch\n self.__sha = attributes[ \"sha\" ]\n- if \"status\" in attributes and attributes[ \"status\" ] is not None:\n+ if \"status\" in attributes and attributes[ \"status\" ] is not None: # pragma no branch\n self.__status = attributes[ \"status\" ]"},{"sha":"30b4bc70dc2a72c52c1cf02e63a26e1cfaf5676e","filename":"src/github/Repository.py","status":"modified","additions":31,"deletions":31,"changes":62,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Repository.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Repository.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Repository.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -905,96 +905,96 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"clone_url\", \"created_at\", \"description\", \"fork\", \"forks\", \"full_name\", \"git_url\", \"has_downloads\", \"has_issues\", \"has_wiki\", \"homepage\", \"html_url\", \"id\", \"language\", \"master_branch\", \"mirror_url\", \"name\", \"open_issues\", \"organization\", \"owner\", \"parent\", \"permissions\", \"private\", \"pushed_at\", \"size\", \"source\", \"ssh_url\", \"svn_url\", \"updated_at\", \"url\", \"watchers\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"clone_url\" in attributes and attributes[ \"clone_url\" ] is not None:\n+ if \"clone_url\" in attributes and attributes[ \"clone_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"clone_url\" ], ( str, unicode ) )\n self.__clone_url = attributes[ \"clone_url\" ]\n- if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None:\n+ if \"created_at\" in attributes and attributes[ \"created_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"created_at\" ], ( str, unicode ) )\n self.__created_at = attributes[ \"created_at\" ]\n- if \"description\" in attributes and attributes[ \"description\" ] is not None:\n+ if \"description\" in attributes and attributes[ \"description\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"description\" ], ( str, unicode ) )\n self.__description = attributes[ \"description\" ]\n- if \"fork\" in attributes and attributes[ \"fork\" ] is not None:\n+ if \"fork\" in attributes and attributes[ \"fork\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"fork\" ], bool )\n self.__fork = attributes[ \"fork\" ]\n- if \"forks\" in attributes and attributes[ \"forks\" ] is not None:\n+ if \"forks\" in attributes and attributes[ \"forks\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"forks\" ], int )\n self.__forks = attributes[ \"forks\" ]\n- if \"full_name\" in attributes and attributes[ \"full_name\" ] is not None:\n+ if \"full_name\" in attributes and attributes[ \"full_name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"full_name\" ], ( str, unicode ) )\n self.__full_name = attributes[ \"full_name\" ]\n- if \"git_url\" in attributes and attributes[ \"git_url\" ] is not None:\n+ if \"git_url\" in attributes and attributes[ \"git_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"git_url\" ], ( str, unicode ) )\n self.__git_url = attributes[ \"git_url\" ]\n- if \"has_downloads\" in attributes and attributes[ \"has_downloads\" ] is not None:\n+ if \"has_downloads\" in attributes and attributes[ \"has_downloads\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_downloads\" ], bool )\n self.__has_downloads = attributes[ \"has_downloads\" ]\n- if \"has_issues\" in attributes and attributes[ \"has_issues\" ] is not None:\n+ if \"has_issues\" in attributes and attributes[ \"has_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_issues\" ], bool )\n self.__has_issues = attributes[ \"has_issues\" ]\n- if \"has_wiki\" in attributes and attributes[ \"has_wiki\" ] is not None:\n+ if \"has_wiki\" in attributes and attributes[ \"has_wiki\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"has_wiki\" ], bool )\n self.__has_wiki = attributes[ \"has_wiki\" ]\n- if \"homepage\" in attributes and attributes[ \"homepage\" ] is not None:\n+ if \"homepage\" in attributes and attributes[ \"homepage\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"homepage\" ], ( str, unicode ) )\n self.__homepage = attributes[ \"homepage\" ]\n- if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None:\n+ if \"html_url\" in attributes and attributes[ \"html_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"html_url\" ], ( str, unicode ) )\n self.__html_url = attributes[ \"html_url\" ]\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"id\" ], int )\n self.__id = attributes[ \"id\" ]\n- if \"language\" in attributes and attributes[ \"language\" ] is not None:\n+ if \"language\" in attributes and attributes[ \"language\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"language\" ], ( str, unicode ) )\n self.__language = attributes[ \"language\" ]\n- if \"master_branch\" in attributes and attributes[ \"master_branch\" ] is not None:\n+ if \"master_branch\" in attributes and attributes[ \"master_branch\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"master_branch\" ], ( str, unicode ) )\n self.__master_branch = attributes[ \"master_branch\" ]\n- if \"mirror_url\" in attributes and attributes[ \"mirror_url\" ] is not None:\n+ if \"mirror_url\" in attributes and attributes[ \"mirror_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"mirror_url\" ], ( str, unicode ) )\n self.__mirror_url = attributes[ \"mirror_url\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], ( str, unicode ) )\n self.__name = attributes[ \"name\" ]\n- if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None:\n+ if \"open_issues\" in attributes and attributes[ \"open_issues\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"open_issues\" ], int )\n self.__open_issues = attributes[ \"open_issues\" ]\n- if \"organization\" in attributes and attributes[ \"organization\" ] is not None:\n+ if \"organization\" in attributes and attributes[ \"organization\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"organization\" ], dict )\n self.__organization = Organization.Organization( self.__requester, attributes[ \"organization\" ], completion = LazyCompletion )\n- if \"owner\" in attributes and attributes[ \"owner\" ] is not None:\n+ if \"owner\" in attributes and attributes[ \"owner\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"owner\" ], dict )\n self.__owner = NamedUser.NamedUser( self.__requester, attributes[ \"owner\" ], completion = LazyCompletion )\n- if \"parent\" in attributes and attributes[ \"parent\" ] is not None:\n+ if \"parent\" in attributes and attributes[ \"parent\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"parent\" ], dict )\n self.__parent = Repository( self.__requester, attributes[ \"parent\" ], completion = LazyCompletion )\n- if \"permissions\" in attributes and attributes[ \"permissions\" ] is not None:\n+ if \"permissions\" in attributes and attributes[ \"permissions\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"permissions\" ], dict )\n self.__permissions = Permissions.Permissions( self.__requester, attributes[ \"permissions\" ], completion = LazyCompletion )\n- if \"private\" in attributes and attributes[ \"private\" ] is not None:\n+ if \"private\" in attributes and attributes[ \"private\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"private\" ], bool )\n self.__private = attributes[ \"private\" ]\n- if \"pushed_at\" in attributes and attributes[ \"pushed_at\" ] is not None:\n+ if \"pushed_at\" in attributes and attributes[ \"pushed_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"pushed_at\" ], ( str, unicode ) )\n self.__pushed_at = attributes[ \"pushed_at\" ]\n- if \"size\" in attributes and attributes[ \"size\" ] is not None:\n+ if \"size\" in attributes and attributes[ \"size\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"size\" ], int )\n self.__size = attributes[ \"size\" ]\n- if \"source\" in attributes and attributes[ \"source\" ] is not None:\n+ if \"source\" in attributes and attributes[ \"source\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"source\" ], dict )\n self.__source = Repository( self.__requester, attributes[ \"source\" ], completion = LazyCompletion )\n- if \"ssh_url\" in attributes and attributes[ \"ssh_url\" ] is not None:\n+ if \"ssh_url\" in attributes and attributes[ \"ssh_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"ssh_url\" ], ( str, unicode ) )\n self.__ssh_url = attributes[ \"ssh_url\" ]\n- if \"svn_url\" in attributes and attributes[ \"svn_url\" ] is not None:\n+ if \"svn_url\" in attributes and attributes[ \"svn_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"svn_url\" ], ( str, unicode ) )\n self.__svn_url = attributes[ \"svn_url\" ]\n- if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None:\n+ if \"updated_at\" in attributes and attributes[ \"updated_at\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"updated_at\" ], ( str, unicode ) )\n self.__updated_at = attributes[ \"updated_at\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"url\" ], ( str, unicode ) )\n self.__url = attributes[ \"url\" ]\n- if \"watchers\" in attributes and attributes[ \"watchers\" ] is not None:\n+ if \"watchers\" in attributes and attributes[ \"watchers\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"watchers\" ], int )\n self.__watchers = attributes[ \"watchers\" ]"},{"sha":"fc5cafc09e2b8120e47c2bbdf0e0fa0821ec5ecf","filename":"src/github/RepositoryKey.py","status":"modified","additions":5,"deletions":5,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/RepositoryKey.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/RepositoryKey.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/RepositoryKey.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -87,14 +87,14 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"key\", \"title\", \"url\", \"verified\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"key\" in attributes and attributes[ \"key\" ] is not None:\n+ if \"key\" in attributes and attributes[ \"key\" ] is not None: # pragma no branch\n self.__key = attributes[ \"key\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"verified\" in attributes and attributes[ \"verified\" ] is not None:\n+ if \"verified\" in attributes and attributes[ \"verified\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"verified\" ], bool )\n self.__verified = attributes[ \"verified\" ]"},{"sha":"7903406c469352d3f3fb897ed9ac9fc9ebc51c3b","filename":"src/github/Tag.py","status":"modified","additions":4,"deletions":4,"changes":8,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Tag.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Tag.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Tag.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -38,15 +38,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"commit\", \"name\", \"tarball_url\", \"zipball_url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"commit\" in attributes and attributes[ \"commit\" ] is not None:\n+ if \"commit\" in attributes and attributes[ \"commit\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"commit\" ], dict )\n self.__commit = Commit.Commit( self.__requester, attributes[ \"commit\" ], completion = LazyCompletion )\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"name\" ], ( str, unicode ) )\n self.__name = attributes[ \"name\" ]\n- if \"tarball_url\" in attributes and attributes[ \"tarball_url\" ] is not None:\n+ if \"tarball_url\" in attributes and attributes[ \"tarball_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"tarball_url\" ], ( str, unicode ) )\n self.__tarball_url = attributes[ \"tarball_url\" ]\n- if \"zipball_url\" in attributes and attributes[ \"zipball_url\" ] is not None:\n+ if \"zipball_url\" in attributes and attributes[ \"zipball_url\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"zipball_url\" ], ( str, unicode ) )\n self.__zipball_url = attributes[ \"zipball_url\" ]"},{"sha":"ca5b7e13476a30fee9234c6f965019f303e3f33e","filename":"src/github/Team.py","status":"modified","additions":6,"deletions":6,"changes":12,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Team.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/Team.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/Team.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -172,15 +172,15 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"members_count\", \"name\", \"permission\", \"repos_count\", \"url\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"members_count\" in attributes and attributes[ \"members_count\" ] is not None:\n+ if \"members_count\" in attributes and attributes[ \"members_count\" ] is not None: # pragma no branch\n self.__members_count = attributes[ \"members_count\" ]\n- if \"name\" in attributes and attributes[ \"name\" ] is not None:\n+ if \"name\" in attributes and attributes[ \"name\" ] is not None: # pragma no branch\n self.__name = attributes[ \"name\" ]\n- if \"permission\" in attributes and attributes[ \"permission\" ] is not None:\n+ if \"permission\" in attributes and attributes[ \"permission\" ] is not None: # pragma no branch\n self.__permission = attributes[ \"permission\" ]\n- if \"repos_count\" in attributes and attributes[ \"repos_count\" ] is not None:\n+ if \"repos_count\" in attributes and attributes[ \"repos_count\" ] is not None: # pragma no branch\n self.__repos_count = attributes[ \"repos_count\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]"},{"sha":"b7b135d5cf476ece019ca1d018fdf3fc48a450ee","filename":"src/github/UserKey.py","status":"modified","additions":5,"deletions":5,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/UserKey.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/src/github/UserKey.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/src/github/UserKey.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -87,14 +87,14 @@ def __useAttributes( self, attributes ):\n for attribute in attributes:\n assert attribute in [ \"id\", \"key\", \"title\", \"url\", \"verified\", ], attribute\n # @todo No need to check if attribute is in attributes when attribute is mandatory\n- if \"id\" in attributes and attributes[ \"id\" ] is not None:\n+ if \"id\" in attributes and attributes[ \"id\" ] is not None: # pragma no branch\n self.__id = attributes[ \"id\" ]\n- if \"key\" in attributes and attributes[ \"key\" ] is not None:\n+ if \"key\" in attributes and attributes[ \"key\" ] is not None: # pragma no branch\n self.__key = attributes[ \"key\" ]\n- if \"title\" in attributes and attributes[ \"title\" ] is not None:\n+ if \"title\" in attributes and attributes[ \"title\" ] is not None: # pragma no branch\n self.__title = attributes[ \"title\" ]\n- if \"url\" in attributes and attributes[ \"url\" ] is not None:\n+ if \"url\" in attributes and attributes[ \"url\" ] is not None: # pragma no branch\n self.__url = attributes[ \"url\" ]\n- if \"verified\" in attributes and attributes[ \"verified\" ] is not None:\n+ if \"verified\" in attributes and attributes[ \"verified\" ] is not None: # pragma no branch\n assert isinstance( attributes[ \"verified\" ], bool )\n self.__verified = attributes[ \"verified\" ]"},{"sha":"c0a781c0bffba244aa2e9826770ccc127f1415af","filename":"test/Issue.py","status":"modified","additions":25,"deletions":1,"changes":26,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/Issue.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/test/Issue.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -3,7 +3,8 @@\n class Issue( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.issue = self.g.get_user().get_repo( \"PyGithub\" ).get_issue( 28 )\r\n+ self.repo = self.g.get_user().get_repo( \"PyGithub\" )\r\n+ self.issue = self.repo.get_issue( 28 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.issue.assignee.login, \"jacquev6\" )\r\n@@ -47,3 +48,26 @@ def testGetComments( self ):\n \r\n def testGetEvents( self ):\r\n self.assertListKeyEqual( self.issue.get_events(), lambda e: e.id, [ 15819975, 15820048 ] )\r\n+\r\n+ def testGetLabels( self ):\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testAddAndRemoveLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( bug )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\", \"Question\" ] )\r\n+ self.issue.remove_from_labels( question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Project management\" ] )\r\n+ self.issue.add_to_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+\r\n+ def testDeleteAndSetLabels( self ):\r\n+ bug = self.repo.get_label( \"Bug\" )\r\n+ question = self.repo.get_label( \"Question\" )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Project management\", \"Question\" ] )\r\n+ self.issue.delete_labels()\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [] )\r\n+ self.issue.set_labels( bug, question )\r\n+ self.assertListKeyEqual( self.issue.get_labels(), lambda l: l.name, [ \"Bug\", \"Question\" ] )\r"},{"sha":"77fa51481ceb340a91f3988b7d570d697065ebe8","filename":"test/IssueEvent.py","status":"modified","additions":7,"deletions":7,"changes":14,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/IssueEvent.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/IssueEvent.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/test/IssueEvent.py?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -3,13 +3,13 @@\n class IssueEvent( Framework.TestCase ):\r\n def setUp( self ):\r\n Framework.TestCase.setUp( self )\r\n- self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 15819975 )\r\n+ self.event = self.g.get_user().get_repo( \"PyGithub\" ).get_issues_event( 16348656 )\r\n \r\n def testAttributes( self ):\r\n self.assertEqual( self.event.actor.login, \"jacquev6\" )\r\n- self.assertEqual( self.event.commit_id, None )\r\n- self.assertEqual( self.event.created_at, \"2012-05-19T10:38:23Z\" )\r\n- self.assertEqual( self.event.event, \"subscribed\" )\r\n- self.assertEqual( self.event.id, 15819975 )\r\n- self.assertEqual( self.event.issue.number, 28 )\r\n- self.assertEqual( self.event.url, \"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15819975\" )\r\n+ self.assertEqual( self.event.commit_id, \"ed866fc43833802ab553e5ff8581c81bb00dd433\" )\r\n+ self.assertEqual( self.event.created_at, \"2012-05-27T07:29:25Z\" )\r\n+ self.assertEqual( self.event.event, \"referenced\" )\r\n+ self.assertEqual( self.event.id, 16348656 )\r\n+ self.assertEqual( self.event.issue.number, 30 )\r\n+ self.assertEqual( self.event.url, \"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16348656\" )\r"},{"sha":"fb933714353269eb17e70880daacaf9166d4f742","filename":"test/ReplayData/Issue.testAddAndRemoveLabels.txt","status":"added","additions":45,"deletions":0,"changes":45,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testAddAndRemoveLabels.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/test/ReplayData/Issue.testAddAndRemoveLabels.txt?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,45 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4992'), ('content-length', '97'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"569c414d87e8ec43ec269a9e28bc2982\"'), ('date', 'Sun, 27 May 2012 09:04:01 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4991'), ('content-length', '107'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"b659c8dcc1212c71f826547c3cc7ae99\"'), ('date', 'Sun, 27 May 2012 09:04:02 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4990'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"c9f9beccb03030beaf7b80927da6fef6\"'), ('date', 'Sun, 27 May 2012 09:04:03 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '237'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"46cc70bad88a09b559a5e67089005105\"'), ('date', 'Sun, 27 May 2012 09:04:03 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('content-length', '237'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"46cc70bad88a09b559a5e67089005105\"'), ('date', 'Sun, 27 May 2012 09:04:04 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"5352ae15c8a5a36c6cace63be9367332\"'), ('date', 'Sun, 27 May 2012 09:04:04 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"5352ae15c8a5a36c6cace63be9367332\"'), ('date', 'Sun, 27 May 2012 09:04:05 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"}]\n+\n+POST /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4985'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d135d74d2ea2159d044676a220d41d3a\"'), ('date', 'Sun, 27 May 2012 09:04:06 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\"},{\"color\":\"444444\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\"},{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4984'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"c9f9beccb03030beaf7b80927da6fef6\"'), ('date', 'Sun, 27 May 2012 09:04:06 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}]\n+"},{"sha":"bbd6ae4ea3dac63b301017dece6f56b34eab6f80","filename":"test/ReplayData/Issue.testDeleteAndSetLabels.txt","status":"added","additions":35,"deletions":0,"changes":35,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testDeleteAndSetLabels.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/test/ReplayData/Issue.testDeleteAndSetLabels.txt?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,35 @@\n+GET /repos/jacquev6/PyGithub/labels/Bug {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4974'), ('content-length', '97'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"fe2e942523eecb156d100829a6347516\"'), ('date', 'Sun, 27 May 2012 09:06:37 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"}\n+\n+GET /repos/jacquev6/PyGithub/labels/Question {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4973'), ('content-length', '107'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"931e58d337b2290717303141eda89cd7\"'), ('date', 'Sun, 27 May 2012 09:06:38 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\"}\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4972'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d135d74d2ea2159d044676a220d41d3a\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"color\":\"e10c02\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\"},{\"color\":\"444444\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\"},{\"color\":\"02e10c\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\"}]\n+\n+DELETE /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4971'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d41d8cd98f00b204e9800998ecf8427e\"'), ('date', 'Sun, 27 May 2012 09:06:39 GMT')]\n+\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"d751713988987e9331980363e24189ce\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[]\n+\n+PUT /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} [\"Bug\", \"Question\"]\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4969'), ('content-length', '207'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"1a56634d9c1050a88592ff55ed8adc62\"'), ('date', 'Sun, 27 May 2012 09:06:40 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}]\n+\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4968'), ('content-length', '207'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"1a56634d9c1050a88592ff55ed8adc62\"'), ('date', 'Sun, 27 May 2012 09:06:41 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}]\n+"},{"sha":"282dda36da4958e743c70a1cee5b89df0afce592","filename":"test/ReplayData/Issue.testGetLabels.txt","status":"added","additions":5,"deletions":0,"changes":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/Issue.testGetLabels.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/test/ReplayData/Issue.testGetLabels.txt?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -0,0 +1,5 @@\n+GET /repos/jacquev6/PyGithub/issues/28/labels {'Authorization': 'Basic login_and_password_removed'} null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '335'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"c9f9beccb03030beaf7b80927da6fef6\"'), ('date', 'Sun, 27 May 2012 08:56:31 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}]\n+"},{"sha":"0de7e5358c98a51af4f18e7ff9559f4a826bfebc","filename":"test/ReplayData/IssueEvent.setUp.txt","status":"modified","additions":7,"deletions":7,"changes":14,"blob_url":"https://github.com/jacquev6/PyGithub/blob/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/IssueEvent.setUp.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/8a4f306d4b223682dd19410d4a9150636ebe4206/test/ReplayData/IssueEvent.setUp.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/test/ReplayData/IssueEvent.setUp.txt?ref=8a4f306d4b223682dd19410d4a9150636ebe4206","patch":"@@ -1,15 +1,15 @@\n GET /user {'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4907'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"99c9bfb75395b749e9913a4729126fb5\"'), ('date', 'Sun, 27 May 2012 07:19:30 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"private_gists\":5,\"type\":\"User\",\"company\":\"Criteo\",\"location\":\"Paris, France\",\"hireable\":false,\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"bio\":\"\",\"following\":24,\"blog\":\"http://vincent-jacques.net\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"total_private_repos\":5,\"followers\":13,\"owned_private_repos\":5,\"disk_usage\":16976,\"collaborators\":0,\"html_url\":\"https://github.com/jacquev6\",\"url\":\"https://api.github.com/users/jacquev6\",\"name\":\"Vincent Jacques\",\"login\":\"jacquev6\",\"public_repos\":11,\"public_gists\":3,\"email\":\"vincent@vincent-jacques.net\",\"id\":327146,\"plan\":{\"private_repos\":5,\"collaborators\":1,\"name\":\"micro\",\"space\":614400},\"created_at\":\"2010-07-09T06:10:06Z\"}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"8974bb1628a3e3a6d3eb3b08c1b5a46b\"'), ('date', 'Sun, 27 May 2012 07:32:54 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"type\":\"User\",\"bio\":\"\",\"disk_usage\":16976,\"total_private_repos\":5,\"url\":\"https://api.github.com/users/jacquev6\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"owned_private_repos\":5,\"collaborators\":0,\"plan\":{\"collaborators\":1,\"private_repos\":5,\"name\":\"micro\",\"space\":614400},\"company\":\"Criteo\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"email\":\"vincent@vincent-jacques.net\",\"public_gists\":3,\"followers\":13,\"name\":\"Vincent Jacques\",\"created_at\":\"2010-07-09T06:10:06Z\",\"blog\":\"http://vincent-jacques.net\",\"location\":\"Paris, France\",\"hireable\":false,\"id\":327146,\"private_gists\":5,\"public_repos\":11,\"following\":24,\"html_url\":\"https://github.com/jacquev6\"}\n \n GET /repos/jacquev6/PyGithub {'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4906'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"4c20acf0b23f75bbf25106b1a04f65a5\"'), ('date', 'Sun, 27 May 2012 07:19:31 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"description\":\"Python library implementing the full Github API v3\",\"full_name\":\"jacquev6/PyGithub\",\"has_wiki\":false,\"has_issues\":true,\"updated_at\":\"2012-05-27T06:55:28Z\",\"forks\":3,\"mirror_url\":null,\"homepage\":\"http://vincent-jacques.net/PyGithub\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"open_issues\":16,\"fork\":false,\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"pushed_at\":\"2012-05-27T06:00:28Z\",\"size\":308,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"private\":false,\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"owner\":{\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"url\":\"https://api.github.com/users/jacquev6\",\"login\":\"jacquev6\",\"id\":327146},\"name\":\"PyGithub\",\"has_downloads\":true,\"language\":\"Python\",\"watchers\":15,\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"id\":3544490,\"permissions\":{\"admin\":true,\"pull\":true,\"push\":true},\"created_at\":\"2012-02-25T12:53:47Z\"}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4995'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"f1e4eb3993a364b66b68ec9db42405bd\"'), ('date', 'Sun, 27 May 2012 07:32:55 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"has_downloads\":true,\"watchers\":15,\"updated_at\":\"2012-05-27T07:29:24Z\",\"permissions\":{\"pull\":true,\"admin\":true,\"push\":true},\"homepage\":\"http://vincent-jacques.net/PyGithub\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"mirror_url\":null,\"has_wiki\":false,\"has_issues\":true,\"fork\":false,\"forks\":3,\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"size\":308,\"private\":false,\"open_issues\":16,\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"owner\":{\"url\":\"https://api.github.com/users/jacquev6\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146},\"name\":\"PyGithub\",\"language\":\"Python\",\"description\":\"Python library implementing the full Github API v3\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"pushed_at\":\"2012-05-27T07:29:24Z\",\"created_at\":\"2012-02-25T12:53:47Z\",\"id\":3544490,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"full_name\":\"jacquev6/PyGithub\"}\n \n-GET /repos/jacquev6/PyGithub/issues/events/15819975 {'Authorization': 'Basic login_and_password_removed'} null\n+GET /repos/jacquev6/PyGithub/issues/events/16348656 {'Authorization': 'Basic login_and_password_removed'} null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4905'), ('content-length', '2430'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"a3d244842d23f92f69a23e21626fad11\"'), ('date', 'Sun, 27 May 2012 07:19:31 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events/15819975\",\"issue\":{\"updated_at\":\"2012-05-26T14:59:33Z\",\"body\":\"Body edited by PyGithub\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/28\",\"comments\":0,\"milestone\":{\"creator\":{\"url\":\"https://api.github.com/users/jacquev6\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146},\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/milestones/1\",\"number\":1,\"title\":\"Version 0.4\",\"due_on\":\"2012-03-13T07:00:00Z\",\"closed_issues\":3,\"open_issues\":0,\"created_at\":\"2012-03-08T12:22:10Z\",\"state\":\"closed\",\"description\":\"\",\"id\":93546},\"number\":28,\"assignee\":{\"url\":\"https://api.github.com/users/jacquev6\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146},\"closed_at\":\"2012-05-26T14:59:33Z\",\"title\":\"Issue created by PyGithub\",\"labels\":[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug\",\"name\":\"Bug\",\"color\":\"e10c02\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management\",\"name\":\"Project management\",\"color\":\"444444\"},{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}],\"created_at\":\"2012-05-19T10:38:23Z\",\"state\":\"closed\",\"user\":{\"url\":\"https://api.github.com/users/jacquev6\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146},\"id\":4653757,\"pull_request\":{\"diff_url\":null,\"patch_url\":null,\"html_url\":null},\"html_url\":\"https://github.com/jacquev6/PyGithub/issues/28\"},\"commit_id\":null,\"created_at\":\"2012-05-19T10:38:23Z\",\"event\":\"subscribed\",\"id\":15819975,\"actor\":{\"url\":\"https://api.github.com/users/jacquev6\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146}}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4994'), ('content-length', '1384'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"fefecab09e7355d4ef9875677c2631da\"'), ('date', 'Sun, 27 May 2012 07:32:56 GMT'), ('content-type', 'application/json; charset=utf-8')]\n+{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events/16348656\",\"issue\":{\"updated_at\":\"2012-05-27T07:27:51Z\",\"body\":\"Body created by PyGithub\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/30\",\"comments\":0,\"milestone\":null,\"number\":30,\"assignee\":null,\"closed_at\":null,\"title\":\"Issue also created by PyGithub\",\"labels\":[{\"url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels/Question\",\"name\":\"Question\",\"color\":\"02e10c\"}],\"created_at\":\"2012-05-27T05:40:15Z\",\"state\":\"open\",\"user\":{\"url\":\"https://api.github.com/users/jacquev6\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\"},\"id\":4769659,\"pull_request\":{\"patch_url\":null,\"diff_url\":null,\"html_url\":null},\"html_url\":\"https://github.com/jacquev6/PyGithub/issues/30\"},\"commit_id\":\"ed866fc43833802ab553e5ff8581c81bb00dd433\",\"created_at\":\"2012-05-27T07:29:25Z\",\"event\":\"referenced\",\"id\":16348656,\"actor\":{\"url\":\"https://api.github.com/users/jacquev6\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\"}}\n "}] + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/comments/3630301 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4873'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '8be19071-cb1a-414d-8310-a325dcbb0ff4'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1391'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:34 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/comments/3630301","html_url":"https://github.com/jacquev6/PyGithub/commit/4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23#commitcomment-3630301","id":3630301,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"position":null,"line":null,"path":null,"commit_id":"4aadfff21cdd2d2566b0e4bd7309c233b5f4ae23","created_at":"2013-07-14T17:26:29Z","updated_at":"2013-07-14T17:26:29Z","body":"Comment created for PyGithub"} + +https +GET +status.github.com +443 +/api/status.json +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('content-length', '55'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Fri, 06 Sep 2013 15:05:40 GMT'), ('content-type', 'application/json;charset=utf-8')] +{"status":"good","last_updated":"2013-09-06T15:05:34Z"} + +https +GET +status.github.com +443 +/api/last-message.json +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('content-length', '93'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Fri, 06 Sep 2013 15:05:41 GMT'), ('content-type', 'application/json;charset=utf-8')] +{"status":"good","body":"Everything operating normally.","created_on":"2013-09-01T15:41:46Z"} + +https +GET +api.github.com +None +/rate_limit +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4873'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '7d8f5ceb-ff02-47d5-a6c5-bdc47a1b1306'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '59'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('cache-control', 'no-cache'), ('date', 'Fri, 06 Sep 2013 15:05:42 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"rate":{"limit":5000,"remaining":4873,"reset":1378482241}} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/hooks +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4872'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '91eb21a9-7965-4af5-b6ff-95dc600d32e1'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '464'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:06 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"f7b3dbaaca94c0219f23e9021e78506f"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:43 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +[{"url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/423574","test_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/423574/test","id":423574,"name":"travis","active":true,"events":["push","pull_request","issue_comment","public","member"],"config":{"domain":"","token":"pJdnhcDq3dQ9Cr1J1znQ","user":"jacquev6"},"last_response":{"code":200,"status":"active","message":"OK"},"updated_at":"2013-09-06T12:41:06Z","created_at":"2012-09-16T07:14:29Z"}] + +https +GET +api.github.com +None +/hooks +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4871'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '609aaebd-8356-4b3a-82cf-c796a9475c3b'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '28297'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 04 Sep 2013 18:03:57 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"678dd8e392d70d3a284c3d47221ec6f0"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:45 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +[{"name":"activecollab","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","token"],["string","project_id"],["string","milestone_id"],["string","category_id"]]},{"name":"acunote","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"agilebench","events":["push"],"supported_events":["push"],"schema":[["string","token"],["string","project_id"]]},{"name":"agilezen","events":["push"],"supported_events":["push"],"schema":[["string","api_key"],["string","project_id"],["string","branches"]]},{"name":"amazonsns","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","aws_key"],["string","aws_secret"],["string","sns_topic"],["string","sqs_queue"],["password","aws_secret"]]},{"name":"apiary","events":["push"],"supported_events":["push"],"schema":[["string","branch"],["string","domain"]]},{"name":"apoio","events":["issues"],"supported_events":["issues"],"schema":[["string","subdomain"],["string","token"]]},{"name":"appharbor","events":["push"],"supported_events":["push"],"schema":[["string","application_slug"],["string","token"]]},{"name":"apropos","events":["commit_comment","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","project_id"]]},{"name":"asana","events":["push"],"supported_events":["push"],"schema":[["string","auth_token"],["string","restrict_to_branch"],["boolean","restrict_to_last_commit"]]},{"name":"backlog","events":["push"],"supported_events":["push"],"schema":[["string","api_url"],["string","user_id"],["password","password"]]},{"name":"bamboo","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","build_key"],["string","username"],["password","password"]]},{"name":"basecamp","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","project"],["string","category"],["string","username"],["password","password"],["boolean","ssl"]]},{"name":"bcx","events":["push","pull_request","issues"],"supported_events":["issues","pull_request","push"],"schema":[["string","project_url"],["string","email_address"],["password","password"]]},{"name":"blimp","events":["issues","issue_comment"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","project_url"],["string","username"],["string","goal_title"],["password","api_key"]]},{"name":"boxcar","events":["push"],"supported_events":["push"],"schema":[["string","subscribers"]]},{"name":"buddycloud","events":["push"],"supported_events":["push"],"schema":[["string","buddycloud_base_api"],["string","username"],["string","password"],["string","channel"],["password","password"],["boolean","show_commit_summary"],["boolean","show_commit_detail"]]},{"name":"bugherd","events":["issues","issue_comment","push"],"supported_events":["issue_comment","issues","push"],"schema":[["string","project_key"]]},{"name":"bugly","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","account_name"],["string","token"]]},{"name":"bugzilla","events":["push"],"supported_events":["push"],"schema":[["string","server_url"],["string","username"],["string","integration_branch"],["password","password"],["boolean","central_repository"]]},{"name":"campfire","events":["push","pull_request","issues"],"supported_events":["gollum","issues","public","pull_request","push"],"schema":[["string","subdomain"],["string","room"],["string","token"],["string","sound"],["boolean","master_only"],["boolean","play_sound"],["boolean","long_url"]]},{"name":"cia","events":["push"],"supported_events":["push"],"schema":[["string","address"],["string","project"],["string","branch"],["string","module"],["boolean","long_url"],["boolean","full_commits"]]},{"name":"circleci","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[]},{"name":"codeclimate","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"codeportingcsharp2java","events":["push"],"supported_events":["push"],"schema":[["string","project_name"],["string","repo_key"],["string","target_repo_key"],["string","codeporting_username"],["password","codeporting_password"],["string","github_access_token"]]},{"name":"codeship","events":["push"],"supported_events":["push"],"schema":[["string","project_uuid"]]},{"name":"coffeedocinfo","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[]},{"name":"conductor","events":["push"],"supported_events":["push"],"schema":[["string","api_key"]]},{"name":"coop","events":["push"],"supported_events":["push"],"schema":[["string","group_id"],["string","token"]]},{"name":"copperegg","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","tag"],["boolean","master_only"],["string","api_key"]]},{"name":"cube","events":["push"],"supported_events":["push"],"schema":[["string","domain"],["string","project"],["string","token"]]},{"name":"depending","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"deployhq","events":["push"],"supported_events":["push"],"schema":[["string","deploy_hook_url"],["boolean","email_pusher"]]},{"name":"devaria","events":["push","member","public","issues","gollum"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","project_name"],["string","username"],["string","user_class_id"]]},{"name":"docker","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[]},{"name":"ducksboard","events":["push","issues","fork","watch"],"supported_events":["fork","issues","push","watch"],"schema":[["string","webhook_key"]]},{"name":"email","events":["push"],"supported_events":["public","push"],"schema":[["string","address"],["password","secret"],["boolean","send_from_author"]]},{"name":"firebase","events":["push"],"supported_events":["push"],"schema":[["string","firebase"],["string","secret"]]},{"name":"fisheye","events":["push"],"supported_events":["push"],"schema":[["string","url_base"],["string","token"],["string","repository_name"]]},{"name":"flowdock","events":["commit_comment","gollum","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"]]},{"name":"fogbugz","events":["push"],"supported_events":["push"],"schema":[["string","cvssubmit_url"],["string","fb_repoid"],["string","fb_version"]]},{"name":"freckle","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","subdomain"],["string","project"],["string","token"]]},{"name":"friendfeed","events":["push"],"supported_events":["push"],"schema":[["string","nickname"],["string","remotekey"]]},{"name":"gemini","events":["push"],"supported_events":["push"],"schema":[["string","server_url"],["string","api_key"]]},{"name":"gemnasium","events":["push"],"supported_events":["push"],"schema":[["string","user"],["string","token"]]},{"name":"geocommit","events":["push"],"supported_events":["push"],"schema":[]},{"name":"getlocalization","events":["push"],"supported_events":["push"],"schema":[["string","project_name"],["string","project_token"]]},{"name":"gitlive","events":["push"],"supported_events":["push"],"schema":[]},{"name":"grmble","events":["push"],"supported_events":["push"],"schema":[["string","room_api_url"],["string","token"]]},{"name":"grouptalent","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"grove","events":["commit_comment","gollum","issues","issue_comment","pull_request","push"],"supported_events":["push"],"schema":[["string","channel_token"]]},{"name":"habitualist","events":["push"],"supported_events":["push"],"schema":[]},{"name":"hakiri","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"],["string","project_id"]]},{"name":"hall","events":["commit_comment","gollum","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","room_token"]]},{"name":"harvest","events":["push"],"supported_events":["push"],"schema":[["string","subdomain"],["string","username"],["password","password"],["boolean","ssl"]]},{"name":"hipchat","events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","auth_token"],["string","room"],["string","restrict_to_branch"],["boolean","notify"],["boolean","quiet_fork"],["boolean","quiet_watch"],["boolean","quiet_comments"]]},{"name":"hostedgraphite","events":["push"],"supported_events":["push"],"schema":[["string","api_key"]]},{"name":"hubcap","events":["push"],"supported_events":["push"],"schema":[]},{"name":"hubci","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"humbug","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","push","team_add","watch","pull_request_review_comment","status"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","email"],["string","api_key"],["string","stream"],["string","branches"]]},{"name":"icescrum","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","project_key"],["string","username"],["password","password"]]},{"name":"irc","events":["push","pull_request"],"supported_events":["commit_comment","issue_comment","issues","pull_request","pull_request_review_comment","push"],"schema":[["string","server"],["string","port"],["string","room"],["string","nick"],["string","branch_regexes"],["string","nickserv_password"],["password","password"],["boolean","ssl"],["boolean","message_without_join"],["boolean","no_colors"],["boolean","long_url"],["boolean","notice"]]},{"name":"irker","events":["push"],"supported_events":["push"],"schema":[["string","address"],["string","project"],["string","branch"],["string","module"],["string","channels"],["boolean","long_url"],["boolean","color"],["boolean","full_commits"]]},{"name":"ironmq","events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"],["string","project_id"],["string","queue_name"]]},{"name":"ironworker","events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"],["string","project_id"],["string","queue_name"]]},{"name":"jabber","events":["push"],"supported_events":["push"],"schema":[["string","user"]]},{"name":"jaconda","events":["commit_comment","download","fork","fork_apply","gollum","issues","issue_comment","member","public","pull_request","push","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","subdomain"],["string","room_id"],["string","room_token"],["boolean","digest"]]},{"name":"jeapie","events":["push","pull_request","commit_comment"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"]]},{"name":"jenkins","events":["push"],"supported_events":["push"],"schema":[["string","jenkins_hook_url"]]},{"name":"jenkinsgit","events":["push"],"supported_events":["push"],"schema":[["string","jenkins_url"]]},{"name":"jira","events":["push"],"supported_events":["push"],"schema":[["string","server_url"],["string","api_version"],["string","username"],["password","password"]]},{"name":"jqueryplugins","events":["push"],"supported_events":["push"],"schema":[]},{"name":"kanbanery","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","project_token"]]},{"name":"kickoff","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","project_token"]]},{"name":"leanto","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"lechat","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","webhook_url"]]},{"name":"lighthouse","events":["push"],"supported_events":["push"],"schema":[["string","subdomain"],["string","project_id"],["string","token"],["boolean","private"],["boolean","send_only_ticket_commits"]]},{"name":"lingohub","events":["push"],"supported_events":["push"],"schema":[["string","project_token"]]},{"name":"loggly","events":["push"],"supported_events":["push"],"schema":[["string","input_token"]]},{"name":"mantisbt","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","api_key"]]},{"name":"masterbranch","events":["push"],"supported_events":["push"],"schema":[]},{"name":"mqttpub","events":["push"],"supported_events":["push"],"schema":[["string","broker"],["string","port"],["string","topic"],["string","clientid"],["string","user"],["password","pass"],["boolean","retain"]]},{"name":"nma","events":["push"],"supported_events":["push"],"schema":[["string","apikey"]]},{"name":"nodejitsu","events":["push"],"supported_events":["push"],"schema":[["string","username"],["password","password"],["string","branch"],["string","endpoint"],["boolean","email_success_deploys"],["boolean","email_errors"]]},{"name":"notifo","events":["push"],"supported_events":["push"],"schema":[["string","subscribers"]]},{"name":"ontime","events":["push"],"supported_events":["push"],"schema":[["string","ontime_url"],["string","api_key"]]},{"name":"pachube","events":["push"],"supported_events":["push"],"schema":[["string","api_key"],["string","feed_id"],["string","track_branch"]]},{"name":"packagist","events":["push"],"supported_events":["push"],"schema":[["string","user"],["string","token"],["string","domain"]]},{"name":"phraseapp","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","auth_token"]]},{"name":"pivotaltracker","events":["push"],"supported_events":["push"],"schema":[["string","token"],["string","branch"],["string","endpoint"]]},{"name":"planbox","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"planio","events":["push"],"supported_events":["push"],"schema":[["string","address"],["string","project"],["string","api_key"]]},{"name":"prowl","events":["push"],"supported_events":["push"],"schema":[["string","apikey"]]},{"name":"puppetlinter","events":["push"],"supported_events":["push"],"schema":[]},{"name":"pushalot","events":["push"],"supported_events":["push"],"schema":[["string","authorization_token"]]},{"name":"pushover","events":["push"],"supported_events":["push"],"schema":[["string","user_key"],["string","device_name"]]},{"name":"pythonpackages","events":["push"],"supported_events":["push"],"schema":[]},{"name":"railsbp","events":["push"],"supported_events":["push"],"schema":[["string","railsbp_url"],["string","token"]]},{"name":"railsbrakeman","events":["push"],"supported_events":["push"],"schema":[["string","rails_brakeman_url"],["string","token"]]},{"name":"rally","events":["push"],"supported_events":["push"],"schema":[["string","server"],["string","username"],["string","workspace"],["string","repository"],["password","password"]]},{"name":"rapidpush","events":["push"],"supported_events":["push"],"schema":[["string","apikey"]]},{"name":"rationaljazzhub","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","username"],["password","password"],["string","override_server_url"]]},{"name":"rationalteamconcert","events":["push"],"supported_events":["push"],"schema":[["string","server_url"],["string","username"],["string","project_area_uuid"],["password","password"],["boolean","basic_authentication"],["boolean","no_verify_ssl"]]},{"name":"rdocinfo","events":["push"],"supported_events":["push"],"schema":[]},{"name":"readthedocs","events":["push"],"supported_events":["push"],"schema":[]},{"name":"redmine","events":["push"],"supported_events":["push"],"schema":[["string","address"],["string","project"],["string","api_key"],["boolean","fetch_commits"],["boolean","update_redmine_issues_about_commits"]]},{"name":"rubyforge","events":["push"],"supported_events":["push"],"schema":[["string","groupid"],["string","username"],["password","password"]]},{"name":"scrumdo","events":["push"],"supported_events":["push"],"schema":[["string","username"],["string","project_slug"],["password","password"]]},{"name":"shiningpanda","events":["push"],"supported_events":["push"],"schema":[["string","workspace"],["string","job"],["string","token"],["string","branches"],["string","parameters"]]},{"name":"sifter","events":["push"],"supported_events":["push"],"schema":[["string","subdomain"],["string","token"]]},{"name":"simperium","events":["push","issues","issue_comment","commit_comment","pull_request","pull_request_review_comment","watch","fork","fork_apply","member","public","team_add","status"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","app_id"],["string","token"],["string","bucket"]]},{"name":"slatebox","events":["push"],"supported_events":["push"],"schema":[["string","app_id"],["string","token"]]},{"name":"snowyevening","events":["push"],"supported_events":["push"],"schema":[["string","project"],["string","api_key"]]},{"name":"socialcast","events":["push"],"supported_events":["push"],"schema":[["string","api_domain"],["string","group_id"],["string","username"],["password","password"]]},{"name":"softlayermessaging","events":["push"],"supported_events":["push"],"schema":[["string","account"],["string","user"],["string","name"],["password","key"],["boolean","topic"]]},{"name":"sourcemint","events":["push"],"supported_events":["push"],"schema":[]},{"name":"splendidbacon","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","token"]]},{"name":"sprintly","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","push","team_add","watch","pull_request_review_comment","status"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","email"],["string","api_key"],["string","product_id"]]},{"name":"sqsqueue","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","aws_access_key"],["string","sqs_queue_name"],["password","aws_secret_key"]]},{"name":"stackmob","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"statusnet","events":["push"],"supported_events":["push"],"schema":[["string","server"],["string","username"],["password","password"],["boolean","digest"]]},{"name":"talker","events":["push"],"supported_events":["issues","pull_request","push"],"schema":[["string","url"],["string","token"],["boolean","digest"]]},{"name":"targetprocess","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","username"],["password","password"]]},{"name":"tddium","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"],["string","override_url"]]},{"name":"teamcity","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","build_type_id"],["string","username"],["string","branches"],["password","password"]]},{"name":"tender","events":["issues"],"supported_events":["issues","pull_request"],"schema":[["string","domain"],["string","token"]]},{"name":"tenxer","events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[]},{"name":"testpilot","events":["push"],"supported_events":["push"],"schema":[["string","token"]]},{"name":"toggl","events":["push"],"supported_events":["push"],"schema":[["string","project"],["string","api_token"]]},{"name":"trac","events":["push"],"supported_events":["push"],"schema":[["string","url"],["string","token"]]},{"name":"trajectory","events":["push"],"supported_events":["pull_request","push"],"schema":[["string","api_key"]]},{"name":"travis","events":["push","pull_request","issue_comment","public","member"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","user"],["password","token"],["string","domain"]]},{"name":"trello","events":["push","pull_request"],"supported_events":["pull_request","push"],"schema":[["string","push_list_id"],["string","pull_request_list_id"],["string","ignore_regex"],["boolean","master_only"],["password","consumer_token"]]},{"name":"twilio","events":["push"],"supported_events":["push"],"schema":[["string","account_sid"],["string","from_phone"],["string","to_phone"],["boolean","master_only"],["password","auth_token"]]},{"name":"twitter","events":["push"],"supported_events":["push"],"schema":[["string","token"],["string","secret"],["boolean","digest"],["boolean","short_format"]]},{"name":"unfuddle","events":["push"],"supported_events":["push"],"schema":[["string","subdomain"],["string","repo_id"],["string","username"],["password","password"],["boolean","httponly"]]},{"name":"web","events":["push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","url"],["string","secret"],["string","content_type"],["string","ssl_version"],["boolean","insecure_ssl"]]},{"name":"weblate","events":["push"],"supported_events":["push"],"schema":[["string","url"]]},{"name":"webtranslateit","events":["push"],"supported_events":["push"],"schema":[["string","api_key"]]},{"name":"yammer","events":["push","commit_comment","pull_request","pull_request_review_comment","public"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","token"]]},{"name":"youtrack","events":["push"],"supported_events":["push"],"schema":[["string","base_url"],["string","committers"],["string","username"],["string","branch"],["password","password"]]},{"name":"zendesk","events":["commit_comment","issues","issue_comment","pull_request","push"],"supported_events":["commit_comment","create","delete","download","follow","fork","fork_apply","gist","gollum","issue_comment","issues","member","public","pull_request","pull_request_review_comment","push","status","team_add","watch"],"schema":[["string","subdomain"],["string","username"],["password","password"]]},{"name":"zohoprojects","events":["push"],"supported_events":["push"],"schema":[["string","project_id"],["string","token"]]}] + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/compare/master...develop +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4870'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'b385a4bc-89bd-418f-b2ee-948a4ed67670'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '711256'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 09:04:41 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"ff2ab76c56b865233dfb98f5804276b6"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:51 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/compare/master...develop","html_url":"https://github.com/jacquev6/PyGithub/compare/master...develop","permalink_url":"https://github.com/jacquev6/PyGithub/compare/jacquev6:ed781f8...jacquev6:a659749","diff_url":"https://github.com/jacquev6/PyGithub/compare/master...develop.diff","patch_url":"https://github.com/jacquev6/PyGithub/compare/master...develop.patch","base_commit":{"sha":"ed781f8b1b96e1d2a342d36ca53114ea28862fa8","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T16:39:22Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T16:39:22Z"},"message":"Fix date of 1.18.0","tree":{"sha":"e90c43164378222f04883c0f6547102df818d1ef","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e90c43164378222f04883c0f6547102df818d1ef"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","html_url":"https://github.com/jacquev6/PyGithub/commit/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"2c4e3cbc24581c214f44682bfc3e7f438bae127a","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2c4e3cbc24581c214f44682bfc3e7f438bae127a","html_url":"https://github.com/jacquev6/PyGithub/commit/2c4e3cbc24581c214f44682bfc3e7f438bae127a"}]},"merge_base_commit":{"sha":"ed781f8b1b96e1d2a342d36ca53114ea28862fa8","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T16:39:22Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T16:39:22Z"},"message":"Fix date of 1.18.0","tree":{"sha":"e90c43164378222f04883c0f6547102df818d1ef","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e90c43164378222f04883c0f6547102df818d1ef"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","html_url":"https://github.com/jacquev6/PyGithub/commit/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"2c4e3cbc24581c214f44682bfc3e7f438bae127a","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2c4e3cbc24581c214f44682bfc3e7f438bae127a","html_url":"https://github.com/jacquev6/PyGithub/commit/2c4e3cbc24581c214f44682bfc3e7f438bae127a"}]},"status":"ahead","ahead_by":99,"behind_by":0,"total_commits":99,"commits":[{"sha":"ea4bd8c9ad94a2e38bc272c9f9ff8cfdccea4c03","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T00:27:42Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T00:27:42Z"},"message":"Update .gitignore to ignore eproject settings and custom build batch files","tree":{"sha":"b4bf5289c36eb4f50999895cf7f1d0c8ddd26448","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b4bf5289c36eb4f50999895cf7f1d0c8ddd26448"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ea4bd8c9ad94a2e38bc272c9f9ff8cfdccea4c03","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ea4bd8c9ad94a2e38bc272c9f9ff8cfdccea4c03","html_url":"https://github.com/jacquev6/PyGithub/commit/ea4bd8c9ad94a2e38bc272c9f9ff8cfdccea4c03","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ea4bd8c9ad94a2e38bc272c9f9ff8cfdccea4c03/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"0a1e1fa488a7cf43016fe9ec30e5cc54dfcc7bfd","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0a1e1fa488a7cf43016fe9ec30e5cc54dfcc7bfd","html_url":"https://github.com/jacquev6/PyGithub/commit/0a1e1fa488a7cf43016fe9ec30e5cc54dfcc7bfd"}]},{"sha":"cfbe7fb0b0e8f72f8725e48a4155ab0338d9773f","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T03:21:15Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T03:21:15Z"},"message":"Change GithubObject.__init__ without breaking build.","tree":{"sha":"30c8a26c9dd4a5c68c8b15666f126f9ef3929d8f","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/30c8a26c9dd4a5c68c8b15666f126f9ef3929d8f"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/cfbe7fb0b0e8f72f8725e48a4155ab0338d9773f","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cfbe7fb0b0e8f72f8725e48a4155ab0338d9773f","html_url":"https://github.com/jacquev6/PyGithub/commit/cfbe7fb0b0e8f72f8725e48a4155ab0338d9773f","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cfbe7fb0b0e8f72f8725e48a4155ab0338d9773f/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"ea4bd8c9ad94a2e38bc272c9f9ff8cfdccea4c03","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ea4bd8c9ad94a2e38bc272c9f9ff8cfdccea4c03","html_url":"https://github.com/jacquev6/PyGithub/commit/ea4bd8c9ad94a2e38bc272c9f9ff8cfdccea4c03"}]},{"sha":"0bc138b490b0b9d7ebc5e539547b88e062dd127d","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T04:32:41Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T04:32:41Z"},"message":"Change NonCompletableGithubObject without breaking build.","tree":{"sha":"05c4e4c51ed7f77adf8f96b1ef6262bd004822db","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/05c4e4c51ed7f77adf8f96b1ef6262bd004822db"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0bc138b490b0b9d7ebc5e539547b88e062dd127d","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0bc138b490b0b9d7ebc5e539547b88e062dd127d","html_url":"https://github.com/jacquev6/PyGithub/commit/0bc138b490b0b9d7ebc5e539547b88e062dd127d","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0bc138b490b0b9d7ebc5e539547b88e062dd127d/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"cfbe7fb0b0e8f72f8725e48a4155ab0338d9773f","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cfbe7fb0b0e8f72f8725e48a4155ab0338d9773f","html_url":"https://github.com/jacquev6/PyGithub/commit/cfbe7fb0b0e8f72f8725e48a4155ab0338d9773f"}]},{"sha":"b12c4b38c55ad9649541668950a01e6b3940a1bc","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:05:41Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:05:41Z"},"message":"Update Tag.py","tree":{"sha":"61648b068707a2dd5d7cc00832acc5eb76be102e","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/61648b068707a2dd5d7cc00832acc5eb76be102e"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b12c4b38c55ad9649541668950a01e6b3940a1bc","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b12c4b38c55ad9649541668950a01e6b3940a1bc","html_url":"https://github.com/jacquev6/PyGithub/commit/b12c4b38c55ad9649541668950a01e6b3940a1bc","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b12c4b38c55ad9649541668950a01e6b3940a1bc/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"0bc138b490b0b9d7ebc5e539547b88e062dd127d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0bc138b490b0b9d7ebc5e539547b88e062dd127d","html_url":"https://github.com/jacquev6/PyGithub/commit/0bc138b490b0b9d7ebc5e539547b88e062dd127d"}]},{"sha":"9f6562cb625d30b08b053da44a059ace70ed366e","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:07:23Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:07:23Z"},"message":"Update CommitStatus.py","tree":{"sha":"9d219ca7890099f4b9865927af6d8444557d5dd9","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9d219ca7890099f4b9865927af6d8444557d5dd9"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/9f6562cb625d30b08b053da44a059ace70ed366e","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9f6562cb625d30b08b053da44a059ace70ed366e","html_url":"https://github.com/jacquev6/PyGithub/commit/9f6562cb625d30b08b053da44a059ace70ed366e","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9f6562cb625d30b08b053da44a059ace70ed366e/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"b12c4b38c55ad9649541668950a01e6b3940a1bc","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b12c4b38c55ad9649541668950a01e6b3940a1bc","html_url":"https://github.com/jacquev6/PyGithub/commit/b12c4b38c55ad9649541668950a01e6b3940a1bc"}]},{"sha":"e8e8d174fb65249dd6aa41d3ec7993223dc83af4","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:08:48Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:08:48Z"},"message":"Update Event.py","tree":{"sha":"965865c144a91581cd5560a6853ac7d244e8621d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/965865c144a91581cd5560a6853ac7d244e8621d"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e8e8d174fb65249dd6aa41d3ec7993223dc83af4","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e8e8d174fb65249dd6aa41d3ec7993223dc83af4","html_url":"https://github.com/jacquev6/PyGithub/commit/e8e8d174fb65249dd6aa41d3ec7993223dc83af4","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e8e8d174fb65249dd6aa41d3ec7993223dc83af4/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"9f6562cb625d30b08b053da44a059ace70ed366e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9f6562cb625d30b08b053da44a059ace70ed366e","html_url":"https://github.com/jacquev6/PyGithub/commit/9f6562cb625d30b08b053da44a059ace70ed366e"}]},{"sha":"6943f6da7f84b05b8eae4555dbc598df2fe5ec01","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:10:32Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:10:32Z"},"message":"Update Branch.py","tree":{"sha":"69f9bb6bfbaa5a78bf94976b71fb778f6e105c17","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/69f9bb6bfbaa5a78bf94976b71fb778f6e105c17"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6943f6da7f84b05b8eae4555dbc598df2fe5ec01","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6943f6da7f84b05b8eae4555dbc598df2fe5ec01","html_url":"https://github.com/jacquev6/PyGithub/commit/6943f6da7f84b05b8eae4555dbc598df2fe5ec01","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6943f6da7f84b05b8eae4555dbc598df2fe5ec01/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"e8e8d174fb65249dd6aa41d3ec7993223dc83af4","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e8e8d174fb65249dd6aa41d3ec7993223dc83af4","html_url":"https://github.com/jacquev6/PyGithub/commit/e8e8d174fb65249dd6aa41d3ec7993223dc83af4"}]},{"sha":"bb56857b4d5e9d85f26815a3da4c69f6bc718fbd","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:15:25Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:15:25Z"},"message":"Update File.py","tree":{"sha":"1435b24b2da7c0403801e09ea0e9bf9cc1660eac","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1435b24b2da7c0403801e09ea0e9bf9cc1660eac"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/bb56857b4d5e9d85f26815a3da4c69f6bc718fbd","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bb56857b4d5e9d85f26815a3da4c69f6bc718fbd","html_url":"https://github.com/jacquev6/PyGithub/commit/bb56857b4d5e9d85f26815a3da4c69f6bc718fbd","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bb56857b4d5e9d85f26815a3da4c69f6bc718fbd/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"6943f6da7f84b05b8eae4555dbc598df2fe5ec01","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6943f6da7f84b05b8eae4555dbc598df2fe5ec01","html_url":"https://github.com/jacquev6/PyGithub/commit/6943f6da7f84b05b8eae4555dbc598df2fe5ec01"}]},{"sha":"c2dd9452eabc70bf88fc4769e48df63c0de8ce8a","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:18:29Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:18:29Z"},"message":"Update Gist.py","tree":{"sha":"002b4962bc4386c46823d1f2f36c7fad4e8aa2b4","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/002b4962bc4386c46823d1f2f36c7fad4e8aa2b4"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c2dd9452eabc70bf88fc4769e48df63c0de8ce8a","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c2dd9452eabc70bf88fc4769e48df63c0de8ce8a","html_url":"https://github.com/jacquev6/PyGithub/commit/c2dd9452eabc70bf88fc4769e48df63c0de8ce8a","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c2dd9452eabc70bf88fc4769e48df63c0de8ce8a/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"bb56857b4d5e9d85f26815a3da4c69f6bc718fbd","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bb56857b4d5e9d85f26815a3da4c69f6bc718fbd","html_url":"https://github.com/jacquev6/PyGithub/commit/bb56857b4d5e9d85f26815a3da4c69f6bc718fbd"}]},{"sha":"4f1e05200d35e951fb52730c3d783c2942836695","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:21:49Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:21:49Z"},"message":"Update GitAuthor.py","tree":{"sha":"c5ad338858b03d34b38b1ca8a8ea8578d5a64da5","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c5ad338858b03d34b38b1ca8a8ea8578d5a64da5"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4f1e05200d35e951fb52730c3d783c2942836695","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4f1e05200d35e951fb52730c3d783c2942836695","html_url":"https://github.com/jacquev6/PyGithub/commit/4f1e05200d35e951fb52730c3d783c2942836695","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4f1e05200d35e951fb52730c3d783c2942836695/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"c2dd9452eabc70bf88fc4769e48df63c0de8ce8a","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c2dd9452eabc70bf88fc4769e48df63c0de8ce8a","html_url":"https://github.com/jacquev6/PyGithub/commit/c2dd9452eabc70bf88fc4769e48df63c0de8ce8a"}]},{"sha":"0879cbb6ff5f349bc8f867dace06801cf8f04136","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:23:21Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:23:21Z"},"message":"Update GitignoreTemplate.py","tree":{"sha":"eac0b02fc4be8c34681d548624dec5d93b0875e4","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/eac0b02fc4be8c34681d548624dec5d93b0875e4"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0879cbb6ff5f349bc8f867dace06801cf8f04136","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0879cbb6ff5f349bc8f867dace06801cf8f04136","html_url":"https://github.com/jacquev6/PyGithub/commit/0879cbb6ff5f349bc8f867dace06801cf8f04136","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0879cbb6ff5f349bc8f867dace06801cf8f04136/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"4f1e05200d35e951fb52730c3d783c2942836695","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4f1e05200d35e951fb52730c3d783c2942836695","html_url":"https://github.com/jacquev6/PyGithub/commit/4f1e05200d35e951fb52730c3d783c2942836695"}]},{"sha":"274ab70f874098d1a0385e636748f0651b739e62","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:26:08Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:26:08Z"},"message":"Update GitObject.py","tree":{"sha":"596c0e549efc2279f7343db4d1abee3eb70955c7","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/596c0e549efc2279f7343db4d1abee3eb70955c7"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/274ab70f874098d1a0385e636748f0651b739e62","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/274ab70f874098d1a0385e636748f0651b739e62","html_url":"https://github.com/jacquev6/PyGithub/commit/274ab70f874098d1a0385e636748f0651b739e62","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/274ab70f874098d1a0385e636748f0651b739e62/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"0879cbb6ff5f349bc8f867dace06801cf8f04136","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0879cbb6ff5f349bc8f867dace06801cf8f04136","html_url":"https://github.com/jacquev6/PyGithub/commit/0879cbb6ff5f349bc8f867dace06801cf8f04136"}]},{"sha":"02435f3a9f5f321f5ff3d5c1f4bcb9a10fc5e290","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:30:39Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:30:39Z"},"message":"Update GitTree.py","tree":{"sha":"245148f865501a2ad0614136baef4ea6c2341992","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/245148f865501a2ad0614136baef4ea6c2341992"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/02435f3a9f5f321f5ff3d5c1f4bcb9a10fc5e290","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/02435f3a9f5f321f5ff3d5c1f4bcb9a10fc5e290","html_url":"https://github.com/jacquev6/PyGithub/commit/02435f3a9f5f321f5ff3d5c1f4bcb9a10fc5e290","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/02435f3a9f5f321f5ff3d5c1f4bcb9a10fc5e290/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"274ab70f874098d1a0385e636748f0651b739e62","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/274ab70f874098d1a0385e636748f0651b739e62","html_url":"https://github.com/jacquev6/PyGithub/commit/274ab70f874098d1a0385e636748f0651b739e62"}]},{"sha":"ac1585ee13f13cfa20fd79a78c4643de815607fd","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:59:08Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T05:59:08Z"},"message":"Update HookDescription.py.","tree":{"sha":"6509b30ec9b0ff54edde6277bf408585b68e464b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6509b30ec9b0ff54edde6277bf408585b68e464b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ac1585ee13f13cfa20fd79a78c4643de815607fd","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ac1585ee13f13cfa20fd79a78c4643de815607fd","html_url":"https://github.com/jacquev6/PyGithub/commit/ac1585ee13f13cfa20fd79a78c4643de815607fd","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ac1585ee13f13cfa20fd79a78c4643de815607fd/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"02435f3a9f5f321f5ff3d5c1f4bcb9a10fc5e290","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/02435f3a9f5f321f5ff3d5c1f4bcb9a10fc5e290","html_url":"https://github.com/jacquev6/PyGithub/commit/02435f3a9f5f321f5ff3d5c1f4bcb9a10fc5e290"}]},{"sha":"d6170e36de261f8107cdc40e1e6e3c91bac0eb3d","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:03:57Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:03:57Z"},"message":"Update IssuePullRequest.py","tree":{"sha":"a5ea8a1ed6a03152d916d4c066ee2394ed4a4f97","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a5ea8a1ed6a03152d916d4c066ee2394ed4a4f97"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/d6170e36de261f8107cdc40e1e6e3c91bac0eb3d","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d6170e36de261f8107cdc40e1e6e3c91bac0eb3d","html_url":"https://github.com/jacquev6/PyGithub/commit/d6170e36de261f8107cdc40e1e6e3c91bac0eb3d","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d6170e36de261f8107cdc40e1e6e3c91bac0eb3d/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"ac1585ee13f13cfa20fd79a78c4643de815607fd","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ac1585ee13f13cfa20fd79a78c4643de815607fd","html_url":"https://github.com/jacquev6/PyGithub/commit/ac1585ee13f13cfa20fd79a78c4643de815607fd"}]},{"sha":"12387505e2fbf25ceae63f169b13d57d86b80282","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:05:10Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:05:10Z"},"message":"Update Notification.py","tree":{"sha":"2a05533d50e9e0b9173fa9030bad2259f9a8d24b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2a05533d50e9e0b9173fa9030bad2259f9a8d24b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/12387505e2fbf25ceae63f169b13d57d86b80282","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/12387505e2fbf25ceae63f169b13d57d86b80282","html_url":"https://github.com/jacquev6/PyGithub/commit/12387505e2fbf25ceae63f169b13d57d86b80282","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/12387505e2fbf25ceae63f169b13d57d86b80282/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"d6170e36de261f8107cdc40e1e6e3c91bac0eb3d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d6170e36de261f8107cdc40e1e6e3c91bac0eb3d","html_url":"https://github.com/jacquev6/PyGithub/commit/d6170e36de261f8107cdc40e1e6e3c91bac0eb3d"}]},{"sha":"6e11aa9cf041be25691971476bc474facb1bd1f1","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:07:10Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:07:10Z"},"message":"Update Permissions.py","tree":{"sha":"1653ca5e502dacc579e8489c1ff967970e95a68f","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1653ca5e502dacc579e8489c1ff967970e95a68f"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6e11aa9cf041be25691971476bc474facb1bd1f1","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6e11aa9cf041be25691971476bc474facb1bd1f1","html_url":"https://github.com/jacquev6/PyGithub/commit/6e11aa9cf041be25691971476bc474facb1bd1f1","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6e11aa9cf041be25691971476bc474facb1bd1f1/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"12387505e2fbf25ceae63f169b13d57d86b80282","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/12387505e2fbf25ceae63f169b13d57d86b80282","html_url":"https://github.com/jacquev6/PyGithub/commit/12387505e2fbf25ceae63f169b13d57d86b80282"}]},{"sha":"dcb6874745b2e0466017f94be745ba35b72a3748","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:09:11Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:09:11Z"},"message":"Fix CommitStats.py","tree":{"sha":"9191d147b43f13eee33b585441a4573028534a02","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9191d147b43f13eee33b585441a4573028534a02"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/dcb6874745b2e0466017f94be745ba35b72a3748","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dcb6874745b2e0466017f94be745ba35b72a3748","html_url":"https://github.com/jacquev6/PyGithub/commit/dcb6874745b2e0466017f94be745ba35b72a3748","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dcb6874745b2e0466017f94be745ba35b72a3748/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"6e11aa9cf041be25691971476bc474facb1bd1f1","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6e11aa9cf041be25691971476bc474facb1bd1f1","html_url":"https://github.com/jacquev6/PyGithub/commit/6e11aa9cf041be25691971476bc474facb1bd1f1"}]},{"sha":"deb0514b5e7364b307a611797681da8ddf6db5c1","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:10:37Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:10:37Z"},"message":"Update Hook.py","tree":{"sha":"2a46cd5f6c33398d1b347912bcdc596fa0b66d0d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2a46cd5f6c33398d1b347912bcdc596fa0b66d0d"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/deb0514b5e7364b307a611797681da8ddf6db5c1","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/deb0514b5e7364b307a611797681da8ddf6db5c1","html_url":"https://github.com/jacquev6/PyGithub/commit/deb0514b5e7364b307a611797681da8ddf6db5c1","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/deb0514b5e7364b307a611797681da8ddf6db5c1/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"dcb6874745b2e0466017f94be745ba35b72a3748","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dcb6874745b2e0466017f94be745ba35b72a3748","html_url":"https://github.com/jacquev6/PyGithub/commit/dcb6874745b2e0466017f94be745ba35b72a3748"}]},{"sha":"c7aeaddfa8897ed9a23764bbb4beda29403ab413","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:13:14Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:13:14Z"},"message":"Fix PullRequestMergeStatus.py","tree":{"sha":"e4f7ae5aa275ca50cbc0e52dcb49ad224355f0af","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e4f7ae5aa275ca50cbc0e52dcb49ad224355f0af"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c7aeaddfa8897ed9a23764bbb4beda29403ab413","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c7aeaddfa8897ed9a23764bbb4beda29403ab413","html_url":"https://github.com/jacquev6/PyGithub/commit/c7aeaddfa8897ed9a23764bbb4beda29403ab413","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c7aeaddfa8897ed9a23764bbb4beda29403ab413/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"deb0514b5e7364b307a611797681da8ddf6db5c1","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/deb0514b5e7364b307a611797681da8ddf6db5c1","html_url":"https://github.com/jacquev6/PyGithub/commit/deb0514b5e7364b307a611797681da8ddf6db5c1"}]},{"sha":"b2c4519c06cf541ae327d80b0b1361e2698e23ae","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:15:09Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:15:09Z"},"message":"Update PulllRequestPart.py","tree":{"sha":"476f8bc503a98475a13bcf929c9af2034044be23","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/476f8bc503a98475a13bcf929c9af2034044be23"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b2c4519c06cf541ae327d80b0b1361e2698e23ae","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b2c4519c06cf541ae327d80b0b1361e2698e23ae","html_url":"https://github.com/jacquev6/PyGithub/commit/b2c4519c06cf541ae327d80b0b1361e2698e23ae","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b2c4519c06cf541ae327d80b0b1361e2698e23ae/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"c7aeaddfa8897ed9a23764bbb4beda29403ab413","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c7aeaddfa8897ed9a23764bbb4beda29403ab413","html_url":"https://github.com/jacquev6/PyGithub/commit/c7aeaddfa8897ed9a23764bbb4beda29403ab413"}]},{"sha":"4a1a1d406896ebd96315fcf9092ab68dfb7a7194","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:19:31Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:19:31Z"},"message":"Update Plan.py","tree":{"sha":"68e82c7745d78fca9ac29501be72a3613f95876a","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/68e82c7745d78fca9ac29501be72a3613f95876a"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4a1a1d406896ebd96315fcf9092ab68dfb7a7194","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4a1a1d406896ebd96315fcf9092ab68dfb7a7194","html_url":"https://github.com/jacquev6/PyGithub/commit/4a1a1d406896ebd96315fcf9092ab68dfb7a7194","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4a1a1d406896ebd96315fcf9092ab68dfb7a7194/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"b2c4519c06cf541ae327d80b0b1361e2698e23ae","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b2c4519c06cf541ae327d80b0b1361e2698e23ae","html_url":"https://github.com/jacquev6/PyGithub/commit/b2c4519c06cf541ae327d80b0b1361e2698e23ae"}]},{"sha":"a1b65636df9408d93b115a3533a091e3e9cc68c4","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:25:07Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:25:07Z"},"message":"Clean up. NonCompletableGithubObject refactoring resolved.","tree":{"sha":"eec00d808853aee3bf03f8e705fbf49bd32b1dab","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/eec00d808853aee3bf03f8e705fbf49bd32b1dab"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a1b65636df9408d93b115a3533a091e3e9cc68c4","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a1b65636df9408d93b115a3533a091e3e9cc68c4","html_url":"https://github.com/jacquev6/PyGithub/commit/a1b65636df9408d93b115a3533a091e3e9cc68c4","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a1b65636df9408d93b115a3533a091e3e9cc68c4/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"4a1a1d406896ebd96315fcf9092ab68dfb7a7194","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4a1a1d406896ebd96315fcf9092ab68dfb7a7194","html_url":"https://github.com/jacquev6/PyGithub/commit/4a1a1d406896ebd96315fcf9092ab68dfb7a7194"}]},{"sha":"ca6189c3c94fac963811342ce9f77104d0b5774b","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:49:20Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T06:49:20Z"},"message":"Change CompletableGithubObject.__init__ without breaking build.","tree":{"sha":"a8fd06251014ac406f89342e2ee118fe5e5e562c","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a8fd06251014ac406f89342e2ee118fe5e5e562c"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ca6189c3c94fac963811342ce9f77104d0b5774b","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ca6189c3c94fac963811342ce9f77104d0b5774b","html_url":"https://github.com/jacquev6/PyGithub/commit/ca6189c3c94fac963811342ce9f77104d0b5774b","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ca6189c3c94fac963811342ce9f77104d0b5774b/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"a1b65636df9408d93b115a3533a091e3e9cc68c4","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a1b65636df9408d93b115a3533a091e3e9cc68c4","html_url":"https://github.com/jacquev6/PyGithub/commit/a1b65636df9408d93b115a3533a091e3e9cc68c4"}]},{"sha":"2f31828502c95fef62970db7d4ca49fa8b4b8e0d","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:04:34Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:04:34Z"},"message":"Update RepositoryKey.py","tree":{"sha":"f1903010376227506f579412a3356276a2ef3a6f","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f1903010376227506f579412a3356276a2ef3a6f"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/2f31828502c95fef62970db7d4ca49fa8b4b8e0d","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2f31828502c95fef62970db7d4ca49fa8b4b8e0d","html_url":"https://github.com/jacquev6/PyGithub/commit/2f31828502c95fef62970db7d4ca49fa8b4b8e0d","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2f31828502c95fef62970db7d4ca49fa8b4b8e0d/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"ca6189c3c94fac963811342ce9f77104d0b5774b","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ca6189c3c94fac963811342ce9f77104d0b5774b","html_url":"https://github.com/jacquev6/PyGithub/commit/ca6189c3c94fac963811342ce9f77104d0b5774b"}]},{"sha":"28a49b94d87408592199ffa018e8c1b3bd9d2a77","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:06:21Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:06:21Z"},"message":"Update AuthenticatedUser.py","tree":{"sha":"be7f3930e35f7752cbf2541d3b9c2ea1b31a4cbb","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/be7f3930e35f7752cbf2541d3b9c2ea1b31a4cbb"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/28a49b94d87408592199ffa018e8c1b3bd9d2a77","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/28a49b94d87408592199ffa018e8c1b3bd9d2a77","html_url":"https://github.com/jacquev6/PyGithub/commit/28a49b94d87408592199ffa018e8c1b3bd9d2a77","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/28a49b94d87408592199ffa018e8c1b3bd9d2a77/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"2f31828502c95fef62970db7d4ca49fa8b4b8e0d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2f31828502c95fef62970db7d4ca49fa8b4b8e0d","html_url":"https://github.com/jacquev6/PyGithub/commit/2f31828502c95fef62970db7d4ca49fa8b4b8e0d"}]},{"sha":"0e19d8e04e847aac690fcd5563c35aa0c1808a80","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:09:34Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:09:34Z"},"message":"Update Authorization.py","tree":{"sha":"fd2c8b34609c810f111d6f911e7bf8af932a3057","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fd2c8b34609c810f111d6f911e7bf8af932a3057"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0e19d8e04e847aac690fcd5563c35aa0c1808a80","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0e19d8e04e847aac690fcd5563c35aa0c1808a80","html_url":"https://github.com/jacquev6/PyGithub/commit/0e19d8e04e847aac690fcd5563c35aa0c1808a80","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0e19d8e04e847aac690fcd5563c35aa0c1808a80/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"28a49b94d87408592199ffa018e8c1b3bd9d2a77","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/28a49b94d87408592199ffa018e8c1b3bd9d2a77","html_url":"https://github.com/jacquev6/PyGithub/commit/28a49b94d87408592199ffa018e8c1b3bd9d2a77"}]},{"sha":"83c6495ec557898cd17a70be184c307558b4535c","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:10:54Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:10:54Z"},"message":"Update AuthorizationApplication.py","tree":{"sha":"59197288fa8348a8fea3ff62a624c1f423bdc243","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/59197288fa8348a8fea3ff62a624c1f423bdc243"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/83c6495ec557898cd17a70be184c307558b4535c","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/83c6495ec557898cd17a70be184c307558b4535c","html_url":"https://github.com/jacquev6/PyGithub/commit/83c6495ec557898cd17a70be184c307558b4535c","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/83c6495ec557898cd17a70be184c307558b4535c/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"0e19d8e04e847aac690fcd5563c35aa0c1808a80","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0e19d8e04e847aac690fcd5563c35aa0c1808a80","html_url":"https://github.com/jacquev6/PyGithub/commit/0e19d8e04e847aac690fcd5563c35aa0c1808a80"}]},{"sha":"ed32e78da1303962afaf8fa0d616a1828fdaa80b","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:26:05Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:26:05Z"},"message":"Update Commit.py and GitCommit.py","tree":{"sha":"137ed1870455860097e3fde5ecc1d32d3ae58461","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/137ed1870455860097e3fde5ecc1d32d3ae58461"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ed32e78da1303962afaf8fa0d616a1828fdaa80b","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed32e78da1303962afaf8fa0d616a1828fdaa80b","html_url":"https://github.com/jacquev6/PyGithub/commit/ed32e78da1303962afaf8fa0d616a1828fdaa80b","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed32e78da1303962afaf8fa0d616a1828fdaa80b/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"83c6495ec557898cd17a70be184c307558b4535c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/83c6495ec557898cd17a70be184c307558b4535c","html_url":"https://github.com/jacquev6/PyGithub/commit/83c6495ec557898cd17a70be184c307558b4535c"}]},{"sha":"3b2e19488fc6a5f51574d874e546173c1835d10b","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:28:00Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:28:00Z"},"message":"Update CommitComment.py","tree":{"sha":"99c70f3baa022e7e837f7903172325a78d41a2a4","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/99c70f3baa022e7e837f7903172325a78d41a2a4"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/3b2e19488fc6a5f51574d874e546173c1835d10b","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3b2e19488fc6a5f51574d874e546173c1835d10b","html_url":"https://github.com/jacquev6/PyGithub/commit/3b2e19488fc6a5f51574d874e546173c1835d10b","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3b2e19488fc6a5f51574d874e546173c1835d10b/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"ed32e78da1303962afaf8fa0d616a1828fdaa80b","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed32e78da1303962afaf8fa0d616a1828fdaa80b","html_url":"https://github.com/jacquev6/PyGithub/commit/ed32e78da1303962afaf8fa0d616a1828fdaa80b"}]},{"sha":"ced048663ba392bfee2543cea5f5fbf875771c0e","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:29:13Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:29:13Z"},"message":"Update Comparision.py","tree":{"sha":"25c0fef0fa652ad8bce55c3efbd10028298eb24f","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/25c0fef0fa652ad8bce55c3efbd10028298eb24f"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ced048663ba392bfee2543cea5f5fbf875771c0e","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ced048663ba392bfee2543cea5f5fbf875771c0e","html_url":"https://github.com/jacquev6/PyGithub/commit/ced048663ba392bfee2543cea5f5fbf875771c0e","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ced048663ba392bfee2543cea5f5fbf875771c0e/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"3b2e19488fc6a5f51574d874e546173c1835d10b","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3b2e19488fc6a5f51574d874e546173c1835d10b","html_url":"https://github.com/jacquev6/PyGithub/commit/3b2e19488fc6a5f51574d874e546173c1835d10b"}]},{"sha":"0c13da45929dbc528a4f8f14f8ce54df15888660","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:31:45Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:31:45Z"},"message":"Update ContentFile.py","tree":{"sha":"a9d12c606be5d39883e814a16deca4c959374973","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a9d12c606be5d39883e814a16deca4c959374973"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0c13da45929dbc528a4f8f14f8ce54df15888660","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0c13da45929dbc528a4f8f14f8ce54df15888660","html_url":"https://github.com/jacquev6/PyGithub/commit/0c13da45929dbc528a4f8f14f8ce54df15888660","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0c13da45929dbc528a4f8f14f8ce54df15888660/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"ced048663ba392bfee2543cea5f5fbf875771c0e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ced048663ba392bfee2543cea5f5fbf875771c0e","html_url":"https://github.com/jacquev6/PyGithub/commit/ced048663ba392bfee2543cea5f5fbf875771c0e"}]},{"sha":"c15cb6575b88b56b48fb21e66931ab2108c8b23c","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:33:25Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:33:25Z"},"message":"Update Download.py","tree":{"sha":"77bb2d83e0989950f5b688505b40ee3bfc3274aa","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/77bb2d83e0989950f5b688505b40ee3bfc3274aa"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c15cb6575b88b56b48fb21e66931ab2108c8b23c","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c15cb6575b88b56b48fb21e66931ab2108c8b23c","html_url":"https://github.com/jacquev6/PyGithub/commit/c15cb6575b88b56b48fb21e66931ab2108c8b23c","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c15cb6575b88b56b48fb21e66931ab2108c8b23c/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"0c13da45929dbc528a4f8f14f8ce54df15888660","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0c13da45929dbc528a4f8f14f8ce54df15888660","html_url":"https://github.com/jacquev6/PyGithub/commit/0c13da45929dbc528a4f8f14f8ce54df15888660"}]},{"sha":"dc8173a5328cede580cae7e2bbf053ee98185d4e","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:39:34Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:39:34Z"},"message":"Update Gist*.py","tree":{"sha":"3d7859d27a4f4ef40a728f1787dea342b9f0d904","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/3d7859d27a4f4ef40a728f1787dea342b9f0d904"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/dc8173a5328cede580cae7e2bbf053ee98185d4e","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc8173a5328cede580cae7e2bbf053ee98185d4e","html_url":"https://github.com/jacquev6/PyGithub/commit/dc8173a5328cede580cae7e2bbf053ee98185d4e","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc8173a5328cede580cae7e2bbf053ee98185d4e/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"c15cb6575b88b56b48fb21e66931ab2108c8b23c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c15cb6575b88b56b48fb21e66931ab2108c8b23c","html_url":"https://github.com/jacquev6/PyGithub/commit/c15cb6575b88b56b48fb21e66931ab2108c8b23c"}]},{"sha":"b43de50dc4f4a538e284645b4f83b597d008a8a2","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:48:08Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:48:08Z"},"message":"Update GitBlob.py","tree":{"sha":"fa891e8f586348ce6d20aa33c7a53215bb3f8eed","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/fa891e8f586348ce6d20aa33c7a53215bb3f8eed"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b43de50dc4f4a538e284645b4f83b597d008a8a2","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b43de50dc4f4a538e284645b4f83b597d008a8a2","html_url":"https://github.com/jacquev6/PyGithub/commit/b43de50dc4f4a538e284645b4f83b597d008a8a2","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b43de50dc4f4a538e284645b4f83b597d008a8a2/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"dc8173a5328cede580cae7e2bbf053ee98185d4e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc8173a5328cede580cae7e2bbf053ee98185d4e","html_url":"https://github.com/jacquev6/PyGithub/commit/dc8173a5328cede580cae7e2bbf053ee98185d4e"}]},{"sha":"1dbc2dd38f5c31a8a48082daad4981c79d92f0b7","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:51:12Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:51:12Z"},"message":"Update GitRef.py","tree":{"sha":"5bb940a1d3d1ca30ee86ae9e25fe56aee5132708","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5bb940a1d3d1ca30ee86ae9e25fe56aee5132708"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1dbc2dd38f5c31a8a48082daad4981c79d92f0b7","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1dbc2dd38f5c31a8a48082daad4981c79d92f0b7","html_url":"https://github.com/jacquev6/PyGithub/commit/1dbc2dd38f5c31a8a48082daad4981c79d92f0b7","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1dbc2dd38f5c31a8a48082daad4981c79d92f0b7/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"b43de50dc4f4a538e284645b4f83b597d008a8a2","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b43de50dc4f4a538e284645b4f83b597d008a8a2","html_url":"https://github.com/jacquev6/PyGithub/commit/b43de50dc4f4a538e284645b4f83b597d008a8a2"}]},{"sha":"c89bebc729b48477b0d8949d9179bb2e9a7c3bf8","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:52:57Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:52:57Z"},"message":"Update GitTag.py","tree":{"sha":"86dc08675585c9a8631152f53fa61f7be7fd76ea","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/86dc08675585c9a8631152f53fa61f7be7fd76ea"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c89bebc729b48477b0d8949d9179bb2e9a7c3bf8","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c89bebc729b48477b0d8949d9179bb2e9a7c3bf8","html_url":"https://github.com/jacquev6/PyGithub/commit/c89bebc729b48477b0d8949d9179bb2e9a7c3bf8","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c89bebc729b48477b0d8949d9179bb2e9a7c3bf8/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"1dbc2dd38f5c31a8a48082daad4981c79d92f0b7","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1dbc2dd38f5c31a8a48082daad4981c79d92f0b7","html_url":"https://github.com/jacquev6/PyGithub/commit/1dbc2dd38f5c31a8a48082daad4981c79d92f0b7"}]},{"sha":"038e35cb3d40f85b35b6fbe0807f9c761c474310","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:55:42Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:55:42Z"},"message":"Update GitTree","tree":{"sha":"48f4d2fd9511201c76ada8f1219cae44b427befd","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/48f4d2fd9511201c76ada8f1219cae44b427befd"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/038e35cb3d40f85b35b6fbe0807f9c761c474310","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/038e35cb3d40f85b35b6fbe0807f9c761c474310","html_url":"https://github.com/jacquev6/PyGithub/commit/038e35cb3d40f85b35b6fbe0807f9c761c474310","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/038e35cb3d40f85b35b6fbe0807f9c761c474310/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"c89bebc729b48477b0d8949d9179bb2e9a7c3bf8","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c89bebc729b48477b0d8949d9179bb2e9a7c3bf8","html_url":"https://github.com/jacquev6/PyGithub/commit/c89bebc729b48477b0d8949d9179bb2e9a7c3bf8"}]},{"sha":"044a000d7647e9134c69378f760ff1a2bd141f4d","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:58:07Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T07:58:07Z"},"message":"Update Hook.py","tree":{"sha":"2372a21476b8ec8784687cc470382148733a92ed","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2372a21476b8ec8784687cc470382148733a92ed"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/044a000d7647e9134c69378f760ff1a2bd141f4d","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/044a000d7647e9134c69378f760ff1a2bd141f4d","html_url":"https://github.com/jacquev6/PyGithub/commit/044a000d7647e9134c69378f760ff1a2bd141f4d","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/044a000d7647e9134c69378f760ff1a2bd141f4d/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"038e35cb3d40f85b35b6fbe0807f9c761c474310","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/038e35cb3d40f85b35b6fbe0807f9c761c474310","html_url":"https://github.com/jacquev6/PyGithub/commit/038e35cb3d40f85b35b6fbe0807f9c761c474310"}]},{"sha":"49a69c9425789cfb21c49888a144b123ae564cf3","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:08:54Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:08:54Z"},"message":"Update Issue.py","tree":{"sha":"a32e11d7c6e916c0600ec08dbc9298423e4efefb","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a32e11d7c6e916c0600ec08dbc9298423e4efefb"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/49a69c9425789cfb21c49888a144b123ae564cf3","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/49a69c9425789cfb21c49888a144b123ae564cf3","html_url":"https://github.com/jacquev6/PyGithub/commit/49a69c9425789cfb21c49888a144b123ae564cf3","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/49a69c9425789cfb21c49888a144b123ae564cf3/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"044a000d7647e9134c69378f760ff1a2bd141f4d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/044a000d7647e9134c69378f760ff1a2bd141f4d","html_url":"https://github.com/jacquev6/PyGithub/commit/044a000d7647e9134c69378f760ff1a2bd141f4d"}]},{"sha":"8f2ba4f522dbae090b8287663a9a1a88283803b4","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:13:22Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:13:22Z"},"message":"Update IssueComment.py","tree":{"sha":"d7287eda45c3e008132a1650f49dbf124b50bc56","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d7287eda45c3e008132a1650f49dbf124b50bc56"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8f2ba4f522dbae090b8287663a9a1a88283803b4","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8f2ba4f522dbae090b8287663a9a1a88283803b4","html_url":"https://github.com/jacquev6/PyGithub/commit/8f2ba4f522dbae090b8287663a9a1a88283803b4","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8f2ba4f522dbae090b8287663a9a1a88283803b4/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"49a69c9425789cfb21c49888a144b123ae564cf3","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/49a69c9425789cfb21c49888a144b123ae564cf3","html_url":"https://github.com/jacquev6/PyGithub/commit/49a69c9425789cfb21c49888a144b123ae564cf3"}]},{"sha":"7d40b9eae87fb1631f358e3c09a9d691a942f258","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:17:26Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:17:26Z"},"message":"Update IssueEvent.py","tree":{"sha":"4171bd3cc8c8ca69c351ea2bf6b5d19900d6c1c1","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4171bd3cc8c8ca69c351ea2bf6b5d19900d6c1c1"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/7d40b9eae87fb1631f358e3c09a9d691a942f258","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7d40b9eae87fb1631f358e3c09a9d691a942f258","html_url":"https://github.com/jacquev6/PyGithub/commit/7d40b9eae87fb1631f358e3c09a9d691a942f258","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7d40b9eae87fb1631f358e3c09a9d691a942f258/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"8f2ba4f522dbae090b8287663a9a1a88283803b4","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8f2ba4f522dbae090b8287663a9a1a88283803b4","html_url":"https://github.com/jacquev6/PyGithub/commit/8f2ba4f522dbae090b8287663a9a1a88283803b4"}]},{"sha":"175488270a65a97a42c7bc3fd0bf42676ea4a6e3","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:21:22Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:21:22Z"},"message":"Update Label.py","tree":{"sha":"b2fb450a7dfd492b40bca942f761615a1ac6a342","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b2fb450a7dfd492b40bca942f761615a1ac6a342"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/175488270a65a97a42c7bc3fd0bf42676ea4a6e3","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/175488270a65a97a42c7bc3fd0bf42676ea4a6e3","html_url":"https://github.com/jacquev6/PyGithub/commit/175488270a65a97a42c7bc3fd0bf42676ea4a6e3","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/175488270a65a97a42c7bc3fd0bf42676ea4a6e3/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"7d40b9eae87fb1631f358e3c09a9d691a942f258","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7d40b9eae87fb1631f358e3c09a9d691a942f258","html_url":"https://github.com/jacquev6/PyGithub/commit/7d40b9eae87fb1631f358e3c09a9d691a942f258"}]},{"sha":"e4baf577ed5445bbc156c123ccbd7da3c1a3b650","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:24:27Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:24:27Z"},"message":"Update Milestone.py","tree":{"sha":"6cd4d4a0cc49e8a0ecacc793fccdf99e66668cd2","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6cd4d4a0cc49e8a0ecacc793fccdf99e66668cd2"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e4baf577ed5445bbc156c123ccbd7da3c1a3b650","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e4baf577ed5445bbc156c123ccbd7da3c1a3b650","html_url":"https://github.com/jacquev6/PyGithub/commit/e4baf577ed5445bbc156c123ccbd7da3c1a3b650","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e4baf577ed5445bbc156c123ccbd7da3c1a3b650/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"175488270a65a97a42c7bc3fd0bf42676ea4a6e3","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/175488270a65a97a42c7bc3fd0bf42676ea4a6e3","html_url":"https://github.com/jacquev6/PyGithub/commit/175488270a65a97a42c7bc3fd0bf42676ea4a6e3"}]},{"sha":"ba6800ada4213828bdb4f5d54d14e0d4c3c25c4c","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:57:10Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:57:10Z"},"message":"Update NamedUser.py","tree":{"sha":"22c59fcb82b68071233ebe394ed249d85304b589","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/22c59fcb82b68071233ebe394ed249d85304b589"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ba6800ada4213828bdb4f5d54d14e0d4c3c25c4c","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ba6800ada4213828bdb4f5d54d14e0d4c3c25c4c","html_url":"https://github.com/jacquev6/PyGithub/commit/ba6800ada4213828bdb4f5d54d14e0d4c3c25c4c","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ba6800ada4213828bdb4f5d54d14e0d4c3c25c4c/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"e4baf577ed5445bbc156c123ccbd7da3c1a3b650","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e4baf577ed5445bbc156c123ccbd7da3c1a3b650","html_url":"https://github.com/jacquev6/PyGithub/commit/e4baf577ed5445bbc156c123ccbd7da3c1a3b650"}]},{"sha":"6cb6e8d232f84e7456c184a4cd055281bb0dba07","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:58:25Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T08:58:25Z"},"message":"Update Notification.py","tree":{"sha":"12744defe09c67111d1ce8454619db76441c74c2","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/12744defe09c67111d1ce8454619db76441c74c2"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6cb6e8d232f84e7456c184a4cd055281bb0dba07","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6cb6e8d232f84e7456c184a4cd055281bb0dba07","html_url":"https://github.com/jacquev6/PyGithub/commit/6cb6e8d232f84e7456c184a4cd055281bb0dba07","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6cb6e8d232f84e7456c184a4cd055281bb0dba07/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"ba6800ada4213828bdb4f5d54d14e0d4c3c25c4c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ba6800ada4213828bdb4f5d54d14e0d4c3c25c4c","html_url":"https://github.com/jacquev6/PyGithub/commit/ba6800ada4213828bdb4f5d54d14e0d4c3c25c4c"}]},{"sha":"ef912af6b79414351de245aa7a6919cad461ca50","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:01:13Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:01:13Z"},"message":"Update Organization.py","tree":{"sha":"25eb4e93c5716005647e58fc78b02258d819e3b8","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/25eb4e93c5716005647e58fc78b02258d819e3b8"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ef912af6b79414351de245aa7a6919cad461ca50","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ef912af6b79414351de245aa7a6919cad461ca50","html_url":"https://github.com/jacquev6/PyGithub/commit/ef912af6b79414351de245aa7a6919cad461ca50","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ef912af6b79414351de245aa7a6919cad461ca50/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"6cb6e8d232f84e7456c184a4cd055281bb0dba07","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6cb6e8d232f84e7456c184a4cd055281bb0dba07","html_url":"https://github.com/jacquev6/PyGithub/commit/6cb6e8d232f84e7456c184a4cd055281bb0dba07"}]},{"sha":"0e842637a6052129b1706419a66597f419b4b2ba","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:03:41Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:03:41Z"},"message":"Update PullRequest.py","tree":{"sha":"e3ecc0ea2dd602e1eab33f6c384007cd795baa3b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e3ecc0ea2dd602e1eab33f6c384007cd795baa3b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0e842637a6052129b1706419a66597f419b4b2ba","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0e842637a6052129b1706419a66597f419b4b2ba","html_url":"https://github.com/jacquev6/PyGithub/commit/0e842637a6052129b1706419a66597f419b4b2ba","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0e842637a6052129b1706419a66597f419b4b2ba/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"ef912af6b79414351de245aa7a6919cad461ca50","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ef912af6b79414351de245aa7a6919cad461ca50","html_url":"https://github.com/jacquev6/PyGithub/commit/ef912af6b79414351de245aa7a6919cad461ca50"}]},{"sha":"3c1d17cd649e79ff7c97d2c68daffbf6529ed969","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:13:03Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:13:03Z"},"message":"Update Repository.py","tree":{"sha":"95d2cbe17bc8a248b9a62f29bff961a4fbf9ecfe","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/95d2cbe17bc8a248b9a62f29bff961a4fbf9ecfe"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/3c1d17cd649e79ff7c97d2c68daffbf6529ed969","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3c1d17cd649e79ff7c97d2c68daffbf6529ed969","html_url":"https://github.com/jacquev6/PyGithub/commit/3c1d17cd649e79ff7c97d2c68daffbf6529ed969","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3c1d17cd649e79ff7c97d2c68daffbf6529ed969/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"0e842637a6052129b1706419a66597f419b4b2ba","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0e842637a6052129b1706419a66597f419b4b2ba","html_url":"https://github.com/jacquev6/PyGithub/commit/0e842637a6052129b1706419a66597f419b4b2ba"}]},{"sha":"1070631c73f02e1ee6b03c55155086d33791499e","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:18:01Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:18:01Z"},"message":"Update Team.py","tree":{"sha":"0cb42345203225124267c4f866f3747b93e6277c","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/0cb42345203225124267c4f866f3747b93e6277c"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1070631c73f02e1ee6b03c55155086d33791499e","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1070631c73f02e1ee6b03c55155086d33791499e","html_url":"https://github.com/jacquev6/PyGithub/commit/1070631c73f02e1ee6b03c55155086d33791499e","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1070631c73f02e1ee6b03c55155086d33791499e/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"3c1d17cd649e79ff7c97d2c68daffbf6529ed969","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3c1d17cd649e79ff7c97d2c68daffbf6529ed969","html_url":"https://github.com/jacquev6/PyGithub/commit/3c1d17cd649e79ff7c97d2c68daffbf6529ed969"}]},{"sha":"c4e8972be12ba249a06cd4c40499e0b32011e7f5","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:19:11Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:19:11Z"},"message":"Update UserKey.py","tree":{"sha":"dc077fcaedfee625d520412e41485893c351c150","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/dc077fcaedfee625d520412e41485893c351c150"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c4e8972be12ba249a06cd4c40499e0b32011e7f5","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c4e8972be12ba249a06cd4c40499e0b32011e7f5","html_url":"https://github.com/jacquev6/PyGithub/commit/c4e8972be12ba249a06cd4c40499e0b32011e7f5","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c4e8972be12ba249a06cd4c40499e0b32011e7f5/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"1070631c73f02e1ee6b03c55155086d33791499e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1070631c73f02e1ee6b03c55155086d33791499e","html_url":"https://github.com/jacquev6/PyGithub/commit/1070631c73f02e1ee6b03c55155086d33791499e"}]},{"sha":"8a301701db354408b63273f78ece6887a1677e55","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:25:29Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:25:29Z"},"message":"Remove helper method in PaginatedList.py","tree":{"sha":"639f5560d925aa1b19e29f3eeb74c7e5f11174cc","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/639f5560d925aa1b19e29f3eeb74c7e5f11174cc"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8a301701db354408b63273f78ece6887a1677e55","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a301701db354408b63273f78ece6887a1677e55","html_url":"https://github.com/jacquev6/PyGithub/commit/8a301701db354408b63273f78ece6887a1677e55","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a301701db354408b63273f78ece6887a1677e55/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"c4e8972be12ba249a06cd4c40499e0b32011e7f5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c4e8972be12ba249a06cd4c40499e0b32011e7f5","html_url":"https://github.com/jacquev6/PyGithub/commit/c4e8972be12ba249a06cd4c40499e0b32011e7f5"}]},{"sha":"3f6d1b6b705de6ea9632021987e55d41875f0102","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:27:37Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:27:37Z"},"message":"Remove helper method in Legacy.py","tree":{"sha":"cdc64db71461393d95d58e89a9a0387fe5d3b447","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/cdc64db71461393d95d58e89a9a0387fe5d3b447"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/3f6d1b6b705de6ea9632021987e55d41875f0102","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3f6d1b6b705de6ea9632021987e55d41875f0102","html_url":"https://github.com/jacquev6/PyGithub/commit/3f6d1b6b705de6ea9632021987e55d41875f0102","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3f6d1b6b705de6ea9632021987e55d41875f0102/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"8a301701db354408b63273f78ece6887a1677e55","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a301701db354408b63273f78ece6887a1677e55","html_url":"https://github.com/jacquev6/PyGithub/commit/8a301701db354408b63273f78ece6887a1677e55"}]},{"sha":"30d9d499a1b44552ab9a28ef7317aa2098daafd7","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:32:32Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:32:32Z"},"message":"Clean up","tree":{"sha":"971191c9d4fbd001727beeeb2ff9a482b80e2b39","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/971191c9d4fbd001727beeeb2ff9a482b80e2b39"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/30d9d499a1b44552ab9a28ef7317aa2098daafd7","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/30d9d499a1b44552ab9a28ef7317aa2098daafd7","html_url":"https://github.com/jacquev6/PyGithub/commit/30d9d499a1b44552ab9a28ef7317aa2098daafd7","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/30d9d499a1b44552ab9a28ef7317aa2098daafd7/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"3f6d1b6b705de6ea9632021987e55d41875f0102","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3f6d1b6b705de6ea9632021987e55d41875f0102","html_url":"https://github.com/jacquev6/PyGithub/commit/3f6d1b6b705de6ea9632021987e55d41875f0102"}]},{"sha":"912bec79d2dd2479e5e32118c66ee9a647b46332","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:45:01Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T09:45:01Z"},"message":"Update copyright information","tree":{"sha":"9ce5267aa0ed70277a09594a84c881e9e04da2e5","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9ce5267aa0ed70277a09594a84c881e9e04da2e5"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/912bec79d2dd2479e5e32118c66ee9a647b46332","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/912bec79d2dd2479e5e32118c66ee9a647b46332","html_url":"https://github.com/jacquev6/PyGithub/commit/912bec79d2dd2479e5e32118c66ee9a647b46332","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/912bec79d2dd2479e5e32118c66ee9a647b46332/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"30d9d499a1b44552ab9a28ef7317aa2098daafd7","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/30d9d499a1b44552ab9a28ef7317aa2098daafd7","html_url":"https://github.com/jacquev6/PyGithub/commit/30d9d499a1b44552ab9a28ef7317aa2098daafd7"}]},{"sha":"1d18ea75cce3ca6aeff03d0343e65b2f13b97f80","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T11:25:05Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T11:25:05Z"},"message":"Add debug / test mechanism","tree":{"sha":"6cc4f7080010a73043a4d743a488b207f7117f42","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6cc4f7080010a73043a4d743a488b207f7117f42"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1d18ea75cce3ca6aeff03d0343e65b2f13b97f80","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d18ea75cce3ca6aeff03d0343e65b2f13b97f80","html_url":"https://github.com/jacquev6/PyGithub/commit/1d18ea75cce3ca6aeff03d0343e65b2f13b97f80","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d18ea75cce3ca6aeff03d0343e65b2f13b97f80/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"912bec79d2dd2479e5e32118c66ee9a647b46332","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/912bec79d2dd2479e5e32118c66ee9a647b46332","html_url":"https://github.com/jacquev6/PyGithub/commit/912bec79d2dd2479e5e32118c66ee9a647b46332"}]},{"sha":"e06257d06017b72bb57b15b043e6f16d4b6eb568","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T12:58:29Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T12:58:29Z"},"message":"Enable debug in TestCase","tree":{"sha":"c99afd32d144d223b8dea8dc3d1bc612a5e7b440","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c99afd32d144d223b8dea8dc3d1bc612a5e7b440"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e06257d06017b72bb57b15b043e6f16d4b6eb568","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e06257d06017b72bb57b15b043e6f16d4b6eb568","html_url":"https://github.com/jacquev6/PyGithub/commit/e06257d06017b72bb57b15b043e6f16d4b6eb568","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e06257d06017b72bb57b15b043e6f16d4b6eb568/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"1d18ea75cce3ca6aeff03d0343e65b2f13b97f80","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d18ea75cce3ca6aeff03d0343e65b2f13b97f80","html_url":"https://github.com/jacquev6/PyGithub/commit/1d18ea75cce3ca6aeff03d0343e65b2f13b97f80"}]},{"sha":"aa3025271cd918883b31a42fb7b4ce03027b805c","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T13:11:12Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T13:11:12Z"},"message":"Assert response headers","tree":{"sha":"9e5ec5a1f82ccfe07e2abeb586b7d39b98392df2","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9e5ec5a1f82ccfe07e2abeb586b7d39b98392df2"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/aa3025271cd918883b31a42fb7b4ce03027b805c","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/aa3025271cd918883b31a42fb7b4ce03027b805c","html_url":"https://github.com/jacquev6/PyGithub/commit/aa3025271cd918883b31a42fb7b4ce03027b805c","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/aa3025271cd918883b31a42fb7b4ce03027b805c/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"e06257d06017b72bb57b15b043e6f16d4b6eb568","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e06257d06017b72bb57b15b043e6f16d4b6eb568","html_url":"https://github.com/jacquev6/PyGithub/commit/e06257d06017b72bb57b15b043e6f16d4b6eb568"}]},{"sha":"b71329e560795a4df84cb419178ef660824f4c0d","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T14:25:20Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T14:25:20Z"},"message":"Implement data persistence","tree":{"sha":"e617e5b89efd45b9839d8e7f61619f00974367bb","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e617e5b89efd45b9839d8e7f61619f00974367bb"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b71329e560795a4df84cb419178ef660824f4c0d","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b71329e560795a4df84cb419178ef660824f4c0d","html_url":"https://github.com/jacquev6/PyGithub/commit/b71329e560795a4df84cb419178ef660824f4c0d","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b71329e560795a4df84cb419178ef660824f4c0d/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"aa3025271cd918883b31a42fb7b4ce03027b805c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/aa3025271cd918883b31a42fb7b4ce03027b805c","html_url":"https://github.com/jacquev6/PyGithub/commit/aa3025271cd918883b31a42fb7b4ce03027b805c"}]},{"sha":"bd7abb58772ae1a61fd7eb44308a3a2f60432ad6","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:01:40Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:01:40Z"},"message":"Add update() method","tree":{"sha":"790ed722bb219aeb47c13f073a41ccb4e67a0ae0","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/790ed722bb219aeb47c13f073a41ccb4e67a0ae0"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/bd7abb58772ae1a61fd7eb44308a3a2f60432ad6","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bd7abb58772ae1a61fd7eb44308a3a2f60432ad6","html_url":"https://github.com/jacquev6/PyGithub/commit/bd7abb58772ae1a61fd7eb44308a3a2f60432ad6","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bd7abb58772ae1a61fd7eb44308a3a2f60432ad6/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"b71329e560795a4df84cb419178ef660824f4c0d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b71329e560795a4df84cb419178ef660824f4c0d","html_url":"https://github.com/jacquev6/PyGithub/commit/b71329e560795a4df84cb419178ef660824f4c0d"}]},{"sha":"1e9ec2df089973db73aaf99b4ef147efd4614e7c","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:04:07Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:04:07Z"},"message":"Add NotModifiedException class","tree":{"sha":"68bf8de0788f5e0a6675d07bceaeb114183315ba","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/68bf8de0788f5e0a6675d07bceaeb114183315ba"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1e9ec2df089973db73aaf99b4ef147efd4614e7c","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1e9ec2df089973db73aaf99b4ef147efd4614e7c","html_url":"https://github.com/jacquev6/PyGithub/commit/1e9ec2df089973db73aaf99b4ef147efd4614e7c","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1e9ec2df089973db73aaf99b4ef147efd4614e7c/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"bd7abb58772ae1a61fd7eb44308a3a2f60432ad6","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bd7abb58772ae1a61fd7eb44308a3a2f60432ad6","html_url":"https://github.com/jacquev6/PyGithub/commit/bd7abb58772ae1a61fd7eb44308a3a2f60432ad6"}]},{"sha":"6fd05baf6bea732dd846e08c40891c28060e7c64","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:09:30Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:09:30Z"},"message":"Handle response code 304","tree":{"sha":"8601556063c365eb7c636a3459eca81b5e717e21","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/8601556063c365eb7c636a3459eca81b5e717e21"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6fd05baf6bea732dd846e08c40891c28060e7c64","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6fd05baf6bea732dd846e08c40891c28060e7c64","html_url":"https://github.com/jacquev6/PyGithub/commit/6fd05baf6bea732dd846e08c40891c28060e7c64","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6fd05baf6bea732dd846e08c40891c28060e7c64/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"1e9ec2df089973db73aaf99b4ef147efd4614e7c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1e9ec2df089973db73aaf99b4ef147efd4614e7c","html_url":"https://github.com/jacquev6/PyGithub/commit/1e9ec2df089973db73aaf99b4ef147efd4614e7c"}]},{"sha":"5b09f6c82191601cad92076ad4761fe927c511ed","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:17:59Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T15:17:59Z"},"message":"Implement conditional request","tree":{"sha":"d6c3d2b807635ecd9a9129b1a99d0e2f6758d440","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d6c3d2b807635ecd9a9129b1a99d0e2f6758d440"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5b09f6c82191601cad92076ad4761fe927c511ed","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed","html_url":"https://github.com/jacquev6/PyGithub/commit/5b09f6c82191601cad92076ad4761fe927c511ed","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"6fd05baf6bea732dd846e08c40891c28060e7c64","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6fd05baf6bea732dd846e08c40891c28060e7c64","html_url":"https://github.com/jacquev6/PyGithub/commit/6fd05baf6bea732dd846e08c40891c28060e7c64"}]},{"sha":"1955f7b39d4aeef19356a8269e6430537fcc3006","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T16:40:21Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T20:24:32Z"},"message":"Use POST /gists/:id/forks instead of POST /gists/:id/fork","tree":{"sha":"96255698cf321052b8d1990af1b282e7e7d9b094","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/96255698cf321052b8d1990af1b282e7e7d9b094"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1955f7b39d4aeef19356a8269e6430537fcc3006","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1955f7b39d4aeef19356a8269e6430537fcc3006","html_url":"https://github.com/jacquev6/PyGithub/commit/1955f7b39d4aeef19356a8269e6430537fcc3006","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1955f7b39d4aeef19356a8269e6430537fcc3006/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"ed781f8b1b96e1d2a342d36ca53114ea28862fa8","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ed781f8b1b96e1d2a342d36ca53114ea28862fa8","html_url":"https://github.com/jacquev6/PyGithub/commit/ed781f8b1b96e1d2a342d36ca53114ea28862fa8"}]},{"sha":"0f369ba218414beb8d782904b1f09d4711c82cb7","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T16:51:09Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T20:25:44Z"},"message":"Use POST /repos/:owner/:repo/hooks/:id/tests instead of POST /repos/:owner/:repo/hooks/:id/test","tree":{"sha":"9df3a12c5a595613c179195787593cd18f50df60","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9df3a12c5a595613c179195787593cd18f50df60"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0f369ba218414beb8d782904b1f09d4711c82cb7","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f369ba218414beb8d782904b1f09d4711c82cb7","html_url":"https://github.com/jacquev6/PyGithub/commit/0f369ba218414beb8d782904b1f09d4711c82cb7","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f369ba218414beb8d782904b1f09d4711c82cb7/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1955f7b39d4aeef19356a8269e6430537fcc3006","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1955f7b39d4aeef19356a8269e6430537fcc3006","html_url":"https://github.com/jacquev6/PyGithub/commit/1955f7b39d4aeef19356a8269e6430537fcc3006"}]},{"sha":"e384a52971a8452b9c8eb32ed862e88cd828ee8e","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T19:43:08Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T20:26:58Z"},"message":"NamedUser.has_in_following","tree":{"sha":"becbc15254d47f078ee3e70bee997cea6ad201d0","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/becbc15254d47f078ee3e70bee997cea6ad201d0"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e384a52971a8452b9c8eb32ed862e88cd828ee8e","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e384a52971a8452b9c8eb32ed862e88cd828ee8e","html_url":"https://github.com/jacquev6/PyGithub/commit/e384a52971a8452b9c8eb32ed862e88cd828ee8e","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e384a52971a8452b9c8eb32ed862e88cd828ee8e/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0f369ba218414beb8d782904b1f09d4711c82cb7","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f369ba218414beb8d782904b1f09d4711c82cb7","html_url":"https://github.com/jacquev6/PyGithub/commit/0f369ba218414beb8d782904b1f09d4711c82cb7"}]},{"sha":"1c993d3a5f54cd5c30c6e3407dfc216bdcf7c7cb","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T19:54:00Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-21T20:28:15Z"},"message":"Github.get_repos (to get all public repositories)","tree":{"sha":"3164e655a882efc8233e688223b17703f7ee0e81","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/3164e655a882efc8233e688223b17703f7ee0e81"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1c993d3a5f54cd5c30c6e3407dfc216bdcf7c7cb","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c993d3a5f54cd5c30c6e3407dfc216bdcf7c7cb","html_url":"https://github.com/jacquev6/PyGithub/commit/1c993d3a5f54cd5c30c6e3407dfc216bdcf7c7cb","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c993d3a5f54cd5c30c6e3407dfc216bdcf7c7cb/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"e384a52971a8452b9c8eb32ed862e88cd828ee8e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e384a52971a8452b9c8eb32ed862e88cd828ee8e","html_url":"https://github.com/jacquev6/PyGithub/commit/e384a52971a8452b9c8eb32ed862e88cd828ee8e"}]},{"sha":"70a7e9c83dec2bf6b549dc5c77d30b53afb32457","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T23:45:27Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-21T23:45:27Z"},"message":"Fix update","tree":{"sha":"f99d30ab74ea95fedefb33a8b1b2c77903fbd698","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f99d30ab74ea95fedefb33a8b1b2c77903fbd698"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","html_url":"https://github.com/jacquev6/PyGithub/commit/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"5b09f6c82191601cad92076ad4761fe927c511ed","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed","html_url":"https://github.com/jacquev6/PyGithub/commit/5b09f6c82191601cad92076ad4761fe927c511ed"}]},{"sha":"d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T00:45:10Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T00:45:10Z"},"message":"Add test record helper","tree":{"sha":"e6e15fccb5b256bba3db1d4fc89088b733de227b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e6e15fccb5b256bba3db1d4fc89088b733de227b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","html_url":"https://github.com/jacquev6/PyGithub/commit/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"70a7e9c83dec2bf6b549dc5c77d30b53afb32457","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457","html_url":"https://github.com/jacquev6/PyGithub/commit/70a7e9c83dec2bf6b549dc5c77d30b53afb32457"}]},{"sha":"c7593e84c4a92a044b717b7311c2b6ad8d9a5917","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T02:20:10Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-22T02:20:10Z"},"message":"Add test case for conditional request","tree":{"sha":"bbf62558b39720fc7acab1c6b26e4b9260cdc897","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/bbf62558b39720fc7acab1c6b26e4b9260cdc897"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","html_url":"https://github.com/jacquev6/PyGithub/commit/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","html_url":"https://github.com/jacquev6/PyGithub/commit/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7"}]},{"sha":"5c475c7683b2a57ee053d35586248f24febb6ebe","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T08:12:38Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T08:12:38Z"},"message":"First review of #192 (pep8, headers... nothing important)\n\n./manage.sh check\n./manage.sh fix_headers","tree":{"sha":"c874a52834343436bb9e1062a9edb11739d0de2b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c874a52834343436bb9e1062a9edb11739d0de2b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5c475c7683b2a57ee053d35586248f24febb6ebe","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5c475c7683b2a57ee053d35586248f24febb6ebe","html_url":"https://github.com/jacquev6/PyGithub/commit/5c475c7683b2a57ee053d35586248f24febb6ebe","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5c475c7683b2a57ee053d35586248f24febb6ebe/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"aa3025271cd918883b31a42fb7b4ce03027b805c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/aa3025271cd918883b31a42fb7b4ce03027b805c","html_url":"https://github.com/jacquev6/PyGithub/commit/aa3025271cd918883b31a42fb7b4ce03027b805c"}]},{"sha":"f2de1fbfcccd1bbb3da722489d361d1937e09860","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T08:22:07Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T08:22:07Z"},"message":"Don't fix headers in /build","tree":{"sha":"6151d6667cf979d47a44e9a4852f9e5894eea19a","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6151d6667cf979d47a44e9a4852f9e5894eea19a"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/f2de1fbfcccd1bbb3da722489d361d1937e09860","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2de1fbfcccd1bbb3da722489d361d1937e09860","html_url":"https://github.com/jacquev6/PyGithub/commit/f2de1fbfcccd1bbb3da722489d361d1937e09860","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2de1fbfcccd1bbb3da722489d361d1937e09860/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1c993d3a5f54cd5c30c6e3407dfc216bdcf7c7cb","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c993d3a5f54cd5c30c6e3407dfc216bdcf7c7cb","html_url":"https://github.com/jacquev6/PyGithub/commit/1c993d3a5f54cd5c30c6e3407dfc216bdcf7c7cb"}]},{"sha":"8a2624e3a1591a36ecf5afdc6fcc84443d8145dd","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T08:30:14Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T08:30:14Z"},"message":"Merge branch 'topic/RememberHeaders' into develop (#192)\n\nConflicts:\n\tgithub/Issue.py\n\tgithub/MainClass.py\n\tgithub/PaginatedList.py\n\tgithub/Repository.py\n\tgithub/Requester.py","tree":{"sha":"61011f6ebafc003fa6561ed990691d0c21611ea2","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/61011f6ebafc003fa6561ed990691d0c21611ea2"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8a2624e3a1591a36ecf5afdc6fcc84443d8145dd","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a2624e3a1591a36ecf5afdc6fcc84443d8145dd","html_url":"https://github.com/jacquev6/PyGithub/commit/8a2624e3a1591a36ecf5afdc6fcc84443d8145dd","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a2624e3a1591a36ecf5afdc6fcc84443d8145dd/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f2de1fbfcccd1bbb3da722489d361d1937e09860","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2de1fbfcccd1bbb3da722489d361d1937e09860","html_url":"https://github.com/jacquev6/PyGithub/commit/f2de1fbfcccd1bbb3da722489d361d1937e09860"},{"sha":"5c475c7683b2a57ee053d35586248f24febb6ebe","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5c475c7683b2a57ee053d35586248f24febb6ebe","html_url":"https://github.com/jacquev6/PyGithub/commit/5c475c7683b2a57ee053d35586248f24febb6ebe"}]},{"sha":"ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T08:44:38Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T08:44:38Z"},"message":"Fix merge of #192\n\nOne branch modified signature of constructors,\nanother branch added a call to a constructor.","tree":{"sha":"ea54567a0eff56ab2c1701783a2d46a9cd9b1b3d","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/ea54567a0eff56ab2c1701783a2d46a9cd9b1b3d"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","html_url":"https://github.com/jacquev6/PyGithub/commit/ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ba5b0d5ea93d362ecd8b5a91701a9c62c385d008/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"8a2624e3a1591a36ecf5afdc6fcc84443d8145dd","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8a2624e3a1591a36ecf5afdc6fcc84443d8145dd","html_url":"https://github.com/jacquev6/PyGithub/commit/8a2624e3a1591a36ecf5afdc6fcc84443d8145dd"}]},{"sha":"cc1bcd5f2da1982a0836a488cf321d363bfcf5b5","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T09:01:51Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T09:01:51Z"},"message":"Merge branch 'develop' into topic/ConditionalRequest\n\nConflicts:\n\t.gitignore\n\tgithub/Requester.py","tree":{"sha":"0d8bb0e1e0d530a2061d0d898a96b0f0ad6a5f25","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/0d8bb0e1e0d530a2061d0d898a96b0f0ad6a5f25"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/cc1bcd5f2da1982a0836a488cf321d363bfcf5b5","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cc1bcd5f2da1982a0836a488cf321d363bfcf5b5","html_url":"https://github.com/jacquev6/PyGithub/commit/cc1bcd5f2da1982a0836a488cf321d363bfcf5b5","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cc1bcd5f2da1982a0836a488cf321d363bfcf5b5/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"c7593e84c4a92a044b717b7311c2b6ad8d9a5917","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917","html_url":"https://github.com/jacquev6/PyGithub/commit/c7593e84c4a92a044b717b7311c2b6ad8d9a5917"},{"sha":"ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","html_url":"https://github.com/jacquev6/PyGithub/commit/ba5b0d5ea93d362ecd8b5a91701a9c62c385d008"}]},{"sha":"1787765a61958617d47e764a0bea2acd70c84f72","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T09:41:15Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T09:41:15Z"},"message":"Review of #189: use dict.get\n\nhttp://docs.python.org/2/library/stdtypes.html#dict.get","tree":{"sha":"7cb1da804d8cec4692c26b5a0d35827c151ddde4","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/7cb1da804d8cec4692c26b5a0d35827c151ddde4"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1787765a61958617d47e764a0bea2acd70c84f72","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1787765a61958617d47e764a0bea2acd70c84f72","html_url":"https://github.com/jacquev6/PyGithub/commit/1787765a61958617d47e764a0bea2acd70c84f72","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1787765a61958617d47e764a0bea2acd70c84f72/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"cc1bcd5f2da1982a0836a488cf321d363bfcf5b5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cc1bcd5f2da1982a0836a488cf321d363bfcf5b5","html_url":"https://github.com/jacquev6/PyGithub/commit/cc1bcd5f2da1982a0836a488cf321d363bfcf5b5"}]},{"sha":"0f74e4389b3c0fa57a83083ecfbbf5c331022674","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T10:12:38Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-22T10:12:38Z"},"message":"Review of #189: pep8, copyrights, style, remarks\n\nFor remarks, run: git grep \"#189\"\nThey are only my first thoughts while reviewing this pull request,\nand should be reviewed themselves.","tree":{"sha":"6704a63e77b81165cb7f8ff4c32bd8455fcdfbdb","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6704a63e77b81165cb7f8ff4c32bd8455fcdfbdb"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0f74e4389b3c0fa57a83083ecfbbf5c331022674","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f74e4389b3c0fa57a83083ecfbbf5c331022674","html_url":"https://github.com/jacquev6/PyGithub/commit/0f74e4389b3c0fa57a83083ecfbbf5c331022674","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f74e4389b3c0fa57a83083ecfbbf5c331022674/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1787765a61958617d47e764a0bea2acd70c84f72","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1787765a61958617d47e764a0bea2acd70c84f72","html_url":"https://github.com/jacquev6/PyGithub/commit/1787765a61958617d47e764a0bea2acd70c84f72"}]},{"sha":"fb7325884ee0b8ae73f47bf13c6f36cacbc3131c","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T07:32:47Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T07:32:47Z"},"message":"Fix remarks on #189 to #193","tree":{"sha":"acda548d54ec2929d3f556bb09d72082c6cce74c","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/acda548d54ec2929d3f556bb09d72082c6cce74c"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/fb7325884ee0b8ae73f47bf13c6f36cacbc3131c","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb7325884ee0b8ae73f47bf13c6f36cacbc3131c","html_url":"https://github.com/jacquev6/PyGithub/commit/fb7325884ee0b8ae73f47bf13c6f36cacbc3131c","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb7325884ee0b8ae73f47bf13c6f36cacbc3131c/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0f74e4389b3c0fa57a83083ecfbbf5c331022674","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f74e4389b3c0fa57a83083ecfbbf5c331022674","html_url":"https://github.com/jacquev6/PyGithub/commit/0f74e4389b3c0fa57a83083ecfbbf5c331022674"}]},{"sha":"0413c87c12e688fb4fc38d978a2f275ef791cd48","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T07:39:19Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T07:39:19Z"},"message":"Remove _record_.py (#193)\n\nAccording to https://github.com/jacquev6/PyGithub/commit/0f74e4389b3c0fa57a83083ecfbbf5c331022674#commitcomment-3919786","tree":{"sha":"97108cad4736d71906a05fc573936659fb81f386","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/97108cad4736d71906a05fc573936659fb81f386"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0413c87c12e688fb4fc38d978a2f275ef791cd48","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0413c87c12e688fb4fc38d978a2f275ef791cd48","html_url":"https://github.com/jacquev6/PyGithub/commit/0413c87c12e688fb4fc38d978a2f275ef791cd48","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0413c87c12e688fb4fc38d978a2f275ef791cd48/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"fb7325884ee0b8ae73f47bf13c6f36cacbc3131c","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb7325884ee0b8ae73f47bf13c6f36cacbc3131c","html_url":"https://github.com/jacquev6/PyGithub/commit/fb7325884ee0b8ae73f47bf13c6f36cacbc3131c"}]},{"sha":"bc3b819ac554a2132427c9ffe629ef371511213e","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T07:50:51Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T07:50:51Z"},"message":"Separate tests for conditional requests (#193)","tree":{"sha":"cebebf12f44ca09fa382c2673f9577bce01d09f8","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/cebebf12f44ca09fa382c2673f9577bce01d09f8"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/bc3b819ac554a2132427c9ffe629ef371511213e","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bc3b819ac554a2132427c9ffe629ef371511213e","html_url":"https://github.com/jacquev6/PyGithub/commit/bc3b819ac554a2132427c9ffe629ef371511213e","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bc3b819ac554a2132427c9ffe629ef371511213e/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"0413c87c12e688fb4fc38d978a2f275ef791cd48","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0413c87c12e688fb4fc38d978a2f275ef791cd48","html_url":"https://github.com/jacquev6/PyGithub/commit/0413c87c12e688fb4fc38d978a2f275ef791cd48"}]},{"sha":"bae0a37d180a4b224c6aa808d03722908109c57d","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T09:10:35Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T09:10:35Z"},"message":"#193: Don't use a try-except for a usual execution flow in GithubObject.update\n\n(and factorize assignment of headers in _storeAndUseAttributes,\nas done for rawData)","tree":{"sha":"d56e13d46c851d333baf0d69053dc6527f1e04d7","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d56e13d46c851d333baf0d69053dc6527f1e04d7"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/bae0a37d180a4b224c6aa808d03722908109c57d","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bae0a37d180a4b224c6aa808d03722908109c57d","html_url":"https://github.com/jacquev6/PyGithub/commit/bae0a37d180a4b224c6aa808d03722908109c57d","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bae0a37d180a4b224c6aa808d03722908109c57d/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"bc3b819ac554a2132427c9ffe629ef371511213e","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bc3b819ac554a2132427c9ffe629ef371511213e","html_url":"https://github.com/jacquev6/PyGithub/commit/bc3b819ac554a2132427c9ffe629ef371511213e"}]},{"sha":"03d7fb012e9d032165c43f93a4c67bc29af9366f","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T09:15:17Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T09:15:17Z"},"message":"#193: Add remarks","tree":{"sha":"887977aa41abc6624fdea3d1ffd185decc57ab90","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/887977aa41abc6624fdea3d1ffd185decc57ab90"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/03d7fb012e9d032165c43f93a4c67bc29af9366f","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03d7fb012e9d032165c43f93a4c67bc29af9366f","html_url":"https://github.com/jacquev6/PyGithub/commit/03d7fb012e9d032165c43f93a4c67bc29af9366f","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03d7fb012e9d032165c43f93a4c67bc29af9366f/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"bae0a37d180a4b224c6aa808d03722908109c57d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bae0a37d180a4b224c6aa808d03722908109c57d","html_url":"https://github.com/jacquev6/PyGithub/commit/bae0a37d180a4b224c6aa808d03722908109c57d"}]},{"sha":"64cf539c83174f95b3410c7decd2549424385ce1","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T09:31:01Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T09:31:01Z"},"message":"#193: Add a param to Requester.requestXxx for request headers","tree":{"sha":"d8ce377a13245803f223ae5bf50c09db0544a1be","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d8ce377a13245803f223ae5bf50c09db0544a1be"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/64cf539c83174f95b3410c7decd2549424385ce1","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/64cf539c83174f95b3410c7decd2549424385ce1","html_url":"https://github.com/jacquev6/PyGithub/commit/64cf539c83174f95b3410c7decd2549424385ce1","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/64cf539c83174f95b3410c7decd2549424385ce1/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"03d7fb012e9d032165c43f93a4c67bc29af9366f","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03d7fb012e9d032165c43f93a4c67bc29af9366f","html_url":"https://github.com/jacquev6/PyGithub/commit/03d7fb012e9d032165c43f93a4c67bc29af9366f"}]},{"sha":"e084b5138106d4ad371a69ca9519862f09c855ae","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T12:51:34Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T12:51:34Z"},"message":"#193: Fix test coverage","tree":{"sha":"e0dc9f5f816e7e6503d60b39b69d5652bd2b77ce","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e0dc9f5f816e7e6503d60b39b69d5652bd2b77ce"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e084b5138106d4ad371a69ca9519862f09c855ae","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e084b5138106d4ad371a69ca9519862f09c855ae","html_url":"https://github.com/jacquev6/PyGithub/commit/e084b5138106d4ad371a69ca9519862f09c855ae","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e084b5138106d4ad371a69ca9519862f09c855ae/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"64cf539c83174f95b3410c7decd2549424385ce1","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/64cf539c83174f95b3410c7decd2549424385ce1","html_url":"https://github.com/jacquev6/PyGithub/commit/64cf539c83174f95b3410c7decd2549424385ce1"}]},{"sha":"020a3c9917f42d98c1761527825061d2db8352fd","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T16:45:16Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T16:45:16Z"},"message":"Move method update to CompletableGithubObject","tree":{"sha":"4c3e987d82799789d0c2586e509cea8c71e0029b","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4c3e987d82799789d0c2586e509cea8c71e0029b"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/020a3c9917f42d98c1761527825061d2db8352fd","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/020a3c9917f42d98c1761527825061d2db8352fd","html_url":"https://github.com/jacquev6/PyGithub/commit/020a3c9917f42d98c1761527825061d2db8352fd","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/020a3c9917f42d98c1761527825061d2db8352fd/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"e084b5138106d4ad371a69ca9519862f09c855ae","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e084b5138106d4ad371a69ca9519862f09c855ae","html_url":"https://github.com/jacquev6/PyGithub/commit/e084b5138106d4ad371a69ca9519862f09c855ae"}]},{"sha":"fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T17:05:53Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-08-23T17:05:53Z"},"message":"Move the DEBUG_ON_RESPONSE call to Requester.__requestEncode","tree":{"sha":"a7fbeaacbdba31ceb21a46bedfce268411d8dfb8","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a7fbeaacbdba31ceb21a46bedfce268411d8dfb8"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","html_url":"https://github.com/jacquev6/PyGithub/commit/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"020a3c9917f42d98c1761527825061d2db8352fd","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/020a3c9917f42d98c1761527825061d2db8352fd","html_url":"https://github.com/jacquev6/PyGithub/commit/020a3c9917f42d98c1761527825061d2db8352fd"}]},{"sha":"38b137fb37c0fdc74f8802a4184518e105db9121","commit":{"author":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-23T23:21:41Z"},"committer":{"name":"AKFish","email":"akfish@gmail.com","date":"2013-08-23T23:21:41Z"},"message":"Fix line ending","tree":{"sha":"a4260390d7e3d478aed05009657f4632d25dad84","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a4260390d7e3d478aed05009657f4632d25dad84"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/38b137fb37c0fdc74f8802a4184518e105db9121","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/38b137fb37c0fdc74f8802a4184518e105db9121","html_url":"https://github.com/jacquev6/PyGithub/commit/38b137fb37c0fdc74f8802a4184518e105db9121","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/38b137fb37c0fdc74f8802a4184518e105db9121/comments","author":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"committer":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"parents":[{"sha":"fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","html_url":"https://github.com/jacquev6/PyGithub/commit/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84"}]},{"sha":"3fe9edf08707d2c289d4e6a05f7521751cf9f8e4","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-04T21:28:44Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-04T21:28:44Z"},"message":"Implement object persistence\n\nThis follows my proposal for #193.\nLargely inspired by AKFish's work.","tree":{"sha":"b6b62d90fe1b65d103b74fe11a8f01f3ddd1851a","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b6b62d90fe1b65d103b74fe11a8f01f3ddd1851a"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/3fe9edf08707d2c289d4e6a05f7521751cf9f8e4","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3fe9edf08707d2c289d4e6a05f7521751cf9f8e4","html_url":"https://github.com/jacquev6/PyGithub/commit/3fe9edf08707d2c289d4e6a05f7521751cf9f8e4","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3fe9edf08707d2c289d4e6a05f7521751cf9f8e4/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"38b137fb37c0fdc74f8802a4184518e105db9121","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/38b137fb37c0fdc74f8802a4184518e105db9121","html_url":"https://github.com/jacquev6/PyGithub/commit/38b137fb37c0fdc74f8802a4184518e105db9121"}]},{"sha":"c412d49c9fd28406156dff664a1f848da1e95d0b","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T15:50:57Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T15:50:57Z"},"message":"Adapt to Python 2.5","tree":{"sha":"6c7ed56808fdd9a1a17b38f397fafd0e0cf1ae2e","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6c7ed56808fdd9a1a17b38f397fafd0e0cf1ae2e"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c412d49c9fd28406156dff664a1f848da1e95d0b","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c412d49c9fd28406156dff664a1f848da1e95d0b","html_url":"https://github.com/jacquev6/PyGithub/commit/c412d49c9fd28406156dff664a1f848da1e95d0b","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c412d49c9fd28406156dff664a1f848da1e95d0b/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"3fe9edf08707d2c289d4e6a05f7521751cf9f8e4","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3fe9edf08707d2c289d4e6a05f7521751cf9f8e4","html_url":"https://github.com/jacquev6/PyGithub/commit/3fe9edf08707d2c289d4e6a05f7521751cf9f8e4"}]},{"sha":"6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T15:53:31Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T15:53:31Z"},"message":"Adapt to Python 2.5 (again:))","tree":{"sha":"7007556096f9edd3ecd48dfe302748ba9d238273","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/7007556096f9edd3ecd48dfe302748ba9d238273"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69","html_url":"https://github.com/jacquev6/PyGithub/commit/6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"c412d49c9fd28406156dff664a1f848da1e95d0b","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c412d49c9fd28406156dff664a1f848da1e95d0b","html_url":"https://github.com/jacquev6/PyGithub/commit/c412d49c9fd28406156dff664a1f848da1e95d0b"}]},{"sha":"d18d1b0354a5c7de920b30ef1e5950a5479dd866","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T16:01:03Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T16:01:03Z"},"message":"Update readme","tree":{"sha":"140c1b06794ac9a8130cf3612c604c83f973358f","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/140c1b06794ac9a8130cf3612c604c83f973358f"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/d18d1b0354a5c7de920b30ef1e5950a5479dd866","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d18d1b0354a5c7de920b30ef1e5950a5479dd866","html_url":"https://github.com/jacquev6/PyGithub/commit/d18d1b0354a5c7de920b30ef1e5950a5479dd866","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d18d1b0354a5c7de920b30ef1e5950a5479dd866/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69","html_url":"https://github.com/jacquev6/PyGithub/commit/6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69"}]},{"sha":"2e3ab5cc9295c4e3c3c6a0d1c179a49df0db96e5","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T16:04:49Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T16:04:49Z"},"message":"Say thank you to stargazers","tree":{"sha":"6c1c7aadddfcbc9a65fae7d164a9432ab3ce452a","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/6c1c7aadddfcbc9a65fae7d164a9432ab3ce452a"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/2e3ab5cc9295c4e3c3c6a0d1c179a49df0db96e5","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2e3ab5cc9295c4e3c3c6a0d1c179a49df0db96e5","html_url":"https://github.com/jacquev6/PyGithub/commit/2e3ab5cc9295c4e3c3c6a0d1c179a49df0db96e5","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2e3ab5cc9295c4e3c3c6a0d1c179a49df0db96e5/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","html_url":"https://github.com/jacquev6/PyGithub/commit/ba5b0d5ea93d362ecd8b5a91701a9c62c385d008"}]},{"sha":"ab626114db1c798e9269daed295d1e79c36879bb","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T16:21:07Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T16:21:07Z"},"message":"Merge branch 'topic/ConditionalRequest' into develop\n\nConflicts:\n\tREADME.rst","tree":{"sha":"c15e38407a8fc7f086a7bf48e02aa5ca7be44e62","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c15e38407a8fc7f086a7bf48e02aa5ca7be44e62"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ab626114db1c798e9269daed295d1e79c36879bb","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ab626114db1c798e9269daed295d1e79c36879bb","html_url":"https://github.com/jacquev6/PyGithub/commit/ab626114db1c798e9269daed295d1e79c36879bb","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ab626114db1c798e9269daed295d1e79c36879bb/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"2e3ab5cc9295c4e3c3c6a0d1c179a49df0db96e5","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2e3ab5cc9295c4e3c3c6a0d1c179a49df0db96e5","html_url":"https://github.com/jacquev6/PyGithub/commit/2e3ab5cc9295c4e3c3c6a0d1c179a49df0db96e5"},{"sha":"d18d1b0354a5c7de920b30ef1e5950a5479dd866","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d18d1b0354a5c7de920b30ef1e5950a5479dd866","html_url":"https://github.com/jacquev6/PyGithub/commit/d18d1b0354a5c7de920b30ef1e5950a5479dd866"}]},{"sha":"1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T16:23:47Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T16:23:47Z"},"message":"Don't assume there is a 'message' field in case of error","tree":{"sha":"1eaf1c66ede16d89d6067a0c23f23f93abf83c5e","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1eaf1c66ede16d89d6067a0c23f23f93abf83c5e"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d","html_url":"https://github.com/jacquev6/PyGithub/commit/1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"ab626114db1c798e9269daed295d1e79c36879bb","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ab626114db1c798e9269daed295d1e79c36879bb","html_url":"https://github.com/jacquev6/PyGithub/commit/ab626114db1c798e9269daed295d1e79c36879bb"}]},{"sha":"dc610dfaac50dd5bbbd572986cda35f6729aee5b","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-06T08:51:50Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-06T08:51:50Z"},"message":"Small fixes and todos","tree":{"sha":"d54e7b47327b5bb25ba38338bfcc4a0c0a61992e","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/d54e7b47327b5bb25ba38338bfcc4a0c0a61992e"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/dc610dfaac50dd5bbbd572986cda35f6729aee5b","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc610dfaac50dd5bbbd572986cda35f6729aee5b","html_url":"https://github.com/jacquev6/PyGithub/commit/dc610dfaac50dd5bbbd572986cda35f6729aee5b","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc610dfaac50dd5bbbd572986cda35f6729aee5b/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d","html_url":"https://github.com/jacquev6/PyGithub/commit/1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d"}]},{"sha":"2081675afbfed404f6a580bce0ec363bebbfd98b","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-06T09:00:59Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-06T09:00:59Z"},"message":"Fix doc generation","tree":{"sha":"7aafacfc490987a44d3c73a72669e07d900f4ea9","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/7aafacfc490987a44d3c73a72669e07d900f4ea9"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/2081675afbfed404f6a580bce0ec363bebbfd98b","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2081675afbfed404f6a580bce0ec363bebbfd98b","html_url":"https://github.com/jacquev6/PyGithub/commit/2081675afbfed404f6a580bce0ec363bebbfd98b","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2081675afbfed404f6a580bce0ec363bebbfd98b/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"dc610dfaac50dd5bbbd572986cda35f6729aee5b","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc610dfaac50dd5bbbd572986cda35f6729aee5b","html_url":"https://github.com/jacquev6/PyGithub/commit/dc610dfaac50dd5bbbd572986cda35f6729aee5b"}]},{"sha":"f2feb81dae1b28af80c559db7328f2d6fe017911","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-05T16:56:56Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-06T09:01:32Z"},"message":"Add default parameters to greatly reduce code redoundancy","tree":{"sha":"075abd28eec29754d4ac96d94fa00e0ee41e9e09","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/075abd28eec29754d4ac96d94fa00e0ee41e9e09"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/f2feb81dae1b28af80c559db7328f2d6fe017911","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2feb81dae1b28af80c559db7328f2d6fe017911","html_url":"https://github.com/jacquev6/PyGithub/commit/f2feb81dae1b28af80c559db7328f2d6fe017911","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2feb81dae1b28af80c559db7328f2d6fe017911/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"2081675afbfed404f6a580bce0ec363bebbfd98b","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2081675afbfed404f6a580bce0ec363bebbfd98b","html_url":"https://github.com/jacquev6/PyGithub/commit/2081675afbfed404f6a580bce0ec363bebbfd98b"}]},{"sha":"c819580ce872f251e8ec23deee95d9fb15ca19c9","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-06T08:51:13Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-06T09:01:33Z"},"message":"Get status of Github API (#188)","tree":{"sha":"e726ab47b3248869efd35a5f989b15eece62cbe9","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e726ab47b3248869efd35a5f989b15eece62cbe9"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c819580ce872f251e8ec23deee95d9fb15ca19c9","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c819580ce872f251e8ec23deee95d9fb15ca19c9","html_url":"https://github.com/jacquev6/PyGithub/commit/c819580ce872f251e8ec23deee95d9fb15ca19c9","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c819580ce872f251e8ec23deee95d9fb15ca19c9/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"f2feb81dae1b28af80c559db7328f2d6fe017911","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2feb81dae1b28af80c559db7328f2d6fe017911","html_url":"https://github.com/jacquev6/PyGithub/commit/f2feb81dae1b28af80c559db7328f2d6fe017911"}]},{"sha":"a6597499c2f82e063074a3036d875417d5efa296","commit":{"author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-06T09:04:41Z"},"committer":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net","date":"2013-09-06T09:04:41Z"},"message":"Merge branch 'topic/ApiStatus' into develop","tree":{"sha":"e726ab47b3248869efd35a5f989b15eece62cbe9","url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e726ab47b3248869efd35a5f989b15eece62cbe9"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a6597499c2f82e063074a3036d875417d5efa296","comment_count":0},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a6597499c2f82e063074a3036d875417d5efa296","html_url":"https://github.com/jacquev6/PyGithub/commit/a6597499c2f82e063074a3036d875417d5efa296","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a6597499c2f82e063074a3036d875417d5efa296/comments","author":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"committer":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"parents":[{"sha":"2081675afbfed404f6a580bce0ec363bebbfd98b","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2081675afbfed404f6a580bce0ec363bebbfd98b","html_url":"https://github.com/jacquev6/PyGithub/commit/2081675afbfed404f6a580bce0ec363bebbfd98b"},{"sha":"c819580ce872f251e8ec23deee95d9fb15ca19c9","url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c819580ce872f251e8ec23deee95d9fb15ca19c9","html_url":"https://github.com/jacquev6/PyGithub/commit/c819580ce872f251e8ec23deee95d9fb15ca19c9"}]}],"files":[{"sha":"fa4ed127848a478d04d033a1e4dd1330c285e120","filename":".gitignore","status":"modified","additions":5,"deletions":0,"changes":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/.gitignore","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/.gitignore","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/.gitignore?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -1,6 +1,7 @@\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -28,3 +29,7 @@ GithubCredentials.py\n /PyGithub.egg-info/\n /.coverage\n /developer.github.com/\n+\n+*.cfg\n+*.bat\n+*.py~"},{"sha":"32e67f35289f9572bab58ac717f51e36a303cd9e","filename":"README.rst","status":"modified","additions":14,"deletions":22,"changes":36,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/README.rst","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/README.rst","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/README.rst?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -7,18 +7,25 @@ Should you have any question, any remark, or if you find a bug, or if there is s\n \n PyGithub is stable. I will maintain it up to date with the API, and fix bugs if any, but I don't plan new heavy developments.\n \n+\n What's new?\n ===========\n \n+Thank you, dear stargazers!\n+---------------------------\n+\n+Starting today (September 05th, 2013), we now need more than 8 bits to store the number of `stargazers `_! Thank you so much!\n \n-`Version 1.18.0 `_ (August 21st, 2013) (Bénodet edition)\n--------------------------------------------------------------------------------------------------------------------------------\n+`Version 1.19.0 `_ (September ??th, 2013) (AKFish's edition)\n+-----------------------------------------------------------------------------------------------------------------------------------\n \n-* `Issues `_' ``repository`` attribute will never be ``None``. Thank you `stuglaser `_ for the pull request\n-* No more false assumption on `rate_limiting `_, and creation of ``rate_limiting_resettime``. Thank you `edjackson `_ for the pull request\n-* `New `_ parameters ``since`` and ``until`` to ``Repository.get_commits``. Thank you `apetresc `_ for the pull request\n-* `Catch `_ Json parsing exception for some internal server errors, and throw a better exception. Thank you `MarkRoddy `_ for the pull request\n-* `Allow `_ reversed iteration of ``PaginatedList``s. Thank you `davidbrai `_ for the pull request\n+* Implement `conditional requests `_ by the method ``GithubObject.update``. Thank you very much `akfish `_ for the pull request and your collaboration!\n+* Implement persistence of PyGithub objects: ``Github.save`` and ``Github.load``. Don't forget to ``update`` your objects after loading them, it won't decrease your rate limiting quota if nothing has changed. Again, thank you `akfish `_\n+* Implement ``Github.get_repos`` to get all public repositories\n+* Implement ``NamedUser.has_in_following``\n+* Technical change: HTTP headers are now stored in retrieved objects. This is a base for new functionalities. Thank you `akfish `_ for the pull request\n+* Use the new URL to fork gists (minor change)\n+* Use the new URL to test hooks (minor change)\n \n What's missing?\n ===============\n@@ -30,10 +37,6 @@ Github API v3 URLs not (yet) covered by PyGithub\n \n * ``/applications/:client_id/tokens/:access_token`` (GET)\n * ``/feeds`` (GET)\n-* ``/gists/:id/forks`` (POST)\n-\n- * instead, ``Gist.create_fork`` calls the old URL ``/gists/:id/fork``\n-\n * ``/meta`` (GET)\n * ``/notifications`` (PUT)\n * ``/notifications/emails`` (GET)\n@@ -54,10 +57,6 @@ Github API v3 URLs not (yet) covered by PyGithub\n \n * ``/repos/:owner/:repo/contents/:path`` (DELETE)\n * ``/repos/:owner/:repo/contents/:path`` (PUT)\n-* ``/repos/:owner/:repo/hooks/:id/tests`` (POST)\n-\n- * instead, ``Hook.test`` calls the old URL ``/repos/:owner/:repo/hooks/:id/test``\n-\n * ``/repos/:owner/:repo/notifications`` (GET)\n * ``/repos/:owner/:repo/notifications`` (PUT)\n * ``/repos/:owner/:repo/stats/code_frequency`` (GET)\n@@ -68,17 +67,10 @@ Github API v3 URLs not (yet) covered by PyGithub\n * ``/repos/:owner/:repo/subscription`` (DELETE)\n * ``/repos/:owner/:repo/subscription`` (GET)\n * ``/repos/:owner/:repo/subscription`` (PUT)\n-* ``/repositories`` (GET)\n-\n- * should be called in method ``Github.get_repos``\n-\n * ``/search/code`` (GET)\n * ``/search/issues`` (GET)\n * ``/search/repositories`` (GET)\n * ``/search/users`` (GET)\n-* ``/users/:user/following/:target_user`` (GET)\n-\n- * should be called in method ``NamedUser.has_in_following``\n \n Documentation\n ============="},{"sha":"9f856df33d80af7c4699cabf13444e7c69a121da","filename":"doc/conf.py","status":"modified","additions":2,"deletions":1,"changes":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/doc/conf.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/doc/conf.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/doc/conf.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -281,6 +281,7 @@\n \t\t\"../github/MainClass.py\",\n \t\t\"../github/PaginatedList.py\",\n \t\t\"../github/Requester.py\",\n+\t\t\"../github/Consts.py\",\n \t\t\"../github/__init__.py\"]\n ]\n \n@@ -318,7 +319,7 @@\n \t\t\t\tif not isProperty:\n \t\t\t\t\tassert method is None, method + \" has no :calls: section\"\n \t\t\t\t\tmethod = line.split(\"(\")[0][8:]\n-\t\t\t\t\tif method in [\"_initAttributes\", \"_useAttributes\", \"__init__\", \"__create_pull_1\", \"__create_pull_2\", \"__create_pull\", \"_hub\", \"__get_FIX_REPO_GET_GIT_REF\", \"__set_FIX_REPO_GET_GIT_REF\", \"__get_per_page\", \"__set_per_page\"]:\n+\t\t\t\t\tif method in [\"_initAttributes\", \"_useAttributes\", \"__init__\", \"__create_pull_1\", \"__create_pull_2\", \"__create_pull\", \"_hub\", \"__get_FIX_REPO_GET_GIT_REF\", \"__set_FIX_REPO_GET_GIT_REF\", \"__get_per_page\", \"__set_per_page\", \"create_from_raw_data\", \"dump\", \"load\"]:\n \t\t\t\t\t\tmethod = None\n \t\t\t\tisProperty = False\n \t\t\tif line.startswith(\" :calls: `\"):"},{"sha":"67a289c3acb10bb39a3228b80e912fb097a0db25","filename":"github/AuthenticatedUser.py","status":"modified","additions":36,"deletions":78,"changes":114,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/AuthenticatedUser.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/AuthenticatedUser.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/AuthenticatedUser.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -5,6 +5,7 @@\n # Copyright 2012 Steve English #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -256,8 +257,7 @@ def add_to_emails(self, *emails):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n \"/user/emails\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n \n def add_to_following(self, following):\n@@ -269,9 +269,7 @@ def add_to_following(self, following):\n assert isinstance(following, github.NamedUser.NamedUser), following\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n- \"/user/following/\" + following._identity,\n- None,\n- None\n+ \"/user/following/\" + following._identity\n )\n \n def add_to_starred(self, starred):\n@@ -283,9 +281,7 @@ def add_to_starred(self, starred):\n assert isinstance(starred, github.Repository.Repository), starred\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n- \"/user/starred/\" + starred._identity,\n- None,\n- None\n+ \"/user/starred/\" + starred._identity\n )\n \n def add_to_subscriptions(self, subscription):\n@@ -297,9 +293,7 @@ def add_to_subscriptions(self, subscription):\n assert isinstance(subscription, github.Repository.Repository), subscription\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n- \"/user/subscriptions/\" + subscription._identity,\n- None,\n- None\n+ \"/user/subscriptions/\" + subscription._identity\n )\n \n def add_to_watched(self, watched):\n@@ -311,9 +305,7 @@ def add_to_watched(self, watched):\n assert isinstance(watched, github.Repository.Repository), watched\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n- \"/user/watched/\" + watched._identity,\n- None,\n- None\n+ \"/user/watched/\" + watched._identity\n )\n \n def create_authorization(self, scopes=github.GithubObject.NotSet, note=github.GithubObject.NotSet, note_url=github.GithubObject.NotSet, client_id=github.GithubObject.NotSet, client_secret=github.GithubObject.NotSet):\n@@ -345,10 +337,9 @@ def create_authorization(self, scopes=github.GithubObject.NotSet, note=github.Gi\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n \"/authorizations\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Authorization.Authorization(self._requester, data, completed=True)\n+ return github.Authorization.Authorization(self._requester, headers, data, completed=True)\n \n def create_fork(self, repo):\n \"\"\"\n@@ -359,11 +350,9 @@ def create_fork(self, repo):\n assert isinstance(repo, github.Repository.Repository), repo\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n- \"/repos/\" + repo.owner.login + \"/\" + repo.name + \"/forks\",\n- None,\n- None\n+ \"/repos/\" + repo.owner.login + \"/\" + repo.name + \"/forks\"\n )\n- return github.Repository.Repository(self._requester, data, completed=True)\n+ return github.Repository.Repository(self._requester, headers, data, completed=True)\n \n def create_gist(self, public, files, description=github.GithubObject.NotSet):\n \"\"\"\n@@ -385,10 +374,9 @@ def create_gist(self, public, files, description=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n \"/gists\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Gist.Gist(self._requester, data, completed=True)\n+ return github.Gist.Gist(self._requester, headers, data, completed=True)\n \n def create_key(self, title, key):\n \"\"\"\n@@ -406,10 +394,9 @@ def create_key(self, title, key):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n \"/user/keys\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.UserKey.UserKey(self._requester, data, completed=True)\n+ return github.UserKey.UserKey(self._requester, headers, data, completed=True)\n \n def create_repo(self, name, description=github.GithubObject.NotSet, homepage=github.GithubObject.NotSet, private=github.GithubObject.NotSet, has_issues=github.GithubObject.NotSet, has_wiki=github.GithubObject.NotSet, has_downloads=github.GithubObject.NotSet, auto_init=github.GithubObject.NotSet, gitignore_template=github.GithubObject.NotSet):\n \"\"\"\n@@ -456,10 +443,9 @@ def create_repo(self, name, description=github.GithubObject.NotSet, homepage=git\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n \"/user/repos\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Repository.Repository(self._requester, data, completed=True)\n+ return github.Repository.Repository(self._requester, headers, data, completed=True)\n \n def edit(self, name=github.GithubObject.NotSet, email=github.GithubObject.NotSet, blog=github.GithubObject.NotSet, company=github.GithubObject.NotSet, location=github.GithubObject.NotSet, hireable=github.GithubObject.NotSet, bio=github.GithubObject.NotSet):\n \"\"\"\n@@ -498,8 +484,7 @@ def edit(self, name=github.GithubObject.NotSet, email=github.GithubObject.NotSet\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n \"/user\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -512,11 +497,9 @@ def get_authorization(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- \"/authorizations/\" + str(id),\n- None,\n- None\n+ \"/authorizations/\" + str(id)\n )\n- return github.Authorization.Authorization(self._requester, data, completed=True)\n+ return github.Authorization.Authorization(self._requester, headers, data, completed=True)\n \n def get_authorizations(self):\n \"\"\"\n@@ -537,9 +520,7 @@ def get_emails(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- \"/user/emails\",\n- None,\n- None\n+ \"/user/emails\"\n )\n return data\n \n@@ -676,11 +657,9 @@ def get_key(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- \"/user/keys/\" + str(id),\n- None,\n- None\n+ \"/user/keys/\" + str(id)\n )\n- return github.UserKey.UserKey(self._requester, data, completed=True)\n+ return github.UserKey.UserKey(self._requester, headers, data, completed=True)\n \n def get_keys(self):\n \"\"\"\n@@ -703,11 +682,9 @@ def get_notification(self, id):\n assert isinstance(id, (str, unicode)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- \"/notifications/threads/\" + id,\n- None,\n- None\n+ \"/notifications/threads/\" + id\n )\n- return github.Notification.Notification(self._requester, data, completed=True)\n+ return github.Notification.Notification(self._requester, headers, data, completed=True)\n \n def get_notifications(self, all=github.GithubObject.NotSet, participating=github.GithubObject.NotSet):\n \"\"\"\n@@ -767,11 +744,9 @@ def get_repo(self, name):\n assert isinstance(name, (str, unicode)), name\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- \"/repos/\" + self.login + \"/\" + name,\n- None,\n- None\n+ \"/repos/\" + self.login + \"/\" + name\n )\n- return github.Repository.Repository(self._requester, data, completed=True)\n+ return github.Repository.Repository(self._requester, headers, data, completed=True)\n \n def get_repos(self, type=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet):\n \"\"\"\n@@ -855,9 +830,7 @@ def has_in_following(self, following):\n assert isinstance(following, github.NamedUser.NamedUser), following\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- \"/user/following/\" + following._identity,\n- None,\n- None\n+ \"/user/following/\" + following._identity\n )\n return status == 204\n \n@@ -870,9 +843,7 @@ def has_in_starred(self, starred):\n assert isinstance(starred, github.Repository.Repository), starred\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- \"/user/starred/\" + starred._identity,\n- None,\n- None\n+ \"/user/starred/\" + starred._identity\n )\n return status == 204\n \n@@ -885,9 +856,7 @@ def has_in_subscriptions(self, subscription):\n assert isinstance(subscription, github.Repository.Repository), subscription\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- \"/user/subscriptions/\" + subscription._identity,\n- None,\n- None\n+ \"/user/subscriptions/\" + subscription._identity\n )\n return status == 204\n \n@@ -900,9 +869,7 @@ def has_in_watched(self, watched):\n assert isinstance(watched, github.Repository.Repository), watched\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- \"/user/watched/\" + watched._identity,\n- None,\n- None\n+ \"/user/watched/\" + watched._identity\n )\n return status == 204\n \n@@ -917,8 +884,7 @@ def remove_from_emails(self, *emails):\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n \"/user/emails\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n \n def remove_from_following(self, following):\n@@ -930,9 +896,7 @@ def remove_from_following(self, following):\n assert isinstance(following, github.NamedUser.NamedUser), following\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- \"/user/following/\" + following._identity,\n- None,\n- None\n+ \"/user/following/\" + following._identity\n )\n \n def remove_from_starred(self, starred):\n@@ -944,9 +908,7 @@ def remove_from_starred(self, starred):\n assert isinstance(starred, github.Repository.Repository), starred\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- \"/user/starred/\" + starred._identity,\n- None,\n- None\n+ \"/user/starred/\" + starred._identity\n )\n \n def remove_from_subscriptions(self, subscription):\n@@ -958,9 +920,7 @@ def remove_from_subscriptions(self, subscription):\n assert isinstance(subscription, github.Repository.Repository), subscription\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- \"/user/subscriptions/\" + subscription._identity,\n- None,\n- None\n+ \"/user/subscriptions/\" + subscription._identity\n )\n \n def remove_from_watched(self, watched):\n@@ -972,9 +932,7 @@ def remove_from_watched(self, watched):\n assert isinstance(watched, github.Repository.Repository), watched\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- \"/user/watched/\" + watched._identity,\n- None,\n- None\n+ \"/user/watched/\" + watched._identity\n )\n \n def _initAttributes(self):\n@@ -1061,7 +1019,7 @@ def _useAttributes(self, attributes):\n self._owned_private_repos = attributes[\"owned_private_repos\"]\n if \"plan\" in attributes: # pragma no branch\n assert attributes[\"plan\"] is None or isinstance(attributes[\"plan\"], dict), attributes[\"plan\"]\n- self._plan = None if attributes[\"plan\"] is None else github.Plan.Plan(self._requester, attributes[\"plan\"], completed=False)\n+ self._plan = None if attributes[\"plan\"] is None else github.Plan.Plan(self._requester, self._headers, attributes[\"plan\"], completed=False)\n if \"private_gists\" in attributes: # pragma no branch\n assert attributes[\"private_gists\"] is None or isinstance(attributes[\"private_gists\"], (int, long)), attributes[\"private_gists\"]\n self._private_gists = attributes[\"private_gists\"]"},{"sha":"a004fedf687cdbcd52f4ffd494b9e4536bbb037b","filename":"github/Authorization.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Authorization.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Authorization.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Authorization.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -112,9 +113,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, scopes=github.GithubObject.NotSet, add_scopes=github.GithubObject.NotSet, remove_scopes=github.GithubObject.NotSet, note=github.GithubObject.NotSet, note_url=github.GithubObject.NotSet):\n@@ -146,8 +145,7 @@ def edit(self, scopes=github.GithubObject.NotSet, add_scopes=github.GithubObject\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -165,7 +163,7 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"app\" in attributes: # pragma no branch\n assert attributes[\"app\"] is None or isinstance(attributes[\"app\"], dict), attributes[\"app\"]\n- self._app = None if attributes[\"app\"] is None else github.AuthorizationApplication.AuthorizationApplication(self._requester, attributes[\"app\"], completed=False)\n+ self._app = None if attributes[\"app\"] is None else github.AuthorizationApplication.AuthorizationApplication(self._requester, self._headers, attributes[\"app\"], completed=False)\n if \"created_at\" in attributes: # pragma no branch\n assert attributes[\"created_at\"] is None or isinstance(attributes[\"created_at\"], (str, unicode)), attributes[\"created_at\"]\n self._created_at = self._parseDatetime(attributes[\"created_at\"])"},{"sha":"8f38bc1418f4b14e16da2ea24cd8a0fd525b872a","filename":"github/AuthorizationApplication.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/AuthorizationApplication.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/AuthorizationApplication.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/AuthorizationApplication.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"9e76182677f02c87b49e51a0139112421d53bf59","filename":"github/Branch.py","status":"modified","additions":2,"deletions":1,"changes":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Branch.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Branch.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Branch.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -55,7 +56,7 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"commit\" in attributes: # pragma no branch\n assert attributes[\"commit\"] is None or isinstance(attributes[\"commit\"], dict), attributes[\"commit\"]\n- self._commit = None if attributes[\"commit\"] is None else github.Commit.Commit(self._requester, attributes[\"commit\"], completed=False)\n+ self._commit = None if attributes[\"commit\"] is None else github.Commit.Commit(self._requester, self._headers, attributes[\"commit\"], completed=False)\n if \"name\" in attributes: # pragma no branch\n assert attributes[\"name\"] is None or isinstance(attributes[\"name\"], (str, unicode)), attributes[\"name\"]\n self._name = attributes[\"name\"]"},{"sha":"828da3fe18f120b030701d48a9a78be17ef143e8","filename":"github/Commit.py","status":"modified","additions":11,"deletions":12,"changes":23,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Commit.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Commit.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Commit.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -129,10 +130,9 @@ def create_comment(self, body, line=github.GithubObject.NotSet, path=github.Gith\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/comments\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.CommitComment.CommitComment(self._requester, data, completed=True)\n+ return github.CommitComment.CommitComment(self._requester, headers, data, completed=True)\n \n def create_status(self, state, target_url=github.GithubObject.NotSet, description=github.GithubObject.NotSet):\n \"\"\"\n@@ -155,10 +155,9 @@ def create_status(self, state, target_url=github.GithubObject.NotSet, descriptio\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self._parentUrl(self._parentUrl(self.url)) + \"/statuses/\" + self.sha,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.CommitStatus.CommitStatus(self._requester, data, completed=True)\n+ return github.CommitStatus.CommitStatus(self._requester, headers, data, completed=True)\n \n def get_comments(self):\n \"\"\"\n@@ -201,23 +200,23 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"author\" in attributes: # pragma no branch\n assert attributes[\"author\"] is None or isinstance(attributes[\"author\"], dict), attributes[\"author\"]\n- self._author = None if attributes[\"author\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"author\"], completed=False)\n+ self._author = None if attributes[\"author\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"author\"], completed=False)\n if \"commit\" in attributes: # pragma no branch\n assert attributes[\"commit\"] is None or isinstance(attributes[\"commit\"], dict), attributes[\"commit\"]\n- self._commit = None if attributes[\"commit\"] is None else github.GitCommit.GitCommit(self._requester, attributes[\"commit\"], completed=False)\n+ self._commit = None if attributes[\"commit\"] is None else github.GitCommit.GitCommit(self._requester, self._headers, attributes[\"commit\"], completed=False)\n if \"committer\" in attributes: # pragma no branch\n assert attributes[\"committer\"] is None or isinstance(attributes[\"committer\"], dict), attributes[\"committer\"]\n- self._committer = None if attributes[\"committer\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"committer\"], completed=False)\n+ self._committer = None if attributes[\"committer\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"committer\"], completed=False)\n if \"files\" in attributes: # pragma no branch\n assert attributes[\"files\"] is None or all(isinstance(element, dict) for element in attributes[\"files\"]), attributes[\"files\"]\n self._files = None if attributes[\"files\"] is None else [\n- github.File.File(self._requester, element, completed=False)\n+ github.File.File(self._requester, self._headers, element, completed=False)\n for element in attributes[\"files\"]\n ]\n if \"parents\" in attributes: # pragma no branch\n assert attributes[\"parents\"] is None or all(isinstance(element, dict) for element in attributes[\"parents\"]), attributes[\"parents\"]\n self._parents = None if attributes[\"parents\"] is None else [\n- Commit(self._requester, element, completed=False)\n+ Commit(self._requester, self._headers, element, completed=False)\n for element in attributes[\"parents\"]\n ]\n if \"sha\" in attributes: # pragma no branch\n@@ -225,7 +224,7 @@ def _useAttributes(self, attributes):\n self._sha = attributes[\"sha\"]\n if \"stats\" in attributes: # pragma no branch\n assert attributes[\"stats\"] is None or isinstance(attributes[\"stats\"], dict), attributes[\"stats\"]\n- self._stats = None if attributes[\"stats\"] is None else github.CommitStats.CommitStats(self._requester, attributes[\"stats\"], completed=False)\n+ self._stats = None if attributes[\"stats\"] is None else github.CommitStats.CommitStats(self._requester, self._headers, attributes[\"stats\"], completed=False)\n if \"url\" in attributes: # pragma no branch\n assert attributes[\"url\"] is None or isinstance(attributes[\"url\"], (str, unicode)), attributes[\"url\"]\n self._url = attributes[\"url\"]"},{"sha":"c2c897d13f4092571b2a71f83694e34ff26c560d","filename":"github/CommitComment.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/CommitComment.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/CommitComment.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/CommitComment.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -128,9 +129,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, body):\n@@ -146,8 +145,7 @@ def edit(self, body):\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -197,4 +195,4 @@ def _useAttributes(self, attributes):\n self._url = attributes[\"url\"]\n if \"user\" in attributes: # pragma no branch\n assert attributes[\"user\"] is None or isinstance(attributes[\"user\"], dict), attributes[\"user\"]\n- self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"user\"], completed=False)\n+ self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"user\"], completed=False)"},{"sha":"49f407783d025f012358c435ec1153d293856bef","filename":"github/CommitStats.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/CommitStats.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/CommitStats.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/CommitStats.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"d08e0274279824208d98b1dd4033f18b970f594a","filename":"github/CommitStatus.py","status":"modified","additions":2,"deletions":1,"changes":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/CommitStatus.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/CommitStatus.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/CommitStatus.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -97,7 +98,7 @@ def _useAttributes(self, attributes):\n self._created_at = self._parseDatetime(attributes[\"created_at\"])\n if \"creator\" in attributes: # pragma no branch\n assert attributes[\"creator\"] is None or isinstance(attributes[\"creator\"], dict), attributes[\"creator\"]\n- self._creator = None if attributes[\"creator\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"creator\"], completed=False)\n+ self._creator = None if attributes[\"creator\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"creator\"], completed=False)\n if \"description\" in attributes: # pragma no branch\n assert attributes[\"description\"] is None or isinstance(attributes[\"description\"], (str, unicode)), attributes[\"description\"]\n self._description = attributes[\"description\"]"},{"sha":"f5f66bc1f4bcb57c9286fb674e4bfdbaaf47538f","filename":"github/Comparison.py","status":"modified","additions":4,"deletions":3,"changes":7,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Comparison.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Comparison.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Comparison.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -150,14 +151,14 @@ def _useAttributes(self, attributes):\n self._ahead_by = attributes[\"ahead_by\"]\n if \"base_commit\" in attributes: # pragma no branch\n assert attributes[\"base_commit\"] is None or isinstance(attributes[\"base_commit\"], dict), attributes[\"base_commit\"]\n- self._base_commit = None if attributes[\"base_commit\"] is None else github.Commit.Commit(self._requester, attributes[\"base_commit\"], completed=False)\n+ self._base_commit = None if attributes[\"base_commit\"] is None else github.Commit.Commit(self._requester, self._headers, attributes[\"base_commit\"], completed=False)\n if \"behind_by\" in attributes: # pragma no branch\n assert attributes[\"behind_by\"] is None or isinstance(attributes[\"behind_by\"], (int, long)), attributes[\"behind_by\"]\n self._behind_by = attributes[\"behind_by\"]\n if \"commits\" in attributes: # pragma no branch\n assert attributes[\"commits\"] is None or all(isinstance(element, dict) for element in attributes[\"commits\"]), attributes[\"commits\"]\n self._commits = None if attributes[\"commits\"] is None else [\n- github.Commit.Commit(self._requester, element, completed=False)\n+ github.Commit.Commit(self._requester, self._headers, element, completed=False)\n for element in attributes[\"commits\"]\n ]\n if \"diff_url\" in attributes: # pragma no branch\n@@ -166,7 +167,7 @@ def _useAttributes(self, attributes):\n if \"files\" in attributes: # pragma no branch\n assert attributes[\"files\"] is None or all(isinstance(element, dict) for element in attributes[\"files\"]), attributes[\"files\"]\n self._files = None if attributes[\"files\"] is None else [\n- github.File.File(self._requester, element, completed=False)\n+ github.File.File(self._requester, self._headers, element, completed=False)\n for element in attributes[\"files\"]\n ]\n if \"html_url\" in attributes: # pragma no branch"},{"sha":"b3b4791408f3b48375ba7360ef7aa129c592bd24","filename":"github/Consts.py","status":"added","additions":43,"deletions":0,"changes":43,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Consts.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Consts.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Consts.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,43 @@\n+# -*- coding: utf-8 -*-\n+\n+############################ Copyrights and license ############################\n+# #\n+# Copyright 2013 AKFish #\n+# #\n+# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n+# #\n+# PyGithub is free software: you can redistribute it and/or modify it under #\n+# the terms of the GNU Lesser General Public License as published by the Free #\n+# Software Foundation, either version 3 of the License, or (at your option) #\n+# any later version. #\n+# #\n+# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #\n+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #\n+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n+# details. #\n+# #\n+# You should have received a copy of the GNU Lesser General Public License #\n+# along with PyGithub. If not, see . #\n+# #\n+################################################################################\n+\n+# #193: Line endings should be linux style\n+\n+# TODO: As of Thu Aug 21 22:40:13 (BJT) Chinese Standard Time 2013\n+# lots of consts in this project are explict\n+# should realy round them up and reference them by consts\n+# EDIT: well, maybe :-)\n+\n+################################################################################\n+# Request Header #\n+# (Case sensitive) #\n+################################################################################\n+REQ_IF_NONE_MATCH = \"If-None-Match\"\n+REQ_IF_MODIFIED_SINCE = \"If-Modified-Since\"\n+\n+################################################################################\n+# Response Header #\n+# (Lower Case) #\n+################################################################################\n+RES_ETAG = \"etag\"\n+RES_LAST_MODIFED = \"last-modified\""},{"sha":"03818842545b0c6824e8ab4f1e5b1c87462cba6a","filename":"github/ContentFile.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/ContentFile.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/ContentFile.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/ContentFile.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"2cd057cac916898be1451aac7b4f94830a880937","filename":"github/Download.py","status":"modified","additions":2,"deletions":3,"changes":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Download.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Download.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Download.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -198,9 +199,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def _initAttributes(self):"},{"sha":"203510252bb0e76c540d3bc20630e75ef99ecb31","filename":"github/Event.py","status":"modified","additions":4,"deletions":3,"changes":7,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Event.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Event.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Event.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -105,7 +106,7 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"actor\" in attributes: # pragma no branch\n assert attributes[\"actor\"] is None or isinstance(attributes[\"actor\"], dict), attributes[\"actor\"]\n- self._actor = None if attributes[\"actor\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"actor\"], completed=False)\n+ self._actor = None if attributes[\"actor\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"actor\"], completed=False)\n if \"created_at\" in attributes: # pragma no branch\n assert attributes[\"created_at\"] is None or isinstance(attributes[\"created_at\"], (str, unicode)), attributes[\"created_at\"]\n self._created_at = self._parseDatetime(attributes[\"created_at\"])\n@@ -114,7 +115,7 @@ def _useAttributes(self, attributes):\n self._id = attributes[\"id\"]\n if \"org\" in attributes: # pragma no branch\n assert attributes[\"org\"] is None or isinstance(attributes[\"org\"], dict), attributes[\"org\"]\n- self._org = None if attributes[\"org\"] is None else github.Organization.Organization(self._requester, attributes[\"org\"], completed=False)\n+ self._org = None if attributes[\"org\"] is None else github.Organization.Organization(self._requester, self._headers, attributes[\"org\"], completed=False)\n if \"payload\" in attributes: # pragma no branch\n assert attributes[\"payload\"] is None or isinstance(attributes[\"payload\"], dict), attributes[\"payload\"]\n self._payload = attributes[\"payload\"]\n@@ -123,7 +124,7 @@ def _useAttributes(self, attributes):\n self._public = attributes[\"public\"]\n if \"repo\" in attributes: # pragma no branch\n assert attributes[\"repo\"] is None or isinstance(attributes[\"repo\"], dict), attributes[\"repo\"]\n- self._repo = None if attributes[\"repo\"] is None else github.Repository.Repository(self._requester, attributes[\"repo\"], completed=False)\n+ self._repo = None if attributes[\"repo\"] is None else github.Repository.Repository(self._requester, self._headers, attributes[\"repo\"], completed=False)\n if \"type\" in attributes: # pragma no branch\n assert attributes[\"type\"] is None or isinstance(attributes[\"type\"], (str, unicode)), attributes[\"type\"]\n self._type = attributes[\"type\"]"},{"sha":"6adaae8a974440b489b2913d515a32488f8c252f","filename":"github/File.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/File.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/File.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/File.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"65de668ed8da2c379cc88c0515024aa3d4c7164e","filename":"github/Gist.py","status":"modified","additions":17,"deletions":30,"changes":47,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Gist.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Gist.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Gist.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -5,6 +5,7 @@\n # Copyright 2012 Steve English #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -171,23 +172,20 @@ def create_comment(self, body):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/comments\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.GistComment.GistComment(self._requester, data, completed=True)\n+ return github.GistComment.GistComment(self._requester, headers, data, completed=True)\n \n def create_fork(self):\n \"\"\"\n- :calls: `POST /gists/:id/fork `_\n+ :calls: `POST /gists/:id/forks `_\n :rtype: :class:`github.Gist.Gist`\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n- self.url + \"/fork\",\n- None,\n- None\n+ self.url + \"/forks\"\n )\n- return Gist(self._requester, data, completed=True)\n+ return Gist(self._requester, headers, data, completed=True)\n \n def delete(self):\n \"\"\"\n@@ -196,9 +194,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, description=github.GithubObject.NotSet, files=github.GithubObject.NotSet):\n@@ -218,8 +214,7 @@ def edit(self, description=github.GithubObject.NotSet, files=github.GithubObject\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -232,11 +227,9 @@ def get_comment(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/comments/\" + str(id),\n- None,\n- None\n+ self.url + \"/comments/\" + str(id)\n )\n- return github.GistComment.GistComment(self._requester, data, completed=True)\n+ return github.GistComment.GistComment(self._requester, headers, data, completed=True)\n \n def get_comments(self):\n \"\"\"\n@@ -257,9 +250,7 @@ def is_starred(self):\n \"\"\"\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- self.url + \"/star\",\n- None,\n- None\n+ self.url + \"/star\"\n )\n return status == 204\n \n@@ -270,9 +261,7 @@ def reset_starred(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url + \"/star\",\n- None,\n- None\n+ self.url + \"/star\"\n )\n \n def set_starred(self):\n@@ -282,9 +271,7 @@ def set_starred(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n- self.url + \"/star\",\n- None,\n- None\n+ self.url + \"/star\"\n )\n \n def _initAttributes(self):\n@@ -317,12 +304,12 @@ def _useAttributes(self, attributes):\n if \"files\" in attributes: # pragma no branch\n assert attributes[\"files\"] is None or all(isinstance(element, dict) for element in attributes[\"files\"].itervalues()), attributes[\"files\"]\n self._files = None if attributes[\"files\"] is None else dict(\n- (key, github.GistFile.GistFile(self._requester, element, completed=False))\n+ (key, github.GistFile.GistFile(self._requester, self._headers, element, completed=False))\n for key, element in attributes[\"files\"].iteritems()\n )\n if \"fork_of\" in attributes: # pragma no branch\n assert attributes[\"fork_of\"] is None or isinstance(attributes[\"fork_of\"], dict), attributes[\"fork_of\"]\n- self._fork_of = None if attributes[\"fork_of\"] is None else Gist(self._requester, attributes[\"fork_of\"], completed=False)\n+ self._fork_of = None if attributes[\"fork_of\"] is None else Gist(self._requester, self._headers, attributes[\"fork_of\"], completed=False)\n if \"forks\" in attributes: # pragma no branch\n assert attributes[\"forks\"] is None or all(isinstance(element, dict) for element in attributes[\"forks\"]), attributes[\"forks\"]\n self._forks = None if attributes[\"forks\"] is None else [\n@@ -338,7 +325,7 @@ def _useAttributes(self, attributes):\n if \"history\" in attributes: # pragma no branch\n assert attributes[\"history\"] is None or all(isinstance(element, dict) for element in attributes[\"history\"]), attributes[\"history\"]\n self._history = None if attributes[\"history\"] is None else [\n- github.GistHistoryState.GistHistoryState(self._requester, element, completed=False)\n+ github.GistHistoryState.GistHistoryState(self._requester, self._headers, element, completed=False)\n for element in attributes[\"history\"]\n ]\n if \"html_url\" in attributes: # pragma no branch\n@@ -358,4 +345,4 @@ def _useAttributes(self, attributes):\n self._url = attributes[\"url\"]\n if \"user\" in attributes: # pragma no branch\n assert attributes[\"user\"] is None or isinstance(attributes[\"user\"], dict), attributes[\"user\"]\n- self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"user\"], completed=False)\n+ self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"user\"], completed=False)"},{"sha":"5ee0664c5827eccb2cce3e514d907f70daa7e09c","filename":"github/GistComment.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GistComment.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GistComment.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GistComment.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -88,9 +89,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, body):\n@@ -106,8 +105,7 @@ def edit(self, body):\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -137,4 +135,4 @@ def _useAttributes(self, attributes):\n self._url = attributes[\"url\"]\n if \"user\" in attributes: # pragma no branch\n assert attributes[\"user\"] is None or isinstance(attributes[\"user\"], dict), attributes[\"user\"]\n- self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"user\"], completed=False)\n+ self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"user\"], completed=False)"},{"sha":"96c8ee2741d3fe8fbb40d12541f9e4a94839fdf3","filename":"github/GistFile.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GistFile.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GistFile.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GistFile.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"bc24d5c0700d0bf95d76e8cc1b20cdbbdfeb80a7","filename":"github/GistHistoryState.py","status":"modified","additions":3,"deletions":2,"changes":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GistHistoryState.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GistHistoryState.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GistHistoryState.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -84,7 +85,7 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"change_status\" in attributes: # pragma no branch\n assert attributes[\"change_status\"] is None or isinstance(attributes[\"change_status\"], dict), attributes[\"change_status\"]\n- self._change_status = None if attributes[\"change_status\"] is None else github.CommitStats.CommitStats(self._requester, attributes[\"change_status\"], completed=False)\n+ self._change_status = None if attributes[\"change_status\"] is None else github.CommitStats.CommitStats(self._requester, self._headers, attributes[\"change_status\"], completed=False)\n if \"committed_at\" in attributes: # pragma no branch\n assert attributes[\"committed_at\"] is None or isinstance(attributes[\"committed_at\"], (str, unicode)), attributes[\"committed_at\"]\n self._committed_at = self._parseDatetime(attributes[\"committed_at\"])\n@@ -93,7 +94,7 @@ def _useAttributes(self, attributes):\n self._url = attributes[\"url\"]\n if \"user\" in attributes: # pragma no branch\n assert attributes[\"user\"] is None or isinstance(attributes[\"user\"], dict), attributes[\"user\"]\n- self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"user\"], completed=False)\n+ self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"user\"], completed=False)\n if \"version\" in attributes: # pragma no branch\n assert attributes[\"version\"] is None or isinstance(attributes[\"version\"], (str, unicode)), attributes[\"version\"]\n self._version = attributes[\"version\"]"},{"sha":"e56ce94d55e53cc74e259293b1a2c91d22f8b40c","filename":"github/GitAuthor.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GitAuthor.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GitAuthor.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GitAuthor.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"8f1056829fa56386223cb843005d6777ac71d32e","filename":"github/GitBlob.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GitBlob.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GitBlob.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GitBlob.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"ffdc6d5a739ed5dd4f701cd2c345108ceb5499c2","filename":"github/GitCommit.py","status":"modified","additions":5,"deletions":4,"changes":9,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GitCommit.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GitCommit.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GitCommit.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -106,17 +107,17 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"author\" in attributes: # pragma no branch\n assert attributes[\"author\"] is None or isinstance(attributes[\"author\"], dict), attributes[\"author\"]\n- self._author = None if attributes[\"author\"] is None else github.GitAuthor.GitAuthor(self._requester, attributes[\"author\"], completed=False)\n+ self._author = None if attributes[\"author\"] is None else github.GitAuthor.GitAuthor(self._requester, self._headers, attributes[\"author\"], completed=False)\n if \"committer\" in attributes: # pragma no branch\n assert attributes[\"committer\"] is None or isinstance(attributes[\"committer\"], dict), attributes[\"committer\"]\n- self._committer = None if attributes[\"committer\"] is None else github.GitAuthor.GitAuthor(self._requester, attributes[\"committer\"], completed=False)\n+ self._committer = None if attributes[\"committer\"] is None else github.GitAuthor.GitAuthor(self._requester, self._headers, attributes[\"committer\"], completed=False)\n if \"message\" in attributes: # pragma no branch\n assert attributes[\"message\"] is None or isinstance(attributes[\"message\"], (str, unicode)), attributes[\"message\"]\n self._message = attributes[\"message\"]\n if \"parents\" in attributes: # pragma no branch\n assert attributes[\"parents\"] is None or all(isinstance(element, dict) for element in attributes[\"parents\"]), attributes[\"parents\"]\n self._parents = None if attributes[\"parents\"] is None else [\n- GitCommit(self._requester, element, completed=False)\n+ GitCommit(self._requester, self._headers, element, completed=False)\n for element in attributes[\"parents\"]\n ]\n if \"sha\" in attributes: # pragma no branch\n@@ -124,7 +125,7 @@ def _useAttributes(self, attributes):\n self._sha = attributes[\"sha\"]\n if \"tree\" in attributes: # pragma no branch\n assert attributes[\"tree\"] is None or isinstance(attributes[\"tree\"], dict), attributes[\"tree\"]\n- self._tree = None if attributes[\"tree\"] is None else github.GitTree.GitTree(self._requester, attributes[\"tree\"], completed=False)\n+ self._tree = None if attributes[\"tree\"] is None else github.GitTree.GitTree(self._requester, self._headers, attributes[\"tree\"], completed=False)\n if \"url\" in attributes: # pragma no branch\n assert attributes[\"url\"] is None or isinstance(attributes[\"url\"], (str, unicode)), attributes[\"url\"]\n self._url = attributes[\"url\"]"},{"sha":"a731464122384af8435525853343bce170cb5cd6","filename":"github/GitObject.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GitObject.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GitObject.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GitObject.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"97a2ca4d6e900f32d7910ef657afc40d4b91a539","filename":"github/GitRef.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GitRef.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GitRef.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GitRef.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -64,9 +65,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, sha, force=github.GithubObject.NotSet):\n@@ -86,8 +85,7 @@ def edit(self, sha, force=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -99,7 +97,7 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"object\" in attributes: # pragma no branch\n assert attributes[\"object\"] is None or isinstance(attributes[\"object\"], dict), attributes[\"object\"]\n- self._object = None if attributes[\"object\"] is None else github.GitObject.GitObject(self._requester, attributes[\"object\"], completed=False)\n+ self._object = None if attributes[\"object\"] is None else github.GitObject.GitObject(self._requester, self._headers, attributes[\"object\"], completed=False)\n if \"ref\" in attributes: # pragma no branch\n assert attributes[\"ref\"] is None or isinstance(attributes[\"ref\"], (str, unicode)), attributes[\"ref\"]\n self._ref = attributes[\"ref\"]"},{"sha":"564b6b86fa11f943796a0630afd00e17f7fee1ce","filename":"github/GitTag.py","status":"modified","additions":3,"deletions":2,"changes":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GitTag.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GitTag.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GitTag.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -96,7 +97,7 @@ def _useAttributes(self, attributes):\n self._message = attributes[\"message\"]\n if \"object\" in attributes: # pragma no branch\n assert attributes[\"object\"] is None or isinstance(attributes[\"object\"], dict), attributes[\"object\"]\n- self._object = None if attributes[\"object\"] is None else github.GitObject.GitObject(self._requester, attributes[\"object\"], completed=False)\n+ self._object = None if attributes[\"object\"] is None else github.GitObject.GitObject(self._requester, self._headers, attributes[\"object\"], completed=False)\n if \"sha\" in attributes: # pragma no branch\n assert attributes[\"sha\"] is None or isinstance(attributes[\"sha\"], (str, unicode)), attributes[\"sha\"]\n self._sha = attributes[\"sha\"]\n@@ -105,7 +106,7 @@ def _useAttributes(self, attributes):\n self._tag = attributes[\"tag\"]\n if \"tagger\" in attributes: # pragma no branch\n assert attributes[\"tagger\"] is None or isinstance(attributes[\"tagger\"], dict), attributes[\"tagger\"]\n- self._tagger = None if attributes[\"tagger\"] is None else github.GitAuthor.GitAuthor(self._requester, attributes[\"tagger\"], completed=False)\n+ self._tagger = None if attributes[\"tagger\"] is None else github.GitAuthor.GitAuthor(self._requester, self._headers, attributes[\"tagger\"], completed=False)\n if \"url\" in attributes: # pragma no branch\n assert attributes[\"url\"] is None or isinstance(attributes[\"url\"], (str, unicode)), attributes[\"url\"]\n self._url = attributes[\"url\"]"},{"sha":"b06c5e82369ae5ba3a50d0edc483e3b22c207aad","filename":"github/GitTree.py","status":"modified","additions":2,"deletions":1,"changes":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GitTree.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GitTree.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GitTree.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -73,7 +74,7 @@ def _useAttributes(self, attributes):\n if \"tree\" in attributes: # pragma no branch\n assert attributes[\"tree\"] is None or all(isinstance(element, dict) for element in attributes[\"tree\"]), attributes[\"tree\"]\n self._tree = None if attributes[\"tree\"] is None else [\n- github.GitTreeElement.GitTreeElement(self._requester, element, completed=False)\n+ github.GitTreeElement.GitTreeElement(self._requester, self._headers, element, completed=False)\n for element in attributes[\"tree\"]\n ]\n if \"url\" in attributes: # pragma no branch"},{"sha":"e7ae76bbcb10fa76c9b0b3316550045a03f5f81b","filename":"github/GitTreeElement.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GitTreeElement.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GitTreeElement.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GitTreeElement.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"02e7a75e28a911a1bf691663d2e2b3a6bde84768","filename":"github/GithubException.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GithubException.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GithubException.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GithubException.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"91c079b70a8508a3ab3f7f740f51bdda35cf87ea","filename":"github/GithubObject.py","status":"modified","additions":74,"deletions":10,"changes":84,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GithubObject.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GithubObject.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GithubObject.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -26,6 +27,7 @@\n import datetime\n \n import GithubException\n+import Consts\n \n \n class _NotSetType:\n@@ -38,14 +40,32 @@ class GithubObject(object):\n \"\"\"\n Base class for all classes representing objects returned by the API.\n \"\"\"\n- def __init__(self, requester, attributes, completed):\n+\n+ '''\n+ A global debug flag to enable header validation by requester for all objects\n+ '''\n+ CHECK_AFTER_INIT_FLAG = False\n+\n+ @classmethod\n+ def setCheckAfterInitFlag(cls, flag):\n+ cls.CHECK_AFTER_INIT_FLAG = flag\n+\n+ def __init__(self, requester, headers, attributes, completed):\n self._requester = requester\n self._initAttributes()\n- self._storeAndUseAttributes(attributes)\n+ self._storeAndUseAttributes(headers, attributes)\n \n- def _storeAndUseAttributes(self, attributes):\n- self._useAttributes(attributes)\n+ # Ask requester to do some checking, for debug and test purpose\n+ # Since it's most handy to access and kinda all-knowing\n+ if self.CHECK_AFTER_INIT_FLAG: # pragma no branch (Flag always set in tests)\n+ requester.check_me(self)\n+\n+ def _storeAndUseAttributes(self, headers, attributes):\n+ # Make sure headers are assigned before calling _useAttributes\n+ # (Some derived classes will use headers in _useAttributes)\n+ self._headers = headers\n self._rawData = attributes\n+ self._useAttributes(attributes)\n \n @property\n def raw_data(self):\n@@ -55,6 +75,14 @@ def raw_data(self):\n self._completeIfNeeded()\n return self._rawData\n \n+ @property\n+ def raw_headers(self):\n+ \"\"\"\n+ :type: dict\n+ \"\"\"\n+ self._completeIfNeeded()\n+ return self._headers\n+\n @staticmethod\n def _parentUrl(url):\n return \"/\".join(url.split(\"/\")[: -1])\n@@ -77,6 +105,20 @@ def _parseDatetime(s):\n else:\n return datetime.datetime.strptime(s, \"%Y-%m-%dT%H:%M:%SZ\")\n \n+ @property\n+ def etag(self):\n+ '''\n+ :type str\n+ '''\n+ return self._headers.get(Consts.RES_ETAG)\n+\n+ @property\n+ def last_modified(self):\n+ '''\n+ :type str\n+ '''\n+ return self._headers.get(Consts.RES_LAST_MODIFED)\n+\n \n class NonCompletableGithubObject(GithubObject):\n def _completeIfNeeded(self):\n@@ -84,8 +126,8 @@ def _completeIfNeeded(self):\n \n \n class CompletableGithubObject(GithubObject):\n- def __init__(self, requester, attributes, completed):\n- GithubObject.__init__(self, requester, attributes, completed)\n+ def __init__(self, requester, headers, attributes, completed):\n+ GithubObject.__init__(self, requester, headers, attributes, completed)\n self.__completed = completed\n \n def _completeIfNotSet(self, value):\n@@ -99,9 +141,31 @@ def _completeIfNeeded(self):\n def __complete(self):\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self._url,\n- None,\n- None\n+ self._url\n )\n- self._storeAndUseAttributes(data)\n+ self._storeAndUseAttributes(headers, data)\n self.__completed = True\n+\n+ def update(self):\n+ '''\n+ Check and update the object with conditional request\n+ :rtype: Boolean value indicating whether the object is changed\n+ '''\n+ conditionalRequestHeader = dict()\n+ if self.etag is not None:\n+ conditionalRequestHeader[Consts.REQ_IF_NONE_MATCH] = self.etag\n+ if self.last_modified is not None:\n+ conditionalRequestHeader[Consts.REQ_IF_MODIFIED_SINCE] = self.last_modified\n+\n+ status, responseHeaders, output = self._requester.requestJson(\n+ \"GET\",\n+ self._url,\n+ headers=conditionalRequestHeader\n+ )\n+ if status == 304:\n+ return False\n+ else:\n+ headers, data = self._requester._Requester__check(status, responseHeaders, output)\n+ self._storeAndUseAttributes(headers, data)\n+ self.__completed = True\n+ return True"},{"sha":"a8a7022f4602f37b2583f890e324b204cdc89a62","filename":"github/GitignoreTemplate.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/GitignoreTemplate.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/GitignoreTemplate.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/GitignoreTemplate.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -3,6 +3,7 @@\n ############################ Copyrights and license ############################\n # #\n # Copyright 2012 Vincent Jacques #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"447a0e9a7afa1e845dea9dc82f8c114251ea61bc","filename":"github/Hook.py","status":"modified","additions":7,"deletions":11,"changes":18,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Hook.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Hook.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Hook.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -30,7 +31,7 @@\n \n class Hook(github.GithubObject.CompletableGithubObject):\n \"\"\"\n- This class represents Hooks as returned for example by http://developer.github.com/v3/todo\n+ This class represents Hooks as returned for example by http://developer.github.com/v3/repos/hooks\n \"\"\"\n \n @property\n@@ -112,9 +113,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, name, config, events=github.GithubObject.NotSet, add_events=github.GithubObject.NotSet, remove_events=github.GithubObject.NotSet, active=github.GithubObject.NotSet):\n@@ -149,21 +148,18 @@ def edit(self, name, config, events=github.GithubObject.NotSet, add_events=githu\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n def test(self):\n \"\"\"\n- :calls: `POST /repos/:owner/:repo/hooks/:id/test `_\n+ :calls: `POST /repos/:owner/:repo/hooks/:id/tests `_\n :rtype: None\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n- self.url + \"/test\",\n- None,\n- None\n+ self.url + \"/tests\"\n )\n \n def _initAttributes(self):\n@@ -195,7 +191,7 @@ def _useAttributes(self, attributes):\n self._id = attributes[\"id\"]\n if \"last_response\" in attributes: # pragma no branch\n assert attributes[\"last_response\"] is None or isinstance(attributes[\"last_response\"], dict), attributes[\"last_response\"]\n- self._last_response = None if attributes[\"last_response\"] is None else github.HookResponse.HookResponse(self._requester, attributes[\"last_response\"], completed=False)\n+ self._last_response = None if attributes[\"last_response\"] is None else github.HookResponse.HookResponse(self._requester, self._headers, attributes[\"last_response\"], completed=False)\n if \"name\" in attributes: # pragma no branch\n assert attributes[\"name\"] is None or isinstance(attributes[\"name\"], (str, unicode)), attributes[\"name\"]\n self._name = attributes[\"name\"]"},{"sha":"5653492bbd94babe3e1039d8c30eda3dde4349bb","filename":"github/HookDescription.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/HookDescription.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/HookDescription.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/HookDescription.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"41e242b3abfb1ac7e961ee5a524cdb0455d5b253","filename":"github/HookResponse.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/HookResponse.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/HookResponse.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/HookResponse.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"b849e8d459dc6ecbb28278d17680d175a30ba391","filename":"github/Issue.py","status":"modified","additions":18,"deletions":27,"changes":45,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Issue.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Issue.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Issue.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -6,6 +6,7 @@\n # Copyright 2012 Philip Kimmey #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Stuart Glaser #\n # Copyright 2013 Vincent Jacques #\n # #\n@@ -148,7 +149,7 @@ def repository(self):\n if self._repository is github.GithubObject.NotSet:\n # The repository was not set automatically, so it must be looked up by url.\n repo_url = \"/\".join(self.url.split(\"/\")[:-2])\n- self._repository = github.Repository.Repository(self._requester, {'url': repo_url}, False)\n+ self._repository = github.Repository.Repository(self._requester, self._headers, {'url': repo_url}, completed=False)\n return self._repository\n \n @property\n@@ -202,8 +203,7 @@ def add_to_labels(self, *labels):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/labels\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n \n def create_comment(self, body):\n@@ -219,10 +219,9 @@ def create_comment(self, body):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/comments\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.IssueComment.IssueComment(self._requester, data, completed=True)\n+ return github.IssueComment.IssueComment(self._requester, headers, data, completed=True)\n \n def delete_labels(self):\n \"\"\"\n@@ -231,9 +230,7 @@ def delete_labels(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url + \"/labels\",\n- None,\n- None\n+ self.url + \"/labels\"\n )\n \n def edit(self, title=github.GithubObject.NotSet, body=github.GithubObject.NotSet, assignee=github.GithubObject.NotSet, state=github.GithubObject.NotSet, milestone=github.GithubObject.NotSet, labels=github.GithubObject.NotSet):\n@@ -269,8 +266,7 @@ def edit(self, title=github.GithubObject.NotSet, body=github.GithubObject.NotSet\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -283,11 +279,9 @@ def get_comment(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self._parentUrl(self.url) + \"/comments/\" + str(id),\n- None,\n- None\n+ self._parentUrl(self.url) + \"/comments/\" + str(id)\n )\n- return github.IssueComment.IssueComment(self._requester, data, completed=True)\n+ return github.IssueComment.IssueComment(self._requester, headers, data, completed=True)\n \n def get_comments(self):\n \"\"\"\n@@ -334,9 +328,7 @@ def remove_from_labels(self, label):\n assert isinstance(label, github.Label.Label), label\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url + \"/labels/\" + label._identity,\n- None,\n- None\n+ self.url + \"/labels/\" + label._identity\n )\n \n def set_labels(self, *labels):\n@@ -350,8 +342,7 @@ def set_labels(self, *labels):\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n self.url + \"/labels\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n \n @property\n@@ -381,7 +372,7 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"assignee\" in attributes: # pragma no branch\n assert attributes[\"assignee\"] is None or isinstance(attributes[\"assignee\"], dict), attributes[\"assignee\"]\n- self._assignee = None if attributes[\"assignee\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"assignee\"], completed=False)\n+ self._assignee = None if attributes[\"assignee\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"assignee\"], completed=False)\n if \"body\" in attributes: # pragma no branch\n assert attributes[\"body\"] is None or isinstance(attributes[\"body\"], (str, unicode)), attributes[\"body\"]\n self._body = attributes[\"body\"]\n@@ -390,7 +381,7 @@ def _useAttributes(self, attributes):\n self._closed_at = self._parseDatetime(attributes[\"closed_at\"])\n if \"closed_by\" in attributes: # pragma no branch\n assert attributes[\"closed_by\"] is None or isinstance(attributes[\"closed_by\"], dict), attributes[\"closed_by\"]\n- self._closed_by = None if attributes[\"closed_by\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"closed_by\"], completed=False)\n+ self._closed_by = None if attributes[\"closed_by\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"closed_by\"], completed=False)\n if \"comments\" in attributes: # pragma no branch\n assert attributes[\"comments\"] is None or isinstance(attributes[\"comments\"], (int, long)), attributes[\"comments\"]\n self._comments = attributes[\"comments\"]\n@@ -406,21 +397,21 @@ def _useAttributes(self, attributes):\n if \"labels\" in attributes: # pragma no branch\n assert attributes[\"labels\"] is None or all(isinstance(element, dict) for element in attributes[\"labels\"]), attributes[\"labels\"]\n self._labels = None if attributes[\"labels\"] is None else [\n- github.Label.Label(self._requester, element, completed=False)\n+ github.Label.Label(self._requester, self._headers, element, completed=False)\n for element in attributes[\"labels\"]\n ]\n if \"milestone\" in attributes: # pragma no branch\n assert attributes[\"milestone\"] is None or isinstance(attributes[\"milestone\"], dict), attributes[\"milestone\"]\n- self._milestone = None if attributes[\"milestone\"] is None else github.Milestone.Milestone(self._requester, attributes[\"milestone\"], completed=False)\n+ self._milestone = None if attributes[\"milestone\"] is None else github.Milestone.Milestone(self._requester, self._headers, attributes[\"milestone\"], completed=False)\n if \"number\" in attributes: # pragma no branch\n assert attributes[\"number\"] is None or isinstance(attributes[\"number\"], (int, long)), attributes[\"number\"]\n self._number = attributes[\"number\"]\n if \"pull_request\" in attributes: # pragma no branch\n assert attributes[\"pull_request\"] is None or isinstance(attributes[\"pull_request\"], dict), attributes[\"pull_request\"]\n- self._pull_request = None if attributes[\"pull_request\"] is None else github.IssuePullRequest.IssuePullRequest(self._requester, attributes[\"pull_request\"], completed=False)\n+ self._pull_request = None if attributes[\"pull_request\"] is None else github.IssuePullRequest.IssuePullRequest(self._requester, self._headers, attributes[\"pull_request\"], completed=False)\n if \"repository\" in attributes: # pragma no branch\n assert attributes[\"repository\"] is None or isinstance(attributes[\"repository\"], dict), attributes[\"repository\"]\n- self._repository = None if attributes[\"repository\"] is None else github.Repository.Repository(self._requester, attributes[\"repository\"], completed=False)\n+ self._repository = None if attributes[\"repository\"] is None else github.Repository.Repository(self._requester, self._headers, attributes[\"repository\"], completed=False)\n if \"state\" in attributes: # pragma no branch\n assert attributes[\"state\"] is None or isinstance(attributes[\"state\"], (str, unicode)), attributes[\"state\"]\n self._state = attributes[\"state\"]\n@@ -435,4 +426,4 @@ def _useAttributes(self, attributes):\n self._url = attributes[\"url\"]\n if \"user\" in attributes: # pragma no branch\n assert attributes[\"user\"] is None or isinstance(attributes[\"user\"], dict), attributes[\"user\"]\n- self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"user\"], completed=False)\n+ self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"user\"], completed=False)"},{"sha":"149a6f6f1eafaf177dd951aa211f659a6975d72f","filename":"github/IssueComment.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/IssueComment.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/IssueComment.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/IssueComment.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Michael Stead #\n # Copyright 2013 Vincent Jacques #\n # #\n@@ -97,9 +98,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, body):\n@@ -115,8 +114,7 @@ def edit(self, body):\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -150,4 +148,4 @@ def _useAttributes(self, attributes):\n self._html_url = attributes[\"html_url\"]\n if \"user\" in attributes: # pragma no branch\n assert attributes[\"user\"] is None or isinstance(attributes[\"user\"], dict), attributes[\"user\"]\n- self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"user\"], completed=False)\n+ self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"user\"], completed=False)"},{"sha":"aca4cdf8a90313170980f3b75d11de61c6e3d202","filename":"github/IssueEvent.py","status":"modified","additions":3,"deletions":2,"changes":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/IssueEvent.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/IssueEvent.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/IssueEvent.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -102,7 +103,7 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"actor\" in attributes: # pragma no branch\n assert attributes[\"actor\"] is None or isinstance(attributes[\"actor\"], dict), attributes[\"actor\"]\n- self._actor = None if attributes[\"actor\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"actor\"], completed=False)\n+ self._actor = None if attributes[\"actor\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"actor\"], completed=False)\n if \"commit_id\" in attributes: # pragma no branch\n assert attributes[\"commit_id\"] is None or isinstance(attributes[\"commit_id\"], (str, unicode)), attributes[\"commit_id\"]\n self._commit_id = attributes[\"commit_id\"]\n@@ -117,7 +118,7 @@ def _useAttributes(self, attributes):\n self._id = attributes[\"id\"]\n if \"issue\" in attributes: # pragma no branch\n assert attributes[\"issue\"] is None or isinstance(attributes[\"issue\"], dict), attributes[\"issue\"]\n- self._issue = None if attributes[\"issue\"] is None else github.Issue.Issue(self._requester, attributes[\"issue\"], completed=False)\n+ self._issue = None if attributes[\"issue\"] is None else github.Issue.Issue(self._requester, self._headers, attributes[\"issue\"], completed=False)\n if \"url\" in attributes: # pragma no branch\n assert attributes[\"url\"] is None or isinstance(attributes[\"url\"], (str, unicode)), attributes[\"url\"]\n self._url = attributes[\"url\"]"},{"sha":"ae7e6b6c203695bc39cd5d057f80df638f8e8ccb","filename":"github/IssuePullRequest.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/IssuePullRequest.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/IssuePullRequest.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/IssuePullRequest.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"813cd5f015c056fdd9e1b0e2e4dc0d9265b5f238","filename":"github/Label.py","status":"modified","additions":3,"deletions":5,"changes":8,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Label.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Label.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Label.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -65,9 +66,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, name, color):\n@@ -86,8 +85,7 @@ def edit(self, name, color):\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n "},{"sha":"cfe48d679963a0e10f861b76fa9a80cfd2ad85cc","filename":"github/Legacy.py","status":"modified","additions":4,"deletions":3,"changes":7,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Legacy.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Legacy.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Legacy.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -5,6 +5,7 @@\n # Copyright 2012 Steve English #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -57,12 +58,12 @@ def get_page(self, page):\n headers, data = self.__requester.requestJsonAndCheck(\n \"GET\",\n self.__url,\n- args,\n- None\n+ parameters=args\n )\n self.__continue = len(data[self.__key]) > 0\n+\n return [\n- self.__contentClass(self.__requester, self.__convert(element), completed=False)\n+ self.__contentClass(self.__requester, headers, self.__convert(element), completed=False)\n for element in data[self.__key]\n ]\n "},{"sha":"a4af1a618da0a5d865eb1675fd96a085bb0ab680","filename":"github/MainClass.py","status":"modified","additions":113,"deletions":44,"changes":157,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/MainClass.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/MainClass.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/MainClass.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -2,6 +2,7 @@\n \n ############################ Copyrights and license ############################\n # #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Ed Jackson #\n # Copyright 2013 Jonathan J Hunt #\n # Copyright 2013 Peter Golm #\n@@ -25,6 +26,7 @@\n ################################################################################\n \n import urllib\n+import pickle\n \n from Requester import Requester\n import AuthenticatedUser\n@@ -38,6 +40,8 @@\n import HookDescription\n import GitignoreTemplate\n import Notification\n+import Status\n+import StatusMessage\n \n \n DEFAULT_BASE_URL = \"https://api.github.com\"\n@@ -91,8 +95,12 @@ def __get_per_page(self):\n def __set_per_page(self, value):\n self.__requester.per_page = value\n \n+ # v2: Remove this property? Why should it be necessary to read/modify it after construction\n per_page = property(__get_per_page, __set_per_page)\n \n+ # v2: Provide a unified way to access values of headers of last response\n+ # v2: (and add/keep ad hoc properties for specific useful headers like rate limiting, oauth scopes, etc.)\n+ # v2: Return an instance of a class: using a tuple did not allow to add a field \"resettime\"\n @property\n def rate_limiting(self):\n \"\"\"\n@@ -103,9 +111,7 @@ def rate_limiting(self):\n if limit < 0:\n self.__requester.requestJsonAndCheck(\n 'GET',\n- '/rate_limit',\n- None,\n- None\n+ '/rate_limit'\n )\n return self.__requester.rate_limiting\n \n@@ -118,9 +124,7 @@ def rate_limiting_resettime(self):\n if self.__requester.rate_limiting_resettime == 0:\n self.__requester.requestJsonAndCheck(\n 'GET',\n- '/rate_limit',\n- None,\n- None\n+ '/rate_limit'\n )\n return self.__requester.rate_limiting_resettime\n \n@@ -139,15 +143,13 @@ def get_user(self, login=github.GithubObject.NotSet):\n \"\"\"\n assert login is github.GithubObject.NotSet or isinstance(login, (str, unicode)), login\n if login is github.GithubObject.NotSet:\n- return AuthenticatedUser.AuthenticatedUser(self.__requester, {\"url\": \"/user\"}, completed=False)\n+ return AuthenticatedUser.AuthenticatedUser(self.__requester, {}, {\"url\": \"/user\"}, completed=False)\n else:\n headers, data = self.__requester.requestJsonAndCheck(\n \"GET\",\n- \"/users/\" + login,\n- None,\n- None\n+ \"/users/\" + login\n )\n- return github.NamedUser.NamedUser(self.__requester, data, completed=True)\n+ return github.NamedUser.NamedUser(self.__requester, headers, data, completed=True)\n \n def get_users(self, since=github.GithubObject.NotSet):\n \"\"\"\n@@ -175,11 +177,9 @@ def get_organization(self, login):\n assert isinstance(login, (str, unicode)), login\n headers, data = self.__requester.requestJsonAndCheck(\n \"GET\",\n- \"/orgs/\" + login,\n- None,\n- None\n+ \"/orgs/\" + login\n )\n- return github.Organization.Organization(self.__requester, data, completed=True)\n+ return github.Organization.Organization(self.__requester, headers, data, completed=True)\n \n def get_repo(self, full_name):\n \"\"\"\n@@ -189,11 +189,26 @@ def get_repo(self, full_name):\n assert isinstance(full_name, (str, unicode)), full_name\n headers, data = self.__requester.requestJsonAndCheck(\n \"GET\",\n- \"/repos/\" + full_name,\n- None,\n- None\n+ \"/repos/\" + full_name\n+ )\n+ return Repository.Repository(self.__requester, headers, data, completed=True)\n+\n+ def get_repos(self, since=github.GithubObject.NotSet):\n+ \"\"\"\n+ :calls: `GET /repositories `_\n+ :param since: integer\n+ :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Repository.Repository`\n+ \"\"\"\n+ assert since is github.GithubObject.NotSet or isinstance(since, (int, long)), since\n+ url_parameters = dict()\n+ if since is not github.GithubObject.NotSet:\n+ url_parameters[\"since\"] = since\n+ return github.PaginatedList.PaginatedList(\n+ github.Repository.Repository,\n+ self.__requester,\n+ \"/repositories\",\n+ url_parameters\n )\n- return Repository.Repository(self.__requester, data, completed=True)\n \n def get_gist(self, id):\n \"\"\"\n@@ -204,11 +219,9 @@ def get_gist(self, id):\n assert isinstance(id, (str, unicode)), id\n headers, data = self.__requester.requestJsonAndCheck(\n \"GET\",\n- \"/gists/\" + id,\n- None,\n- None\n+ \"/gists/\" + id\n )\n- return github.Gist.Gist(self.__requester, data, completed=True)\n+ return github.Gist.Gist(self.__requester, headers, data, completed=True)\n \n def get_gists(self):\n \"\"\"\n@@ -266,11 +279,9 @@ def legacy_search_user_by_email(self, email):\n assert isinstance(email, (str, unicode)), email\n headers, data = self.__requester.requestJsonAndCheck(\n \"GET\",\n- \"/legacy/user/email/\" + email,\n- None,\n- None\n+ \"/legacy/user/email/\" + email\n )\n- return github.NamedUser.NamedUser(self.__requester, Legacy.convertUser(data[\"user\"]), completed=False)\n+ return github.NamedUser.NamedUser(self.__requester, headers, Legacy.convertUser(data[\"user\"]), completed=False)\n \n def render_markdown(self, text, context=github.GithubObject.NotSet):\n \"\"\"\n@@ -290,23 +301,20 @@ def render_markdown(self, text, context=github.GithubObject.NotSet):\n status, headers, data = self.__requester.requestJson(\n \"POST\",\n \"/markdown\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n return data\n \n def get_hooks(self):\n \"\"\"\n :calls: `GET /hooks `_\n- :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.HookDescription.HookDescription`\n+ :rtype: list of :class:`github.HookDescription.HookDescription`\n \"\"\"\n headers, data = self.__requester.requestJsonAndCheck(\n \"GET\",\n- \"/hooks\",\n- None,\n- None\n+ \"/hooks\"\n )\n- return [HookDescription.HookDescription(self.__requester, attributes, completed=True) for attributes in data]\n+ return [HookDescription.HookDescription(self.__requester, headers, attributes, completed=True) for attributes in data]\n \n def get_gitignore_templates(self):\n \"\"\"\n@@ -315,9 +323,7 @@ def get_gitignore_templates(self):\n \"\"\"\n headers, data = self.__requester.requestJsonAndCheck(\n \"GET\",\n- \"/gitignore/templates\",\n- None,\n- None\n+ \"/gitignore/templates\"\n )\n return data\n \n@@ -329,18 +335,81 @@ def get_gitignore_template(self, name):\n assert isinstance(name, (str, unicode)), name\n headers, attributes = self.__requester.requestJsonAndCheck(\n \"GET\",\n- \"/gitignore/templates/\" + name,\n- None,\n- None\n+ \"/gitignore/templates/\" + name\n )\n- return GitignoreTemplate.GitignoreTemplate(self.__requester, attributes, completed=True)\n+ return GitignoreTemplate.GitignoreTemplate(self.__requester, headers, attributes, completed=True)\n \n- def create_from_raw_data(self, klass, raw_data):\n+ def create_from_raw_data(self, klass, raw_data, headers={}):\n \"\"\"\n- Creates an object from raw_data previously obtained by :attr:`github.GithubObject.GithubObject.raw_data`\n+ Creates an object from raw_data previously obtained by :attr:`github.GithubObject.GithubObject.raw_data`,\n+ and optionaly headers previously obtained by :attr:`github.GithubObject.GithubObject.raw_headers`.\n \n :param klass: the class of the object to create\n :param raw_data: dict\n+ :param headers: dict\n :rtype: instance of class ``klass``\n \"\"\"\n- return klass(self.__requester, raw_data, completed=True)\n+ return klass(self.__requester, headers, raw_data, completed=True)\n+\n+ def dump(self, obj, file, protocol=0):\n+ \"\"\"\n+ Dumps (pickles) a PyGithub object to a file-like object.\n+ Some effort is made to not pickle sensitive informations like the Github credentials used in the :class:`Github` instance.\n+ But NO EFFORT is made to remove sensitive information from the object's attributes.\n+\n+ :param obj: the object to pickle\n+ :param file: the file-like object to pickle to\n+ :param protocol: the `pickling protocol `_\n+ \"\"\"\n+ pickle.dump((obj.__class__, obj.raw_data, obj.raw_headers), file, protocol)\n+\n+ def load(self, f):\n+ \"\"\"\n+ Loads (unpickles) a PyGithub object from a file-like object.\n+\n+ :param f: the file-like object to unpickle from\n+ :return: the unpickled object\n+ \"\"\"\n+ return self.create_from_raw_data(*pickle.load(f))\n+\n+ def get_api_status(self):\n+ \"\"\"\n+ This doesn't work with a Github Enterprise installation, because it always targets https://status.github.com.\n+\n+ :calls: `GET /api/status.json `_\n+ :rtype: :class:`github.Status.Status`\n+ \"\"\"\n+ headers, attributes = self.__requester.requestJsonAndCheck(\n+ \"GET\",\n+ \"/api/status.json\",\n+ cnx=\"status\"\n+ )\n+ return Status.Status(self.__requester, headers, attributes, completed=True)\n+\n+ def get_last_api_status_message(self):\n+ \"\"\"\n+ This doesn't work with a Github Enterprise installation, because it always targets https://status.github.com.\n+\n+ :calls: `GET /api/last-message.json `_\n+ :rtype: :class:`github.StatusMessage.StatusMessage`\n+ \"\"\"\n+ headers, attributes = self.__requester.requestJsonAndCheck(\n+ \"GET\",\n+ \"/api/last-message.json\",\n+ cnx=\"status\"\n+ )\n+ return StatusMessage.StatusMessage(self.__requester, headers, attributes, completed=True)\n+\n+ def get_api_status_messages(self):\n+ \"\"\"\n+ This doesn't work with a Github Enterprise installation, because it always targets https://status.github.com.\n+\n+ :calls: `GET /api/messages.json `_\n+ :rtype: list of :class:`github.StatusMessage.StatusMessage`\n+ \"\"\"\n+ headers, data = self.__requester.requestJsonAndCheck(\n+ \"GET\",\n+ \"/api/messages.json\",\n+ cnx=\"status\"\n+ )\n+ return [StatusMessage.StatusMessage(self.__requester, headers, attributes, completed=True) for attributes in data]"},{"sha":"c07ec38911b95b9baaccd7926cab22c549a9e5dd","filename":"github/Milestone.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Milestone.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Milestone.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Milestone.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -133,9 +134,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, title, state=github.GithubObject.NotSet, description=github.GithubObject.NotSet, due_on=github.GithubObject.NotSet):\n@@ -163,8 +162,7 @@ def edit(self, title, state=github.GithubObject.NotSet, description=github.Githu\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -206,7 +204,7 @@ def _useAttributes(self, attributes):\n self._created_at = self._parseDatetime(attributes[\"created_at\"])\n if \"creator\" in attributes: # pragma no branch\n assert attributes[\"creator\"] is None or isinstance(attributes[\"creator\"], dict), attributes[\"creator\"]\n- self._creator = None if attributes[\"creator\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"creator\"], completed=False)\n+ self._creator = None if attributes[\"creator\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"creator\"], completed=False)\n if \"description\" in attributes: # pragma no branch\n assert attributes[\"description\"] is None or isinstance(attributes[\"description\"], (str, unicode)), attributes[\"description\"]\n self._description = attributes[\"description\"]"},{"sha":"ec9bfbeddafff7bdf23258a08dc9f0ac8f4d964c","filename":"github/NamedUser.py","status":"modified","additions":19,"deletions":8,"changes":27,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/NamedUser.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/NamedUser.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/NamedUser.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -5,6 +5,7 @@\n # Copyright 2012 Steve English #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -268,10 +269,9 @@ def create_gist(self, public, files, description=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/gists\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Gist.Gist(self._requester, data, completed=True)\n+ return github.Gist.Gist(self._requester, headers, data, completed=True)\n \n def get_events(self):\n \"\"\"\n@@ -390,11 +390,9 @@ def get_repo(self, name):\n assert isinstance(name, (str, unicode)), name\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- \"/repos/\" + self.login + \"/\" + name,\n- None,\n- None\n+ \"/repos/\" + self.login + \"/\" + name\n )\n- return github.Repository.Repository(self._requester, data, completed=True)\n+ return github.Repository.Repository(self._requester, headers, data, completed=True)\n \n def get_repos(self, type=github.GithubObject.NotSet):\n \"\"\"\n@@ -449,6 +447,19 @@ def get_watched(self):\n None\n )\n \n+ def has_in_following(self, following):\n+ \"\"\"\n+ :calls: `GET /user/:user/following/:target_user `_\n+ :param following: :class:`github.NamedUser.NamedUser`\n+ :rtype: bool\n+ \"\"\"\n+ assert isinstance(following, github.NamedUser.NamedUser), following\n+ status, headers, data = self._requester.requestJson(\n+ \"GET\",\n+ self.url + \"/following/\" + following._identity\n+ )\n+ return status == 204\n+\n @property\n def _identity(self):\n return self.login\n@@ -541,7 +552,7 @@ def _useAttributes(self, attributes):\n self._owned_private_repos = attributes[\"owned_private_repos\"]\n if \"plan\" in attributes: # pragma no branch\n assert attributes[\"plan\"] is None or isinstance(attributes[\"plan\"], dict), attributes[\"plan\"]\n- self._plan = None if attributes[\"plan\"] is None else github.Plan.Plan(self._requester, attributes[\"plan\"], completed=False)\n+ self._plan = None if attributes[\"plan\"] is None else github.Plan.Plan(self._requester, self._headers, attributes[\"plan\"], completed=False)\n if \"private_gists\" in attributes: # pragma no branch\n assert attributes[\"private_gists\"] is None or isinstance(attributes[\"private_gists\"], (int, long)), attributes[\"private_gists\"]\n self._private_gists = attributes[\"private_gists\"]"},{"sha":"bb1c96b6780fb31573952d049166fd68ecb5a64a","filename":"github/Notification.py","status":"modified","additions":3,"deletions":2,"changes":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Notification.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Notification.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Notification.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -2,6 +2,7 @@\n \n ############################ Copyrights and license ############################\n # #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Peter Golm #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n@@ -104,10 +105,10 @@ def _useAttributes(self, attributes):\n self._id = attributes[\"id\"]\n if \"repository\" in attributes: # pragma no branch\n assert attributes[\"repository\"] is None or isinstance(attributes[\"repository\"], dict), attributes[\"repository\"]\n- self._repository = None if attributes[\"repository\"] is None else github.Repository.Repository(self._requester, attributes[\"repository\"], completed=False)\n+ self._repository = None if attributes[\"repository\"] is None else github.Repository.Repository(self._requester, self._headers, attributes[\"repository\"], completed=False)\n if \"subject\" in attributes: # pragma no branch\n assert attributes[\"subject\"] is None or isinstance(attributes[\"subject\"], dict), attributes[\"subject\"]\n- self._subject = None if attributes[\"subject\"] is None else github.NotificationSubject.NotificationSubject(self._requester, attributes[\"subject\"], completed=False)\n+ self._subject = None if attributes[\"subject\"] is None else github.NotificationSubject.NotificationSubject(self._requester, self._headers, attributes[\"subject\"], completed=False)\n if \"reason\" in attributes: # pragma no branch\n assert attributes[\"reason\"] is None or isinstance(attributes[\"reason\"], (str, unicode)), attributes[\"reason\"]\n self._reason = attributes[\"reason\"]"},{"sha":"7e1ce3adbf00f58e49724f0af978be5294a5b6f1","filename":"github/NotificationSubject.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/NotificationSubject.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/NotificationSubject.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/NotificationSubject.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -2,6 +2,7 @@\n \n ############################ Copyrights and license ############################\n # #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"68245f3e28173790bcae32b16120ab027b995188","filename":"github/Organization.py","status":"modified","additions":18,"deletions":35,"changes":53,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Organization.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Organization.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Organization.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -5,6 +5,7 @@\n # Copyright 2012 Steve English #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -243,9 +244,7 @@ def add_to_public_members(self, public_member):\n assert isinstance(public_member, github.NamedUser.NamedUser), public_member\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n- self.url + \"/public_members/\" + public_member._identity,\n- None,\n- None\n+ self.url + \"/public_members/\" + public_member._identity\n )\n \n def create_fork(self, repo):\n@@ -261,10 +260,9 @@ def create_fork(self, repo):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n \"/repos/\" + repo.owner.login + \"/\" + repo.name + \"/forks\",\n- url_parameters,\n- None\n+ parameters=url_parameters\n )\n- return github.Repository.Repository(self._requester, data, completed=True)\n+ return github.Repository.Repository(self._requester, headers, data, completed=True)\n \n def create_repo(self, name, description=github.GithubObject.NotSet, homepage=github.GithubObject.NotSet, private=github.GithubObject.NotSet, has_issues=github.GithubObject.NotSet, has_wiki=github.GithubObject.NotSet, has_downloads=github.GithubObject.NotSet, team_id=github.GithubObject.NotSet, auto_init=github.GithubObject.NotSet, gitignore_template=github.GithubObject.NotSet):\n \"\"\"\n@@ -315,10 +313,9 @@ def create_repo(self, name, description=github.GithubObject.NotSet, homepage=git\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/repos\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Repository.Repository(self._requester, data, completed=True)\n+ return github.Repository.Repository(self._requester, headers, data, completed=True)\n \n def create_team(self, name, repo_names=github.GithubObject.NotSet, permission=github.GithubObject.NotSet):\n \"\"\"\n@@ -341,10 +338,9 @@ def create_team(self, name, repo_names=github.GithubObject.NotSet, permission=gi\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/teams\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Team.Team(self._requester, data, completed=True)\n+ return github.Team.Team(self._requester, headers, data, completed=True)\n \n def edit(self, billing_email=github.GithubObject.NotSet, blog=github.GithubObject.NotSet, company=github.GithubObject.NotSet, email=github.GithubObject.NotSet, location=github.GithubObject.NotSet, name=github.GithubObject.NotSet):\n \"\"\"\n@@ -379,8 +375,7 @@ def edit(self, billing_email=github.GithubObject.NotSet, blog=github.GithubObjec\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -467,11 +462,9 @@ def get_repo(self, name):\n assert isinstance(name, (str, unicode)), name\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- \"/repos/\" + self.login + \"/\" + name,\n- None,\n- None\n+ \"/repos/\" + self.login + \"/\" + name\n )\n- return github.Repository.Repository(self._requester, data, completed=True)\n+ return github.Repository.Repository(self._requester, headers, data, completed=True)\n \n def get_repos(self, type=github.GithubObject.NotSet):\n \"\"\"\n@@ -499,11 +492,9 @@ def get_team(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- \"/teams/\" + str(id),\n- None,\n- None\n+ \"/teams/\" + str(id)\n )\n- return github.Team.Team(self._requester, data, completed=True)\n+ return github.Team.Team(self._requester, headers, data, completed=True)\n \n def get_teams(self):\n \"\"\"\n@@ -526,9 +517,7 @@ def has_in_members(self, member):\n assert isinstance(member, github.NamedUser.NamedUser), member\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- self.url + \"/members/\" + member._identity,\n- None,\n- None\n+ self.url + \"/members/\" + member._identity\n )\n return status == 204\n \n@@ -541,9 +530,7 @@ def has_in_public_members(self, public_member):\n assert isinstance(public_member, github.NamedUser.NamedUser), public_member\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- self.url + \"/public_members/\" + public_member._identity,\n- None,\n- None\n+ self.url + \"/public_members/\" + public_member._identity\n )\n return status == 204\n \n@@ -556,9 +543,7 @@ def remove_from_members(self, member):\n assert isinstance(member, github.NamedUser.NamedUser), member\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url + \"/members/\" + member._identity,\n- None,\n- None\n+ self.url + \"/members/\" + member._identity\n )\n \n def remove_from_public_members(self, public_member):\n@@ -570,9 +555,7 @@ def remove_from_public_members(self, public_member):\n assert isinstance(public_member, github.NamedUser.NamedUser), public_member\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url + \"/public_members/\" + public_member._identity,\n- None,\n- None\n+ self.url + \"/public_members/\" + public_member._identity\n )\n \n def _initAttributes(self):\n@@ -655,7 +638,7 @@ def _useAttributes(self, attributes):\n self._owned_private_repos = attributes[\"owned_private_repos\"]\n if \"plan\" in attributes: # pragma no branch\n assert attributes[\"plan\"] is None or isinstance(attributes[\"plan\"], dict), attributes[\"plan\"]\n- self._plan = None if attributes[\"plan\"] is None else github.Plan.Plan(self._requester, attributes[\"plan\"], completed=False)\n+ self._plan = None if attributes[\"plan\"] is None else github.Plan.Plan(self._requester, self._headers, attributes[\"plan\"], completed=False)\n if \"private_gists\" in attributes: # pragma no branch\n assert attributes[\"private_gists\"] is None or isinstance(attributes[\"private_gists\"], (int, long)), attributes[\"private_gists\"]\n self._private_gists = attributes[\"private_gists\"]"},{"sha":"4c22b991def262d6e5032a708ba610f65417f1b9","filename":"github/PaginatedList.py","status":"modified","additions":18,"deletions":5,"changes":23,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/PaginatedList.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/PaginatedList.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/PaginatedList.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Bill Mill #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 davidbrai #\n@@ -118,7 +119,11 @@ def __init__(self, contentClass, requester, firstUrl, firstParams):\n self._reversed = False\n \n def _getLastPageUrl(self):\n- headers, data = self.__requester.requestJsonAndCheck(\"GET\", self.__firstUrl, self.__nextParams, None)\n+ headers, data = self.__requester.requestJsonAndCheck(\n+ \"GET\",\n+ self.__firstUrl,\n+ parameters=self.__nextParams\n+ )\n links = self.__parseLinkHeader(headers)\n lastUrl = links.get(\"last\")\n return lastUrl\n@@ -139,7 +144,11 @@ def _couldGrow(self):\n return self.__nextUrl is not None\n \n def _fetchNextPage(self):\n- headers, data = self.__requester.requestJsonAndCheck(\"GET\", self.__nextUrl, self.__nextParams, None)\n+ headers, data = self.__requester.requestJsonAndCheck(\n+ \"GET\",\n+ self.__nextUrl,\n+ parameters=self.__nextParams\n+ )\n \n self.__nextUrl = None\n if len(data) > 0:\n@@ -152,7 +161,7 @@ def _fetchNextPage(self):\n self.__nextParams = None\n \n content = [\n- self.__contentClass(self.__requester, element, completed=False)\n+ self.__contentClass(self.__requester, headers, element, completed=False)\n for element in data\n ]\n if self._reversed:\n@@ -176,9 +185,13 @@ def get_page(self, page):\n params[\"page\"] = page + 1\n if self.__requester.per_page != 30:\n params[\"per_page\"] = self.__requester.per_page\n- headers, data = self.__requester.requestJsonAndCheck(\"GET\", self.__firstUrl, params, None)\n+ headers, data = self.__requester.requestJsonAndCheck(\n+ \"GET\",\n+ self.__firstUrl,\n+ parameters=params\n+ )\n \n return [\n- self.__contentClass(self.__requester, element, completed=False)\n+ self.__contentClass(self.__requester, headers, element, completed=False)\n for element in data\n ]"},{"sha":"3a3b420615062ee9e8a4fff31b65bd575c65d5a9","filename":"github/Permissions.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Permissions.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Permissions.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Permissions.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"99a3c3a6d9b4bef7b9bc78f0bd247a4083a2285e","filename":"github/Plan.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Plan.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Plan.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Plan.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #"},{"sha":"85867c60e0f888692b9410f45be43cb69528ca0b","filename":"github/PullRequest.py","status":"modified","additions":18,"deletions":27,"changes":45,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/PullRequest.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/PullRequest.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/PullRequest.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -5,6 +5,7 @@\n # Copyright 2012 Michael Stead #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -291,10 +292,9 @@ def create_review_comment(self, body, commit_id, path, position):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/comments\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.PullRequestComment.PullRequestComment(self._requester, data, completed=True)\n+ return github.PullRequestComment.PullRequestComment(self._requester, headers, data, completed=True)\n \n def create_issue_comment(self, body):\n \"\"\"\n@@ -309,10 +309,9 @@ def create_issue_comment(self, body):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self._parentUrl(self._parentUrl(self.url)) + \"/issues/\" + str(self.number) + \"/comments\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.IssueComment.IssueComment(self._requester, data, completed=True)\n+ return github.IssueComment.IssueComment(self._requester, headers, data, completed=True)\n \n def edit(self, title=github.GithubObject.NotSet, body=github.GithubObject.NotSet, state=github.GithubObject.NotSet):\n \"\"\"\n@@ -335,8 +334,7 @@ def edit(self, title=github.GithubObject.NotSet, body=github.GithubObject.NotSet\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -357,11 +355,9 @@ def get_review_comment(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self._parentUrl(self.url) + \"/comments/\" + str(id),\n- None,\n- None\n+ self._parentUrl(self.url) + \"/comments/\" + str(id)\n )\n- return github.PullRequestComment.PullRequestComment(self._requester, data, completed=True)\n+ return github.PullRequestComment.PullRequestComment(self._requester, headers, data, completed=True)\n \n def get_comments(self):\n \"\"\"\n@@ -415,11 +411,9 @@ def get_issue_comment(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self._parentUrl(self._parentUrl(self.url)) + \"/issues/comments/\" + str(id),\n- None,\n- None\n+ self._parentUrl(self._parentUrl(self.url)) + \"/issues/comments/\" + str(id)\n )\n- return github.IssueComment.IssueComment(self._requester, data, completed=True)\n+ return github.IssueComment.IssueComment(self._requester, headers, data, completed=True)\n \n def get_issue_comments(self):\n \"\"\"\n@@ -440,9 +434,7 @@ def is_merged(self):\n \"\"\"\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- self.url + \"/merge\",\n- None,\n- None\n+ self.url + \"/merge\"\n )\n return status == 204\n \n@@ -459,10 +451,9 @@ def merge(self, commit_message=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n self.url + \"/merge\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.PullRequestMergeStatus.PullRequestMergeStatus(self._requester, data, completed=True)\n+ return github.PullRequestMergeStatus.PullRequestMergeStatus(self._requester, headers, data, completed=True)\n \n def _initAttributes(self):\n self._additions = github.GithubObject.NotSet\n@@ -499,10 +490,10 @@ def _useAttributes(self, attributes):\n self._additions = attributes[\"additions\"]\n if \"assignee\" in attributes: # pragma no branch\n assert attributes[\"assignee\"] is None or isinstance(attributes[\"assignee\"], dict), attributes[\"assignee\"]\n- self._assignee = None if attributes[\"assignee\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"assignee\"], completed=False)\n+ self._assignee = None if attributes[\"assignee\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"assignee\"], completed=False)\n if \"base\" in attributes: # pragma no branch\n assert attributes[\"base\"] is None or isinstance(attributes[\"base\"], dict), attributes[\"base\"]\n- self._base = None if attributes[\"base\"] is None else github.PullRequestPart.PullRequestPart(self._requester, attributes[\"base\"], completed=False)\n+ self._base = None if attributes[\"base\"] is None else github.PullRequestPart.PullRequestPart(self._requester, self._headers, attributes[\"base\"], completed=False)\n if \"body\" in attributes: # pragma no branch\n assert attributes[\"body\"] is None or isinstance(attributes[\"body\"], (str, unicode)), attributes[\"body\"]\n self._body = attributes[\"body\"]\n@@ -529,7 +520,7 @@ def _useAttributes(self, attributes):\n self._diff_url = attributes[\"diff_url\"]\n if \"head\" in attributes: # pragma no branch\n assert attributes[\"head\"] is None or isinstance(attributes[\"head\"], dict), attributes[\"head\"]\n- self._head = None if attributes[\"head\"] is None else github.PullRequestPart.PullRequestPart(self._requester, attributes[\"head\"], completed=False)\n+ self._head = None if attributes[\"head\"] is None else github.PullRequestPart.PullRequestPart(self._requester, self._headers, attributes[\"head\"], completed=False)\n if \"html_url\" in attributes: # pragma no branch\n assert attributes[\"html_url\"] is None or isinstance(attributes[\"html_url\"], (str, unicode)), attributes[\"html_url\"]\n self._html_url = attributes[\"html_url\"]\n@@ -550,7 +541,7 @@ def _useAttributes(self, attributes):\n self._merged_at = self._parseDatetime(attributes[\"merged_at\"])\n if \"merged_by\" in attributes: # pragma no branch\n assert attributes[\"merged_by\"] is None or isinstance(attributes[\"merged_by\"], dict), attributes[\"merged_by\"]\n- self._merged_by = None if attributes[\"merged_by\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"merged_by\"], completed=False)\n+ self._merged_by = None if attributes[\"merged_by\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"merged_by\"], completed=False)\n if \"number\" in attributes: # pragma no branch\n assert attributes[\"number\"] is None or isinstance(attributes[\"number\"], (int, long)), attributes[\"number\"]\n self._number = attributes[\"number\"]\n@@ -574,4 +565,4 @@ def _useAttributes(self, attributes):\n self._url = attributes[\"url\"]\n if \"user\" in attributes: # pragma no branch\n assert attributes[\"user\"] is None or isinstance(attributes[\"user\"], dict), attributes[\"user\"]\n- self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"user\"], completed=False)\n+ self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"user\"], completed=False)"},{"sha":"1e96426e98b1f17f5ec26185257276cafabb376b","filename":"github/PullRequestComment.py","status":"modified","additions":4,"deletions":6,"changes":10,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/PullRequestComment.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/PullRequestComment.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/PullRequestComment.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Michael Stead #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n@@ -138,9 +139,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, body):\n@@ -156,8 +155,7 @@ def edit(self, body):\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -211,4 +209,4 @@ def _useAttributes(self, attributes):\n self._html_url = attributes[\"html_url\"]\n if \"user\" in attributes: # pragma no branch\n assert attributes[\"user\"] is None or isinstance(attributes[\"user\"], dict), attributes[\"user\"]\n- self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"user\"], completed=False)\n+ self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"user\"], completed=False)"},{"sha":"9c416dbd5a260662bca2f7d8d3725e87f822ae06","filename":"github/PullRequestMergeStatus.py","status":"modified","additions":1,"deletions":0,"changes":1,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/PullRequestMergeStatus.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/PullRequestMergeStatus.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/PullRequestMergeStatus.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #"},{"sha":"791452b028bd4d1a970b78581b849bb755be2efa","filename":"github/PullRequestPart.py","status":"modified","additions":3,"deletions":2,"changes":5,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/PullRequestPart.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/PullRequestPart.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/PullRequestPart.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -85,10 +86,10 @@ def _useAttributes(self, attributes):\n self._ref = attributes[\"ref\"]\n if \"repo\" in attributes: # pragma no branch\n assert attributes[\"repo\"] is None or isinstance(attributes[\"repo\"], dict), attributes[\"repo\"]\n- self._repo = None if attributes[\"repo\"] is None else github.Repository.Repository(self._requester, attributes[\"repo\"], completed=False)\n+ self._repo = None if attributes[\"repo\"] is None else github.Repository.Repository(self._requester, self._headers, attributes[\"repo\"], completed=False)\n if \"sha\" in attributes: # pragma no branch\n assert attributes[\"sha\"] is None or isinstance(attributes[\"sha\"], (str, unicode)), attributes[\"sha\"]\n self._sha = attributes[\"sha\"]\n if \"user\" in attributes: # pragma no branch\n assert attributes[\"user\"] is None or isinstance(attributes[\"user\"], dict), attributes[\"user\"]\n- self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"user\"], completed=False)\n+ self._user = None if attributes[\"user\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"user\"], completed=False)"},{"sha":"7eb3d235917b3a63e8d31caefae5cba981a25134","filename":"github/Repository.py","status":"modified","additions":85,"deletions":152,"changes":237,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Repository.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Repository.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Repository.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -7,6 +7,7 @@\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n # Copyright 2013 Adrian Petrescu #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Mark Roddy #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n@@ -316,9 +317,7 @@ def add_to_collaborators(self, collaborator):\n assert isinstance(collaborator, github.NamedUser.NamedUser), collaborator\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n- self.url + \"/collaborators/\" + collaborator._identity,\n- None,\n- None\n+ self.url + \"/collaborators/\" + collaborator._identity\n )\n \n def compare(self, base, head):\n@@ -332,11 +331,9 @@ def compare(self, base, head):\n assert isinstance(head, (str, unicode)), head\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/compare/\" + base + \"...\" + head,\n- None,\n- None\n+ self.url + \"/compare/\" + base + \"...\" + head\n )\n- return github.Comparison.Comparison(self._requester, data, completed=True)\n+ return github.Comparison.Comparison(self._requester, headers, data, completed=True)\n \n def create_download(self, name, size, description=github.GithubObject.NotSet, content_type=github.GithubObject.NotSet):\n \"\"\"\n@@ -362,10 +359,9 @@ def create_download(self, name, size, description=github.GithubObject.NotSet, co\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/downloads\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Download.Download(self._requester, data, completed=True)\n+ return github.Download.Download(self._requester, headers, data, completed=True)\n \n def create_git_blob(self, content, encoding):\n \"\"\"\n@@ -383,10 +379,9 @@ def create_git_blob(self, content, encoding):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/git/blobs\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.GitBlob.GitBlob(self._requester, data, completed=True)\n+ return github.GitBlob.GitBlob(self._requester, headers, data, completed=True)\n \n def create_git_commit(self, message, tree, parents, author=github.GithubObject.NotSet, committer=github.GithubObject.NotSet):\n \"\"\"\n@@ -415,10 +410,9 @@ def create_git_commit(self, message, tree, parents, author=github.GithubObject.N\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/git/commits\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.GitCommit.GitCommit(self._requester, data, completed=True)\n+ return github.GitCommit.GitCommit(self._requester, headers, data, completed=True)\n \n def create_git_ref(self, ref, sha):\n \"\"\"\n@@ -436,10 +430,9 @@ def create_git_ref(self, ref, sha):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/git/refs\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.GitRef.GitRef(self._requester, data, completed=True)\n+ return github.GitRef.GitRef(self._requester, headers, data, completed=True)\n \n def create_git_tag(self, tag, message, object, type, tagger=github.GithubObject.NotSet):\n \"\"\"\n@@ -467,10 +460,9 @@ def create_git_tag(self, tag, message, object, type, tagger=github.GithubObject.\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/git/tags\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.GitTag.GitTag(self._requester, data, completed=True)\n+ return github.GitTag.GitTag(self._requester, headers, data, completed=True)\n \n def create_git_tree(self, tree, base_tree=github.GithubObject.NotSet):\n \"\"\"\n@@ -489,10 +481,9 @@ def create_git_tree(self, tree, base_tree=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/git/trees\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.GitTree.GitTree(self._requester, data, completed=True)\n+ return github.GitTree.GitTree(self._requester, headers, data, completed=True)\n \n def create_hook(self, name, config, events=github.GithubObject.NotSet, active=github.GithubObject.NotSet):\n \"\"\"\n@@ -518,10 +509,9 @@ def create_hook(self, name, config, events=github.GithubObject.NotSet, active=gi\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/hooks\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Hook.Hook(self._requester, data, completed=True)\n+ return github.Hook.Hook(self._requester, headers, data, completed=True)\n \n def create_issue(self, title, body=github.GithubObject.NotSet, assignee=github.GithubObject.NotSet, milestone=github.GithubObject.NotSet, labels=github.GithubObject.NotSet):\n \"\"\"\n@@ -552,10 +542,9 @@ def create_issue(self, title, body=github.GithubObject.NotSet, assignee=github.G\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/issues\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Issue.Issue(self._requester, data, completed=True)\n+ return github.Issue.Issue(self._requester, headers, data, completed=True)\n \n def create_key(self, title, key):\n \"\"\"\n@@ -573,10 +562,9 @@ def create_key(self, title, key):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/keys\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.RepositoryKey.RepositoryKey(self._requester, data, completed=True, repoUrl=self._url)\n+ return github.RepositoryKey.RepositoryKey(self._requester, headers, data, completed=True, repoUrl=self._url)\n \n def create_label(self, name, color):\n \"\"\"\n@@ -594,10 +582,9 @@ def create_label(self, name, color):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/labels\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Label.Label(self._requester, data, completed=True)\n+ return github.Label.Label(self._requester, headers, data, completed=True)\n \n def create_milestone(self, title, state=github.GithubObject.NotSet, description=github.GithubObject.NotSet, due_on=github.GithubObject.NotSet):\n \"\"\"\n@@ -624,10 +611,9 @@ def create_milestone(self, title, state=github.GithubObject.NotSet, description=\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/milestones\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.Milestone.Milestone(self._requester, data, completed=True)\n+ return github.Milestone.Milestone(self._requester, headers, data, completed=True)\n \n def create_pull(self, *args, **kwds):\n \"\"\"\n@@ -662,10 +648,9 @@ def __create_pull(self, **kwds):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/pulls\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n- return github.PullRequest.PullRequest(self._requester, data, completed=True)\n+ return github.PullRequest.PullRequest(self._requester, headers, data, completed=True)\n \n def delete(self):\n \"\"\"\n@@ -674,9 +659,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, name, description=github.GithubObject.NotSet, homepage=github.GithubObject.NotSet, public=github.GithubObject.NotSet, has_issues=github.GithubObject.NotSet, has_wiki=github.GithubObject.NotSet, has_downloads=github.GithubObject.NotSet, default_branch=github.GithubObject.NotSet):\n@@ -720,8 +703,7 @@ def edit(self, name, description=github.GithubObject.NotSet, homepage=github.Git\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -739,9 +721,7 @@ def get_archive_link(self, archive_format, ref=github.GithubObject.NotSet):\n url += \"/\" + ref\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- url,\n- None,\n- None\n+ url\n )\n return headers[\"location\"]\n \n@@ -766,11 +746,9 @@ def get_branch(self, branch):\n assert isinstance(branch, (str, unicode)), branch\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/branches/\" + branch,\n- None,\n- None\n+ self.url + \"/branches/\" + branch\n )\n- return github.Branch.Branch(self._requester, data, completed=True)\n+ return github.Branch.Branch(self._requester, headers, data, completed=True)\n \n def get_branches(self):\n \"\"\"\n@@ -805,11 +783,9 @@ def get_comment(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/comments/\" + str(id),\n- None,\n- None\n+ self.url + \"/comments/\" + str(id)\n )\n- return github.CommitComment.CommitComment(self._requester, data, completed=True)\n+ return github.CommitComment.CommitComment(self._requester, headers, data, completed=True)\n \n def get_comments(self):\n \"\"\"\n@@ -832,11 +808,9 @@ def get_commit(self, sha):\n assert isinstance(sha, (str, unicode)), sha\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/commits/\" + sha,\n- None,\n- None\n+ self.url + \"/commits/\" + sha\n )\n- return github.Commit.Commit(self._requester, data, completed=True)\n+ return github.Commit.Commit(self._requester, headers, data, completed=True)\n \n def get_commits(self, sha=github.GithubObject.NotSet, path=github.GithubObject.NotSet, since=github.GithubObject.NotSet, until=github.GithubObject.NotSet):\n \"\"\"\n@@ -891,10 +865,9 @@ def get_file_contents(self, path, ref=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n self.url + \"/contents\" + path,\n- url_parameters,\n- None\n+ parameters=url_parameters\n )\n- return github.ContentFile.ContentFile(self._requester, data, completed=True)\n+ return github.ContentFile.ContentFile(self._requester, headers, data, completed=True)\n \n def get_dir_contents(self, path, ref=github.GithubObject.NotSet):\n \"\"\"\n@@ -911,8 +884,7 @@ def get_dir_contents(self, path, ref=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n self.url + \"/contents\" + path,\n- url_parameters,\n- None\n+ parameters=url_parameters\n )\n \n # Handle 302 redirect response\n@@ -920,12 +892,11 @@ def get_dir_contents(self, path, ref=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n headers['location'],\n- url_parameters,\n- None\n+ parameters=url_parameters\n )\n \n return [\n- github.ContentFile.ContentFile(self._requester, attributes, completed=(attributes[\"type\"] != \"file\")) # Lazy completion only makes sense for files. See discussion here: https://github.com/jacquev6/PyGithub/issues/140#issuecomment-13481130\n+ github.ContentFile.ContentFile(self._requester, headers, attributes, completed=(attributes[\"type\"] != \"file\")) # Lazy completion only makes sense for files. See discussion here: https://github.com/jacquev6/PyGithub/issues/140#issuecomment-13481130\n for attributes in data\n ]\n \n@@ -950,11 +921,9 @@ def get_download(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/downloads/\" + str(id),\n- None,\n- None\n+ self.url + \"/downloads/\" + str(id)\n )\n- return github.Download.Download(self._requester, data, completed=True)\n+ return github.Download.Download(self._requester, headers, data, completed=True)\n \n def get_downloads(self):\n \"\"\"\n@@ -1001,11 +970,9 @@ def get_git_blob(self, sha):\n assert isinstance(sha, (str, unicode)), sha\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/git/blobs/\" + sha,\n- None,\n- None\n+ self.url + \"/git/blobs/\" + sha\n )\n- return github.GitBlob.GitBlob(self._requester, data, completed=True)\n+ return github.GitBlob.GitBlob(self._requester, headers, data, completed=True)\n \n def get_git_commit(self, sha):\n \"\"\"\n@@ -1016,11 +983,9 @@ def get_git_commit(self, sha):\n assert isinstance(sha, (str, unicode)), sha\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/git/commits/\" + sha,\n- None,\n- None\n+ self.url + \"/git/commits/\" + sha\n )\n- return github.GitCommit.GitCommit(self._requester, data, completed=True)\n+ return github.GitCommit.GitCommit(self._requester, headers, data, completed=True)\n \n def get_git_ref(self, ref):\n \"\"\"\n@@ -1034,11 +999,9 @@ def get_git_ref(self, ref):\n assert isinstance(ref, (str, unicode)), ref\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + prefix + ref,\n- None,\n- None\n+ self.url + prefix + ref\n )\n- return github.GitRef.GitRef(self._requester, data, completed=True)\n+ return github.GitRef.GitRef(self._requester, headers, data, completed=True)\n \n def get_git_refs(self):\n \"\"\"\n@@ -1061,11 +1024,9 @@ def get_git_tag(self, sha):\n assert isinstance(sha, (str, unicode)), sha\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/git/tags/\" + sha,\n- None,\n- None\n+ self.url + \"/git/tags/\" + sha\n )\n- return github.GitTag.GitTag(self._requester, data, completed=True)\n+ return github.GitTag.GitTag(self._requester, headers, data, completed=True)\n \n def get_git_tree(self, sha, recursive=github.GithubObject.NotSet):\n \"\"\"\n@@ -1082,10 +1043,9 @@ def get_git_tree(self, sha, recursive=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n self.url + \"/git/trees/\" + sha,\n- url_parameters,\n- None\n+ parameters=url_parameters\n )\n- return github.GitTree.GitTree(self._requester, data, completed=True)\n+ return github.GitTree.GitTree(self._requester, headers, data, completed=True)\n \n def get_hook(self, id):\n \"\"\"\n@@ -1096,11 +1056,9 @@ def get_hook(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/hooks/\" + str(id),\n- None,\n- None\n+ self.url + \"/hooks/\" + str(id)\n )\n- return github.Hook.Hook(self._requester, data, completed=True)\n+ return github.Hook.Hook(self._requester, headers, data, completed=True)\n \n def get_hooks(self):\n \"\"\"\n@@ -1123,11 +1081,9 @@ def get_issue(self, number):\n assert isinstance(number, (int, long)), number\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/issues/\" + str(number),\n- None,\n- None\n+ self.url + \"/issues/\" + str(number)\n )\n- return github.Issue.Issue(self._requester, data, completed=True)\n+ return github.Issue.Issue(self._requester, headers, data, completed=True)\n \n def get_issues(self, milestone=github.GithubObject.NotSet, state=github.GithubObject.NotSet, assignee=github.GithubObject.NotSet, mentioned=github.GithubObject.NotSet, labels=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet, since=github.GithubObject.NotSet):\n \"\"\"\n@@ -1214,11 +1170,9 @@ def get_issues_event(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/issues/events/\" + str(id),\n- None,\n- None\n+ self.url + \"/issues/events/\" + str(id)\n )\n- return github.IssueEvent.IssueEvent(self._requester, data, completed=True)\n+ return github.IssueEvent.IssueEvent(self._requester, headers, data, completed=True)\n \n def get_issues_events(self):\n \"\"\"\n@@ -1241,11 +1195,9 @@ def get_key(self, id):\n assert isinstance(id, (int, long)), id\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/keys/\" + str(id),\n- None,\n- None\n+ self.url + \"/keys/\" + str(id)\n )\n- return github.RepositoryKey.RepositoryKey(self._requester, data, completed=True, repoUrl=self._url)\n+ return github.RepositoryKey.RepositoryKey(self._requester, headers, data, completed=True, repoUrl=self._url)\n \n def get_keys(self):\n \"\"\"\n@@ -1253,7 +1205,7 @@ def get_keys(self):\n :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.RepositoryKey.RepositoryKey`\n \"\"\"\n return github.PaginatedList.PaginatedList(\n- lambda requester, data, completed: github.RepositoryKey.RepositoryKey(requester, data, completed, repoUrl=self._url),\n+ lambda requester, headers, data, completed: github.RepositoryKey.RepositoryKey(requester, headers, data, completed, repoUrl=self._url),\n self._requester,\n self.url + \"/keys\",\n None\n@@ -1268,11 +1220,9 @@ def get_label(self, name):\n assert isinstance(name, (str, unicode)), name\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/labels/\" + urllib.quote(name),\n- None,\n- None\n+ self.url + \"/labels/\" + urllib.quote(name)\n )\n- return github.Label.Label(self._requester, data, completed=True)\n+ return github.Label.Label(self._requester, headers, data, completed=True)\n \n def get_labels(self):\n \"\"\"\n@@ -1293,9 +1243,7 @@ def get_languages(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/languages\",\n- None,\n- None\n+ self.url + \"/languages\"\n )\n return data\n \n@@ -1308,11 +1256,9 @@ def get_milestone(self, number):\n assert isinstance(number, (int, long)), number\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/milestones/\" + str(number),\n- None,\n- None\n+ self.url + \"/milestones/\" + str(number)\n )\n- return github.Milestone.Milestone(self._requester, data, completed=True)\n+ return github.Milestone.Milestone(self._requester, headers, data, completed=True)\n \n def get_milestones(self, state=github.GithubObject.NotSet, sort=github.GithubObject.NotSet, direction=github.GithubObject.NotSet):\n \"\"\"\n@@ -1360,11 +1306,9 @@ def get_pull(self, number):\n assert isinstance(number, (int, long)), number\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- self.url + \"/pulls/\" + str(number),\n- None,\n- None\n+ self.url + \"/pulls/\" + str(number)\n )\n- return github.PullRequest.PullRequest(self._requester, data, completed=True)\n+ return github.PullRequest.PullRequest(self._requester, headers, data, completed=True)\n \n def get_pulls(self, state=github.GithubObject.NotSet):\n \"\"\"\n@@ -1431,10 +1375,9 @@ def get_readme(self, ref=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n self.url + \"/readme\",\n- url_parameters,\n- None\n+ parameters=url_parameters\n )\n- return github.ContentFile.ContentFile(self._requester, data, completed=True)\n+ return github.ContentFile.ContentFile(self._requester, headers, data, completed=True)\n \n def get_stargazers(self):\n \"\"\"\n@@ -1505,9 +1448,7 @@ def has_in_assignees(self, assignee):\n assert isinstance(assignee, github.NamedUser.NamedUser), assignee\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- self.url + \"/assignees/\" + assignee._identity,\n- None,\n- None\n+ self.url + \"/assignees/\" + assignee._identity\n )\n return status == 204\n \n@@ -1520,9 +1461,7 @@ def has_in_collaborators(self, collaborator):\n assert isinstance(collaborator, github.NamedUser.NamedUser), collaborator\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- self.url + \"/collaborators/\" + collaborator._identity,\n- None,\n- None\n+ self.url + \"/collaborators/\" + collaborator._identity\n )\n return status == 204\n \n@@ -1537,12 +1476,10 @@ def legacy_search_issues(self, state, keyword):\n assert isinstance(keyword, (str, unicode)), keyword\n headers, data = self._requester.requestJsonAndCheck(\n \"GET\",\n- \"/legacy/issues/search/\" + self.owner.login + \"/\" + self.name + \"/\" + state + \"/\" + urllib.quote(keyword),\n- None,\n- None\n+ \"/legacy/issues/search/\" + self.owner.login + \"/\" + self.name + \"/\" + state + \"/\" + urllib.quote(keyword)\n )\n return [\n- github.Issue.Issue(self._requester, github.Legacy.convertIssue(element), completed=False)\n+ github.Issue.Issue(self._requester, headers, github.Legacy.convertIssue(element), completed=False)\n for element in data[\"issues\"]\n ]\n \n@@ -1566,13 +1503,12 @@ def merge(self, base, head, commit_message=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"POST\",\n self.url + \"/merges\",\n- None,\n- post_parameters\n+ input=post_parameters\n )\n if data is None:\n return None\n else:\n- return github.Commit.Commit(self._requester, data, completed=True)\n+ return github.Commit.Commit(self._requester, headers, data, completed=True)\n \n def remove_from_collaborators(self, collaborator):\n \"\"\"\n@@ -1583,9 +1519,7 @@ def remove_from_collaborators(self, collaborator):\n assert isinstance(collaborator, github.NamedUser.NamedUser), collaborator\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url + \"/collaborators/\" + collaborator._identity,\n- None,\n- None\n+ self.url + \"/collaborators/\" + collaborator._identity\n )\n \n def subscribe_to_hub(self, event, callback, secret=github.GithubObject.NotSet):\n@@ -1625,8 +1559,7 @@ def _hub(self, mode, event, callback, secret):\n responseHeaders, output = self._requester.requestMultipartAndCheck(\n \"POST\",\n \"/hub\",\n- None,\n- post_parameters,\n+ input=post_parameters\n )\n \n @property\n@@ -1719,16 +1652,16 @@ def _useAttributes(self, attributes):\n self._open_issues = attributes[\"open_issues\"]\n if \"organization\" in attributes: # pragma no branch\n assert attributes[\"organization\"] is None or isinstance(attributes[\"organization\"], dict), attributes[\"organization\"]\n- self._organization = None if attributes[\"organization\"] is None else github.Organization.Organization(self._requester, attributes[\"organization\"], completed=False)\n+ self._organization = None if attributes[\"organization\"] is None else github.Organization.Organization(self._requester, self._headers, attributes[\"organization\"], completed=False)\n if \"owner\" in attributes: # pragma no branch\n assert attributes[\"owner\"] is None or isinstance(attributes[\"owner\"], dict), attributes[\"owner\"]\n- self._owner = None if attributes[\"owner\"] is None else github.NamedUser.NamedUser(self._requester, attributes[\"owner\"], completed=False)\n+ self._owner = None if attributes[\"owner\"] is None else github.NamedUser.NamedUser(self._requester, self._headers, attributes[\"owner\"], completed=False)\n if \"parent\" in attributes: # pragma no branch\n assert attributes[\"parent\"] is None or isinstance(attributes[\"parent\"], dict), attributes[\"parent\"]\n- self._parent = None if attributes[\"parent\"] is None else Repository(self._requester, attributes[\"parent\"], completed=False)\n+ self._parent = None if attributes[\"parent\"] is None else Repository(self._requester, self._headers, attributes[\"parent\"], completed=False)\n if \"permissions\" in attributes: # pragma no branch\n assert attributes[\"permissions\"] is None or isinstance(attributes[\"permissions\"], dict), attributes[\"permissions\"]\n- self._permissions = None if attributes[\"permissions\"] is None else github.Permissions.Permissions(self._requester, attributes[\"permissions\"], completed=False)\n+ self._permissions = None if attributes[\"permissions\"] is None else github.Permissions.Permissions(self._requester, self._headers, attributes[\"permissions\"], completed=False)\n if \"private\" in attributes: # pragma no branch\n assert attributes[\"private\"] is None or isinstance(attributes[\"private\"], bool), attributes[\"private\"]\n self._private = attributes[\"private\"]\n@@ -1740,7 +1673,7 @@ def _useAttributes(self, attributes):\n self._size = attributes[\"size\"]\n if \"source\" in attributes: # pragma no branch\n assert attributes[\"source\"] is None or isinstance(attributes[\"source\"], dict), attributes[\"source\"]\n- self._source = None if attributes[\"source\"] is None else Repository(self._requester, attributes[\"source\"], completed=False)\n+ self._source = None if attributes[\"source\"] is None else Repository(self._requester, self._headers, attributes[\"source\"], completed=False)\n if \"ssh_url\" in attributes: # pragma no branch\n assert attributes[\"ssh_url\"] is None or isinstance(attributes[\"ssh_url\"], (str, unicode)), attributes[\"ssh_url\"]\n self._ssh_url = attributes[\"ssh_url\"]"},{"sha":"69e1c6162f2f414f9679101b3fb29de677f7e72f","filename":"github/RepositoryKey.py","status":"modified","additions":5,"deletions":7,"changes":12,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/RepositoryKey.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/RepositoryKey.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/RepositoryKey.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Srijan Choudhary #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n@@ -33,8 +34,8 @@ class RepositoryKey(github.GithubObject.CompletableGithubObject):\n This class represents RepositoryKeys. The reference can be found here http://developer.github.com/v3/repos/keys/\n \"\"\"\n \n- def __init__(self, requester, attributes, completed, repoUrl):\n- github.GithubObject.CompletableGithubObject.__init__(self, requester, attributes, completed)\n+ def __init__(self, requester, headers, attributes, completed, repoUrl):\n+ github.GithubObject.CompletableGithubObject.__init__(self, requester, headers, attributes, completed)\n self.__repoUrl = repoUrl\n \n @property\n@@ -88,9 +89,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.__customUrl,\n- None,\n- None\n+ self.__customUrl\n )\n \n def edit(self, title=github.GithubObject.NotSet, key=github.GithubObject.NotSet):\n@@ -110,8 +109,7 @@ def edit(self, title=github.GithubObject.NotSet, key=github.GithubObject.NotSet)\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.__customUrl,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n "},{"sha":"836b776e42a3080cffc8d5f1e6959fa6414a518c","filename":"github/Requester.py","status":"modified","additions":88,"deletions":18,"changes":106,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Requester.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Requester.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Requester.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -9,6 +9,7 @@\n # Copyright 2012 Steve English #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Ed Jackson #\n # Copyright 2013 Jonathan J Hunt #\n # Copyright 2013 Mark Roddy #\n@@ -37,6 +38,7 @@\n import urllib\n import urlparse\n import sys\n+import Consts\n \n atLeastPython26 = sys.hexversion >= 0x02060000\n atLeastPython3 = sys.hexversion >= 0x03000000\n@@ -63,7 +65,66 @@ def resetConnectionClasses(cls):\n cls.__httpConnectionClass = httplib.HTTPConnection\n cls.__httpsConnectionClass = httplib.HTTPSConnection\n \n+ #############################################################\n+ # For Debug\n+ @classmethod\n+ def setDebugFlag(cls, flag):\n+ cls.DEBUG_FLAG = flag\n+\n+ @classmethod\n+ def setOnCheckMe(cls, onCheckMe):\n+ cls.ON_CHECK_ME = onCheckMe\n+\n+ DEBUG_FLAG = False\n+\n+ DEBUG_FRAME_BUFFER_SIZE = 1024\n+\n+ DEBUG_HEADER_KEY = \"DEBUG_FRAME\"\n+\n+ ON_CHECK_ME = None\n+\n+ def NEW_DEBUG_FRAME(self, requestHeader):\n+ '''\n+ Initialize a debug frame with requestHeader\n+ Frame count is updated and will be attached to respond header\n+ The structure of a frame: [requestHeader, statusCode, responseHeader, raw_data]\n+ Some of them may be None\n+ '''\n+ if self.DEBUG_FLAG: # pragma no branch (Flag always set in tests)\n+ new_frame = [requestHeader, None, None, None]\n+ if self._frameCount < self.DEBUG_FRAME_BUFFER_SIZE - 1: # pragma no branch (Should be covered)\n+ self._frameBuffer.append(new_frame)\n+ else:\n+ self._frameBuffer[0] = new_frame # pragma no cover (Should be covered)\n+\n+ self._frameCount = len(self._frameBuffer) - 1\n+\n+ def DEBUG_ON_RESPONSE(self, statusCode, responseHeader, data):\n+ '''\n+ Update current frame with response\n+ Current frame index will be attached to responseHeader\n+ '''\n+ if self.DEBUG_FLAG: # pragma no branch (Flag always set in tests)\n+ self._frameBuffer[self._frameCount][1:4] = [statusCode, responseHeader, data]\n+ responseHeader[self.DEBUG_HEADER_KEY] = self._frameCount\n+\n+ def check_me(self, obj):\n+ if self.DEBUG_FLAG and self.ON_CHECK_ME is not None: # pragma no branch (Flag always set in tests)\n+ frame = None\n+ if self.DEBUG_HEADER_KEY in obj._headers:\n+ frame_index = obj._headers[self.DEBUG_HEADER_KEY]\n+ frame = self._frameBuffer[frame_index]\n+ self.ON_CHECK_ME(obj, frame)\n+\n+ def _initializeDebugFeature(self):\n+ self._frameCount = 0\n+ self._frameBuffer = []\n+\n+ #############################################################\n+\n def __init__(self, login_or_token, password, base_url, timeout, client_id, client_secret, user_agent, per_page):\n+ self._initializeDebugFeature()\n+\n if password is not None:\n login = login_or_token\n if atLeastPython3:\n@@ -103,11 +164,11 @@ def __init__(self, login_or_token, password, base_url, timeout, client_id, clien\n 'See http://developer.github.com/v3/#user-agent-required'\n self.__userAgent = user_agent\n \n- def requestJsonAndCheck(self, verb, url, parameters, input):\n- return self.__check(*self.requestJson(verb, url, parameters, input))\n+ def requestJsonAndCheck(self, verb, url, parameters=None, headers=None, input=None, cnx=None):\n+ return self.__check(*self.requestJson(verb, url, parameters, headers, input, cnx))\n \n- def requestMultipartAndCheck(self, verb, url, parameters, input):\n- return self.__check(*self.requestMultipart(verb, url, parameters, input))\n+ def requestMultipartAndCheck(self, verb, url, parameters=None, headers=None, input=None):\n+ return self.__check(*self.requestMultipart(verb, url, parameters, headers, input))\n \n def __check(self, status, responseHeaders, output):\n output = self.__structuredFromJson(output)\n@@ -116,13 +177,13 @@ def __check(self, status, responseHeaders, output):\n return responseHeaders, output\n \n def __createException(self, status, output):\n- if status == 401 and output[\"message\"] == \"Bad credentials\":\n+ if status == 401 and output.get(\"message\") == \"Bad credentials\":\n cls = GithubException.BadCredentialsException\n- elif status == 403 and output[\"message\"].startswith(\"Missing or invalid User Agent string\"):\n+ elif status == 403 and output.get(\"message\").startswith(\"Missing or invalid User Agent string\"):\n cls = GithubException.BadUserAgentException\n- elif status == 403 and output[\"message\"].startswith(\"API Rate Limit Exceeded\"):\n+ elif status == 403 and output.get(\"message\").startswith(\"API Rate Limit Exceeded\"):\n cls = GithubException.RateLimitExceededException\n- elif status == 404 and output[\"message\"] == \"Not Found\":\n+ elif status == 404 and output.get(\"message\") == \"Not Found\":\n cls = GithubException.UnknownObjectException\n else:\n cls = GithubException.GithubException\n@@ -139,13 +200,13 @@ def __structuredFromJson(self, data):\n except ValueError, e:\n return {'data': data}\n \n- def requestJson(self, verb, url, parameters, input):\n+ def requestJson(self, verb, url, parameters=None, headers=None, input=None, cnx=None):\n def encode(input):\n return \"application/json\", json.dumps(input)\n \n- return self.__requestEncode(verb, url, parameters, input, encode)\n+ return self.__requestEncode(cnx, verb, url, parameters, headers, input, encode)\n \n- def requestMultipart(self, verb, url, parameters, input):\n+ def requestMultipart(self, verb, url, parameters=None, headers=None, input=None):\n def encode(input):\n boundary = \"----------------------------3c3ba8b523b2\"\n eol = \"\\r\\n\"\n@@ -159,14 +220,15 @@ def encode(input):\n encoded_input += \"--\" + boundary + \"--\" + eol\n return \"multipart/form-data; boundary=\" + boundary, encoded_input\n \n- return self.__requestEncode(verb, url, parameters, input, encode)\n+ return self.__requestEncode(None, verb, url, parameters, headers, input, encode)\n \n- def __requestEncode(self, verb, url, parameters, input, encode):\n+ def __requestEncode(self, cnx, verb, url, parameters, requestHeaders, input, encode):\n assert verb in [\"HEAD\", \"GET\", \"POST\", \"PATCH\", \"PUT\", \"DELETE\"]\n if parameters is None:\n parameters = dict()\n+ if requestHeaders is None:\n+ requestHeaders = dict()\n \n- requestHeaders = dict()\n self.__authenticate(url, requestHeaders, parameters)\n requestHeaders[\"User-Agent\"] = self.__userAgent\n \n@@ -177,7 +239,9 @@ def __requestEncode(self, verb, url, parameters, input, encode):\n if input is not None:\n requestHeaders[\"Content-Type\"], encoded_input = encode(input)\n \n- status, responseHeaders, output = self.__requestRaw(verb, url, requestHeaders, encoded_input)\n+ self.NEW_DEBUG_FRAME(requestHeaders)\n+\n+ status, responseHeaders, output = self.__requestRaw(cnx, verb, url, requestHeaders, encoded_input)\n \n if \"x-ratelimit-remaining\" in responseHeaders and \"x-ratelimit-limit\" in responseHeaders:\n self.rate_limiting = (int(responseHeaders[\"x-ratelimit-remaining\"]), int(responseHeaders[\"x-ratelimit-limit\"]))\n@@ -187,10 +251,16 @@ def __requestEncode(self, verb, url, parameters, input, encode):\n if \"x-oauth-scopes\" in responseHeaders:\n self.oauth_scopes = responseHeaders[\"x-oauth-scopes\"].split(\", \")\n \n+ self.DEBUG_ON_RESPONSE(status, responseHeaders, output)\n+\n return status, responseHeaders, output\n \n- def __requestRaw(self, verb, url, requestHeaders, input):\n- cnx = self.__createConnection()\n+ def __requestRaw(self, cnx, verb, url, requestHeaders, input):\n+ if cnx is None:\n+ cnx = self.__createConnection()\n+ else:\n+ assert cnx == \"status\"\n+ cnx = self.__httpsConnectionClass(\"status.github.com\", 443)\n cnx.request(\n verb,\n url,\n@@ -244,7 +314,7 @@ def __createConnection(self):\n kwds[\"strict\"] = True # Useless in Python3, would generate a deprecation warning\n if atLeastPython26: # pragma no branch (Branch useful only with Python 2.5)\n kwds[\"timeout\"] = self.__timeout # Did not exist before Python2.6\n- return self.__connectionClass(host=self.__hostname, port=self.__port, **kwds)\n+ return self.__connectionClass(self.__hostname, self.__port, **kwds)\n \n def __log(self, verb, url, requestHeaders, input, status, responseHeaders, output):\n logger = logging.getLogger(__name__)"},{"sha":"6c117241297b8cc312ef45fa6240453e35ca36ed","filename":"github/Status.py","status":"added","additions":56,"deletions":0,"changes":56,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Status.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Status.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Status.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,56 @@\n+# -*- coding: utf-8 -*-\n+\n+############################ Copyrights and license ############################\n+# #\n+# Copyright 2013 Vincent Jacques #\n+# #\n+# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n+# #\n+# PyGithub is free software: you can redistribute it and/or modify it under #\n+# the terms of the GNU Lesser General Public License as published by the Free #\n+# Software Foundation, either version 3 of the License, or (at your option) #\n+# any later version. #\n+# #\n+# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #\n+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #\n+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n+# details. #\n+# #\n+# You should have received a copy of the GNU Lesser General Public License #\n+# along with PyGithub. If not, see . #\n+# #\n+################################################################################\n+\n+import github.GithubObject\n+\n+\n+class Status(github.GithubObject.NonCompletableGithubObject):\n+ \"\"\"\n+ This class represents status as defined in https://status.github.com/api\n+ \"\"\"\n+\n+ @property\n+ def status(self):\n+ \"\"\"\n+ :type: string\n+ \"\"\"\n+ return self._NoneIfNotSet(self._status)\n+\n+ @property\n+ def last_updated(self):\n+ \"\"\"\n+ :type: datetime.datetime\n+ \"\"\"\n+ return self._NoneIfNotSet(self._last_updated)\n+\n+ def _initAttributes(self):\n+ self._status = github.GithubObject.NotSet\n+ self._last_updated = github.GithubObject.NotSet\n+\n+ def _useAttributes(self, attributes):\n+ if \"status\" in attributes: # pragma no branch\n+ assert attributes[\"status\"] is None or isinstance(attributes[\"status\"], (str, unicode)), attributes[\"status\"]\n+ self._status = attributes[\"status\"]\n+ if \"last_updated\" in attributes: # pragma no branch\n+ assert attributes[\"last_updated\"] is None or isinstance(attributes[\"last_updated\"], (str, unicode)), attributes[\"last_updated\"]\n+ self._last_updated = self._parseDatetime(attributes[\"last_updated\"])"},{"sha":"266e1b05cc4f1b1298b6f56eae34e58ad9be871e","filename":"github/StatusMessage.py","status":"added","additions":66,"deletions":0,"changes":66,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/StatusMessage.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/StatusMessage.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/StatusMessage.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,66 @@\n+# -*- coding: utf-8 -*-\n+\n+############################ Copyrights and license ############################\n+# #\n+# Copyright 2013 Vincent Jacques #\n+# #\n+# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n+# #\n+# PyGithub is free software: you can redistribute it and/or modify it under #\n+# the terms of the GNU Lesser General Public License as published by the Free #\n+# Software Foundation, either version 3 of the License, or (at your option) #\n+# any later version. #\n+# #\n+# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #\n+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #\n+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n+# details. #\n+# #\n+# You should have received a copy of the GNU Lesser General Public License #\n+# along with PyGithub. If not, see . #\n+# #\n+################################################################################\n+\n+import github.GithubObject\n+\n+\n+class StatusMessage(github.GithubObject.NonCompletableGithubObject):\n+ \"\"\"\n+ This class represents status messages as defined in https://status.github.com/api\n+ \"\"\"\n+\n+ @property\n+ def body(self):\n+ \"\"\"\n+ :type: string\n+ \"\"\"\n+ return self._NoneIfNotSet(self._body)\n+\n+ @property\n+ def status(self):\n+ \"\"\"\n+ :type: string\n+ \"\"\"\n+ return self._NoneIfNotSet(self._status)\n+\n+ @property\n+ def created_on(self):\n+ \"\"\"\n+ :type: datetime.datetime\n+ \"\"\"\n+ return self._NoneIfNotSet(self._created_on)\n+\n+ def _initAttributes(self):\n+ self._status = github.GithubObject.NotSet\n+ self._created_on = github.GithubObject.NotSet\n+\n+ def _useAttributes(self, attributes):\n+ if \"body\" in attributes: # pragma no branch\n+ assert attributes[\"body\"] is None or isinstance(attributes[\"body\"], (str, unicode)), attributes[\"body\"]\n+ self._body = attributes[\"body\"]\n+ if \"status\" in attributes: # pragma no branch\n+ assert attributes[\"status\"] is None or isinstance(attributes[\"status\"], (str, unicode)), attributes[\"status\"]\n+ self._status = attributes[\"status\"]\n+ if \"created_on\" in attributes: # pragma no branch\n+ assert attributes[\"created_on\"] is None or isinstance(attributes[\"created_on\"], (str, unicode)), attributes[\"created_on\"]\n+ self._created_on = self._parseDatetime(attributes[\"created_on\"])"},{"sha":"890c1a02366be9fd71e36b90084c7dbd624eb2c0","filename":"github/Tag.py","status":"modified","additions":2,"deletions":1,"changes":3,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Tag.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Tag.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Tag.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -71,7 +72,7 @@ def _initAttributes(self):\n def _useAttributes(self, attributes):\n if \"commit\" in attributes: # pragma no branch\n assert attributes[\"commit\"] is None or isinstance(attributes[\"commit\"], dict), attributes[\"commit\"]\n- self._commit = None if attributes[\"commit\"] is None else github.Commit.Commit(self._requester, attributes[\"commit\"], completed=False)\n+ self._commit = None if attributes[\"commit\"] is None else github.Commit.Commit(self._requester, self._headers, attributes[\"commit\"], completed=False)\n if \"name\" in attributes: # pragma no branch\n assert attributes[\"name\"] is None or isinstance(attributes[\"name\"], (str, unicode)), attributes[\"name\"]\n self._name = attributes[\"name\"]"},{"sha":"9b687d8027104bcccf49f6b23d129b94cd963eec","filename":"github/Team.py","status":"modified","additions":9,"deletions":23,"changes":32,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/Team.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/Team.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/Team.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -93,9 +94,7 @@ def add_to_members(self, member):\n assert isinstance(member, github.NamedUser.NamedUser), member\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n- self.url + \"/members/\" + member._identity,\n- None,\n- None\n+ self.url + \"/members/\" + member._identity\n )\n \n def add_to_repos(self, repo):\n@@ -107,9 +106,7 @@ def add_to_repos(self, repo):\n assert isinstance(repo, github.Repository.Repository), repo\n headers, data = self._requester.requestJsonAndCheck(\n \"PUT\",\n- self.url + \"/repos/\" + repo._identity,\n- None,\n- None\n+ self.url + \"/repos/\" + repo._identity\n )\n \n def delete(self):\n@@ -119,9 +116,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, name, permission=github.GithubObject.NotSet):\n@@ -141,8 +136,7 @@ def edit(self, name, permission=github.GithubObject.NotSet):\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n \n@@ -179,9 +173,7 @@ def has_in_members(self, member):\n assert isinstance(member, github.NamedUser.NamedUser), member\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- self.url + \"/members/\" + member._identity,\n- None,\n- None\n+ self.url + \"/members/\" + member._identity\n )\n return status == 204\n \n@@ -194,9 +186,7 @@ def has_in_repos(self, repo):\n assert isinstance(repo, github.Repository.Repository), repo\n status, headers, data = self._requester.requestJson(\n \"GET\",\n- self.url + \"/repos/\" + repo._identity,\n- None,\n- None\n+ self.url + \"/repos/\" + repo._identity\n )\n return status == 204\n \n@@ -209,9 +199,7 @@ def remove_from_members(self, member):\n assert isinstance(member, github.NamedUser.NamedUser), member\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url + \"/members/\" + member._identity,\n- None,\n- None\n+ self.url + \"/members/\" + member._identity\n )\n \n def remove_from_repos(self, repo):\n@@ -223,9 +211,7 @@ def remove_from_repos(self, repo):\n assert isinstance(repo, github.Repository.Repository), repo\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url + \"/repos/\" + repo._identity,\n- None,\n- None\n+ self.url + \"/repos/\" + repo._identity\n )\n \n @property"},{"sha":"9ca0133be4c77ff5720473de5618c97312d6d7e5","filename":"github/UserKey.py","status":"modified","additions":3,"deletions":5,"changes":8,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/UserKey.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/UserKey.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/UserKey.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # Copyright 2013 martinqt #\n # #\n@@ -79,9 +80,7 @@ def delete(self):\n \"\"\"\n headers, data = self._requester.requestJsonAndCheck(\n \"DELETE\",\n- self.url,\n- None,\n- None\n+ self.url\n )\n \n def edit(self, title=github.GithubObject.NotSet, key=github.GithubObject.NotSet):\n@@ -101,8 +100,7 @@ def edit(self, title=github.GithubObject.NotSet, key=github.GithubObject.NotSet)\n headers, data = self._requester.requestJsonAndCheck(\n \"PATCH\",\n self.url,\n- None,\n- post_parameters\n+ input=post_parameters\n )\n self._useAttributes(data)\n "},{"sha":"4ddefece6ae21f29c76934cbd1ed7f122907ec1e","filename":"github/tests/AllTests.py","status":"modified","additions":4,"deletions":0,"changes":4,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/AllTests.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/AllTests.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/AllTests.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -56,6 +56,7 @@\n from RateLimiting import *\n from Repository import *\n from RepositoryKey import *\n+from Status import *\n from Tag import *\n from Team import *\n from UserKey import *\n@@ -79,3 +80,6 @@\n # from Issue142 import * # Deactivated for Travis-CI because Github has lowered the rate limitations\n from Issue158 import *\n from Issue174 import *\n+\n+from ConditionalRequestUpdate import ConditionalRequestUpdate\n+from Persistence import Persistence"},{"sha":"bfd3f87df527126bffa6c10c78cbb7d790e54542","filename":"github/tests/ConditionalRequestUpdate.py","status":"added","additions":43,"deletions":0,"changes":43,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ConditionalRequestUpdate.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ConditionalRequestUpdate.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ConditionalRequestUpdate.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,43 @@\n+# -*- coding: utf-8 -*-\n+\n+############################ Copyrights and license ############################\n+# #\n+# Copyright 2013 AKFish #\n+# #\n+# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n+# #\n+# PyGithub is free software: you can redistribute it and/or modify it under #\n+# the terms of the GNU Lesser General Public License as published by the Free #\n+# Software Foundation, either version 3 of the License, or (at your option) #\n+# any later version. #\n+# #\n+# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #\n+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #\n+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n+# details. #\n+# #\n+# You should have received a copy of the GNU Lesser General Public License #\n+# along with PyGithub. If not, see . #\n+# #\n+################################################################################\n+\n+# #193: Line endings should be linux style\n+\n+import Framework\n+import github\n+\n+\n+class ConditionalRequestUpdate(Framework.TestCase):\n+ def setUp(self):\n+ Framework.TestCase.setUp(self)\n+ self.repo = self.g.get_repo(\"akfish/PyGithub\")\n+\n+ def testDidNotUpdate(self):\n+ self.assertFalse(self.repo.update(), msg=\"The repo is not changes. But update() != False\")\n+\n+ def testDidUpdate(self):\n+ self.assertTrue(self.repo.update(), msg=\"The repo should be changed by now. But update() != True\")\n+\n+ def testUpdateObjectWithoutEtag(self):\n+ r = self.g.get_repo(\"jacquev6/PyGithub\")\n+ self.assertTrue(r.update())"},{"sha":"24e814b49afae222e8ac8a79ee5696166a76abc1","filename":"github/tests/Framework.py","status":"modified","additions":17,"deletions":0,"changes":17,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Framework.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Framework.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/Framework.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -4,6 +4,7 @@\n # #\n # Copyright 2012 Vincent Jacques #\n # Copyright 2012 Zearin #\n+# Copyright 2013 AKFish #\n # Copyright 2013 Vincent Jacques #\n # #\n # This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n@@ -244,8 +245,24 @@ def assertListKeyBegin(self, elements, key, expectedKeys):\n \n \n class TestCase(BasicTestCase):\n+ def doCheckFrame(self, obj, frame):\n+ if obj._headers == {} and frame is None:\n+ return\n+ if obj._headers is None and frame == {}:\n+ return\n+ self.assertEqual(obj._headers, frame[2])\n+\n+ def getFrameChecker(self):\n+ return lambda requester, obj, frame: self.doCheckFrame(obj, frame)\n+\n def setUp(self):\n BasicTestCase.setUp(self)\n+\n+ # Set up frame debugging\n+ github.GithubObject.GithubObject.setCheckAfterInitFlag(True)\n+ github.Requester.Requester.setDebugFlag(True)\n+ github.Requester.Requester.setOnCheckMe(self.getFrameChecker())\n+\n self.g = github.Github(self.login, self.password)\n \n "},{"sha":"d74dbac39717bba9476ca39070f6f0beced70578","filename":"github/tests/Gist.py","status":"modified","additions":4,"deletions":4,"changes":8,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Gist.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Gist.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/Gist.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -108,12 +108,12 @@ def testStarring(self):\n self.assertFalse(self.gist.is_starred())\n \n def testFork(self):\n- gist = self.g.get_gist(\"2729818\") # Random gist\n+ gist = self.g.get_gist(\"6296553\") # Random gist\n myGist = gist.create_fork()\n- self.assertEqual(myGist.id, \"2729865\")\n+ self.assertEqual(myGist.id, \"6296732\")\n self.assertEqual(myGist.fork_of, None) # WTF\n- sameGist = self.g.get_gist(\"2729865\")\n- self.assertEqual(sameGist.fork_of.id, \"2729818\")\n+ sameGist = self.g.get_gist(\"6296732\")\n+ self.assertEqual(sameGist.fork_of.id, \"6296553\")\n \n def testDelete(self):\n self.gist.delete()"},{"sha":"dec6a80595e541d50720527d16f752d44ef4acf3","filename":"github/tests/Github_.py","status":"modified","additions":6,"deletions":0,"changes":6,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Github_.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Github_.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/Github_.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -128,3 +128,9 @@ def testGetUsers(self):\n \n def testGetUsersSince(self):\n self.assertListKeyBegin(self.g.get_users(since=1000), lambda u: u.login, [\"sbecker\"])\n+\n+ def testGetRepos(self):\n+ self.assertListKeyBegin(self.g.get_repos(), lambda r: r.name, [\"grit\", \"merb-core\", \"rubinius\", \"god\", \"jsawesome\", \"jspec\", \"exception_logger\", \"ambition\"])\n+\n+ def testGetReposSince(self):\n+ self.assertListKeyBegin(self.g.get_repos(since=1000), lambda r: r.name, [\"jquery-humanize-messages-plugin\", \"4slicer\", \"fixture-scenarios\", \"mongrel_proctitle\", \"rails-plugins\"])"},{"sha":"5a56bd195039b7f2077fa19952af9bcb5f6c95d1","filename":"github/tests/NamedUser.py","status":"modified","additions":4,"deletions":0,"changes":4,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/NamedUser.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/NamedUser.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/NamedUser.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -109,6 +109,10 @@ def testGetFollowers(self):\n def testGetFollowing(self):\n self.assertListKeyEqual(self.user.get_following(), lambda f: f.login, [\"nvie\", \"schacon\", \"jamis\", \"chad\", \"unclebob\", \"dabrahams\", \"jnorthrup\", \"brugidou\", \"regisb\", \"walidk\", \"tanzilli\", \"fjardon\", \"r3c\", \"sdanzan\", \"vineus\", \"cjuniet\", \"gturri\", \"ant9000\", \"asquini\", \"claudyus\", \"jardon-u\", \"s-bernard\", \"kamaradclimber\", \"Lyloa\"])\n \n+ def testHasInFollowing(self):\n+ nvie = self.g.get_user(\"nvie\")\n+ self.assertTrue(self.user.has_in_following(nvie))\n+\n def testGetOrgs(self):\n self.assertListKeyEqual(self.user.get_orgs(), lambda o: o.login, [\"BeaverSoftware\"])\n "},{"sha":"300e91744c7c62d950b6e5eb91ea8e697b3f570b","filename":"github/tests/Persistence.py","status":"added","additions":55,"deletions":0,"changes":55,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Persistence.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Persistence.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/Persistence.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,55 @@\n+# -*- coding: utf-8 -*-\n+\n+############################ Copyrights and license ############################\n+# #\n+# Copyright 2013 Vincent Jacques #\n+# #\n+# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n+# #\n+# PyGithub is free software: you can redistribute it and/or modify it under #\n+# the terms of the GNU Lesser General Public License as published by the Free #\n+# Software Foundation, either version 3 of the License, or (at your option) #\n+# any later version. #\n+# #\n+# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #\n+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #\n+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n+# details. #\n+# #\n+# You should have received a copy of the GNU Lesser General Public License #\n+# along with PyGithub. If not, see . #\n+# #\n+################################################################################\n+\n+import Framework\n+import github\n+\n+if Framework.atLeastPython26:\n+ from io import BytesIO as IO\n+else:\n+ from StringIO import StringIO as IO\n+\n+\n+class Persistence(Framework.TestCase):\n+ def setUp(self):\n+ Framework.TestCase.setUp(self)\n+ self.repo = self.g.get_repo(\"akfish/PyGithub\")\n+\n+ self.dumpedRepo = IO()\n+ self.g.dump(self.repo, self.dumpedRepo)\n+ self.dumpedRepo.seek(0)\n+\n+ def tearDown(self):\n+ self.dumpedRepo.close()\n+\n+ def testLoad(self):\n+ loadedRepo = self.g.load(self.dumpedRepo)\n+ self.assertTrue(isinstance(loadedRepo, github.Repository.Repository))\n+ self.assertTrue(loadedRepo._requester is self.repo._requester)\n+ self.assertTrue(loadedRepo.owner._requester is self.repo._requester)\n+ self.assertEqual(loadedRepo.name, \"PyGithub\")\n+ self.assertEqual(loadedRepo.url, \"https://api.github.com/repos/akfish/PyGithub\")\n+\n+ def testLoadAndUpdate(self):\n+ loadedRepo = self.g.load(self.dumpedRepo)\n+ self.assertTrue(loadedRepo.update())"},{"sha":"dfc62ba258a155c9b40432ec67a51b8b8822ec73","filename":"github/tests/ReplayData/ConditionalRequestUpdate.setUp.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/ConditionalRequestUpdate.setUp.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/ConditionalRequestUpdate.setUp.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/ConditionalRequestUpdate.setUp.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+api.github.com\n+None\n+/repos/akfish/PyGithub\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n+null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '13698'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:09:11 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '\"8600bedcb7fed1d8065e1693e05529ce\"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:13:08 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')]\n+{\"id\":12156762,\"name\":\"PyGithub\",\"full_name\":\"akfish/PyGithub\",\"owner\":{\"login\":\"akfish\",\"id\":922715,\"avatar_url\":\"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png\",\"gravatar_id\":\"12a1b44d4e5c19cee59618084602b112\",\"url\":\"https://api.github.com/users/akfish\",\"html_url\":\"https://github.com/akfish\",\"followers_url\":\"https://api.github.com/users/akfish/followers\",\"following_url\":\"https://api.github.com/users/akfish/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/akfish/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/akfish/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/akfish/subscriptions\",\"organizations_url\":\"https://api.github.com/users/akfish/orgs\",\"repos_url\":\"https://api.github.com/users/akfish/repos\",\"events_url\":\"https://api.github.com/users/akfish/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/akfish/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/akfish/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":true,\"url\":\"https://api.github.com/repos/akfish/PyGithub\",\"forks_url\":\"https://api.github.com/repos/akfish/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/akfish/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/akfish/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/akfish/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/akfish/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/akfish/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/akfish/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/akfish/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/akfish/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/akfish/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/akfish/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/akfish/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/akfish/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/akfish/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/akfish/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/akfish/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/akfish/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/akfish/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/akfish/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/akfish/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/akfish/PyGithub/labels{/name}\",\"created_at\":\"2013-08-16T10:56:11Z\",\"updated_at\":\"2013-08-22T02:09:11Z\",\"pushed_at\":\"2013-08-22T02:09:09Z\",\"git_url\":\"git://github.com/akfish/PyGithub.git\",\"ssh_url\":\"git@github.com:akfish/PyGithub.git\",\"clone_url\":\"https://github.com/akfish/PyGithub.git\",\"svn_url\":\"https://github.com/akfish/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":6736,\"watchers_count\":0,\"language\":\"Python\",\"has_issues\":false,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":0,\"mirror_url\":null,\"open_issues_count\":0,\"forks\":0,\"open_issues\":0,\"watchers\":0,\"master_branch\":\"master\",\"default_branch\":\"master\",\"permissions\":{\"admin\":true,\"push\":true,\"pull\":true},\"network_count\":70,\"parent\":{\"id\":3544490,\"name\":\"PyGithub\",\"full_name\":\"jacquev6/PyGithub\",\"owner\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":false,\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"forks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jacquev6/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jacquev6/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jacquev6/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jacquev6/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}\",\"created_at\":\"2012-02-25T12:53:47Z\",\"updated_at\":\"2013-08-21T20:32:08Z\",\"pushed_at\":\"2013-08-21T20:31:45Z\",\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":7437,\"watchers_count\":248,\"language\":\"Python\",\"has_issues\":true,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":70,\"mirror_url\":null,\"open_issues_count\":17,\"forks\":70,\"open_issues\":17,\"watchers\":248,\"master_branch\":\"master\",\"default_branch\":\"master\"},\"source\":{\"id\":3544490,\"name\":\"PyGithub\",\"full_name\":\"jacquev6/PyGithub\",\"owner\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":false,\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"forks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jacquev6/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jacquev6/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jacquev6/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jacquev6/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}\",\"created_at\":\"2012-02-25T12:53:47Z\",\"updated_at\":\"2013-08-21T20:32:08Z\",\"pushed_at\":\"2013-08-21T20:31:45Z\",\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":7437,\"watchers_count\":248,\"language\":\"Python\",\"has_issues\":true,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":70,\"mirror_url\":null,\"open_issues_count\":17,\"forks\":70,\"open_issues\":17,\"watchers\":248,\"master_branch\":\"master\",\"default_branch\":\"master\"}}\n+"},{"sha":"025aee8c0f6dea08b255b2229fd018af435b9d2a","filename":"github/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/ConditionalRequestUpdate.testDidNotUpdate.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+api.github.com\n+None\n+/repos/akfish/PyGithub\n+{'If-None-Match': '\"8600bedcb7fed1d8065e1693e05529ce\"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Thu, 22 Aug 2013 02:09:11 GMT'}\n+null\n+304\n+[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4988'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:09:11 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '\"8600bedcb7fed1d8065e1693e05529ce\"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:13:10 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1377140429')]\n+\n+"},{"sha":"b6d8aeec9b3c663cfe561eb2513a514f10011673","filename":"github/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/ConditionalRequestUpdate.testDidUpdate.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+api.github.com\n+None\n+/repos/akfish/PyGithub\n+{'If-None-Match': '\"8600bedcb7fed1d8065e1693e05529ce\"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Thu, 22 Aug 2013 02:09:11 GMT'}\n+null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '13712'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:14:54 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '\"ef281ef0e821c18f80da36902727160b\"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:15:01 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')]\n+{\"id\":12156762,\"name\":\"PyGithub\",\"full_name\":\"akfish/PyGithub\",\"owner\":{\"login\":\"akfish\",\"id\":922715,\"avatar_url\":\"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png\",\"gravatar_id\":\"12a1b44d4e5c19cee59618084602b112\",\"url\":\"https://api.github.com/users/akfish\",\"html_url\":\"https://github.com/akfish\",\"followers_url\":\"https://api.github.com/users/akfish/followers\",\"following_url\":\"https://api.github.com/users/akfish/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/akfish/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/akfish/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/akfish/subscriptions\",\"organizations_url\":\"https://api.github.com/users/akfish/orgs\",\"repos_url\":\"https://api.github.com/users/akfish/repos\",\"events_url\":\"https://api.github.com/users/akfish/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/akfish/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/akfish/PyGithub\",\"description\":\"Python library implementing the full Github API v3 - AKFish Fork\",\"fork\":true,\"url\":\"https://api.github.com/repos/akfish/PyGithub\",\"forks_url\":\"https://api.github.com/repos/akfish/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/akfish/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/akfish/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/akfish/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/akfish/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/akfish/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/akfish/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/akfish/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/akfish/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/akfish/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/akfish/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/akfish/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/akfish/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/akfish/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/akfish/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/akfish/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/akfish/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/akfish/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/akfish/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/akfish/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/akfish/PyGithub/labels{/name}\",\"created_at\":\"2013-08-16T10:56:11Z\",\"updated_at\":\"2013-08-22T02:14:54Z\",\"pushed_at\":\"2013-08-22T02:09:09Z\",\"git_url\":\"git://github.com/akfish/PyGithub.git\",\"ssh_url\":\"git@github.com:akfish/PyGithub.git\",\"clone_url\":\"https://github.com/akfish/PyGithub.git\",\"svn_url\":\"https://github.com/akfish/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":6736,\"watchers_count\":0,\"language\":\"Python\",\"has_issues\":false,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":0,\"mirror_url\":null,\"open_issues_count\":0,\"forks\":0,\"open_issues\":0,\"watchers\":0,\"master_branch\":\"master\",\"default_branch\":\"master\",\"permissions\":{\"admin\":true,\"push\":true,\"pull\":true},\"network_count\":70,\"parent\":{\"id\":3544490,\"name\":\"PyGithub\",\"full_name\":\"jacquev6/PyGithub\",\"owner\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":false,\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"forks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jacquev6/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jacquev6/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jacquev6/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jacquev6/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}\",\"created_at\":\"2012-02-25T12:53:47Z\",\"updated_at\":\"2013-08-21T20:32:08Z\",\"pushed_at\":\"2013-08-21T20:31:45Z\",\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":7437,\"watchers_count\":248,\"language\":\"Python\",\"has_issues\":true,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":70,\"mirror_url\":null,\"open_issues_count\":17,\"forks\":70,\"open_issues\":17,\"watchers\":248,\"master_branch\":\"master\",\"default_branch\":\"master\"},\"source\":{\"id\":3544490,\"name\":\"PyGithub\",\"full_name\":\"jacquev6/PyGithub\",\"owner\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":false,\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"forks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jacquev6/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jacquev6/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jacquev6/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jacquev6/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}\",\"created_at\":\"2012-02-25T12:53:47Z\",\"updated_at\":\"2013-08-21T20:32:08Z\",\"pushed_at\":\"2013-08-21T20:31:45Z\",\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":7437,\"watchers_count\":248,\"language\":\"Python\",\"has_issues\":true,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":70,\"mirror_url\":null,\"open_issues_count\":17,\"forks\":70,\"open_issues\":17,\"watchers\":248,\"master_branch\":\"master\",\"default_branch\":\"master\"}}\n+"},{"sha":"6ef154b5c89fc41728599711ada9ac0aa8d36959","filename":"github/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt","status":"added","additions":22,"deletions":0,"changes":22,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/ConditionalRequestUpdate.testUpdateObjectWithoutEtag.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,22 @@\n+https\r\n+GET\r\n+api.github.com\r\n+None\r\n+/repos/jacquev6/PyGithub\r\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\r\n+null\r\n+200\r\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4911'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('date', 'Sun, 27 May 2012 07:17:09 GMT'), ('content-type', 'application/json; charset=utf-8')]\r\n+{\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"has_downloads\":true,\"watchers\":15,\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"updated_at\":\"2012-05-27T06:55:28Z\",\"permissions\":{\"pull\":true,\"admin\":true,\"push\":true},\"homepage\":\"http://vincent-jacques.net/PyGithub\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"mirror_url\":null,\"has_wiki\":false,\"has_issues\":true,\"fork\":false,\"forks\":3,\"size\":308,\"private\":false,\"open_issues\":16,\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"owner\":{\"url\":\"https://api.github.com/users/jacquev6\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146},\"name\":\"PyGithub\",\"language\":\"Python\",\"description\":\"Python library implementing the full Github API v3\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"pushed_at\":\"2012-05-27T06:00:28Z\",\"created_at\":\"2012-02-25T12:53:47Z\",\"id\":3544490,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"full_name\":\"jacquev6/PyGithub\"}\r\n+\r\n+https\r\n+GET\r\n+api.github.com\r\n+None\r\n+/repos/jacquev6/PyGithub\r\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\r\n+null\r\n+200\r\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4911'), ('content-length', '1129'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('date', 'Sun, 27 May 2012 07:17:09 GMT'), ('content-type', 'application/json; charset=utf-8')]\r\n+{\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"has_downloads\":true,\"watchers\":15,\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"updated_at\":\"2012-05-27T06:55:28Z\",\"permissions\":{\"pull\":true,\"admin\":true,\"push\":true},\"homepage\":\"http://vincent-jacques.net/PyGithub\",\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"mirror_url\":null,\"has_wiki\":false,\"has_issues\":true,\"fork\":false,\"forks\":3,\"size\":308,\"private\":false,\"open_issues\":16,\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"owner\":{\"url\":\"https://api.github.com/users/jacquev6\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146},\"name\":\"PyGithub\",\"language\":\"Python\",\"description\":\"Python library implementing the full Github API v3\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"pushed_at\":\"2012-05-27T06:00:28Z\",\"created_at\":\"2012-02-25T12:53:47Z\",\"id\":3544490,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"full_name\":\"jacquev6/PyGithub\"}\r\n+\r"},{"sha":"0589aa6c8958061fa31f388fd9d737750bdac50a","filename":"github/tests/ReplayData/Gist.testFork.txt","status":"modified","additions":9,"deletions":9,"changes":18,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Gist.testFork.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Gist.testFork.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Gist.testFork.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -2,32 +2,32 @@ https\n GET\n api.github.com\n None\n-/gists/2729818\n+/gists/6296553\n {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2576'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"fda4eb92e9b9a245bccf9efd47857766\"'), ('date', 'Sat, 19 May 2012 07:25:30 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"git_push_url\":\"git@gist.github.com:2729818.git\",\"updated_at\":\"2012-05-19T07:06:08Z\",\"forks\":[],\"url\":\"https://api.github.com/gists/2729818\",\"comments\":0,\"public\":true,\"files\":{\"ror.markdown\":{\"type\":\"text/plain\",\"raw_url\":\"https://gist.github.com/raw/2729818/1284e70f4c16550ef32a26aa4f5f0c78edaa7008/ror.markdown\",\"size\":1076,\"filename\":\"ror.markdown\",\"content\":\"## create user\\n\\nsudo useradd -m username\\nvisudo\\n\\n## delete default user\\n\\nsudo userdel ubuntu\\nsudo rm -Rf ubuntu\\n\\n## setup ssh\\n\\nmkdir ~/.ssh\\nvi /etc/ssh/authorized_keys\\nsudo vi /etc/ssh/sshd_config\\n\\n\\n## install packages\\n\\nsudo apt-get update\\n\\nsudo apt-get install sysv-rc-init git-core apache2-utils wget vim\\nsudo apt-get install mysql-client mysql-server libmysqld-dev\\nsudo apt-get install g++ openssl zlib1g readline-common libyaml-dev libssl-dev zlib1g-dev libxml2-dev libxslt1-dev libjson0-dev libgcc1 libreadline-dev\\n\\n\\n## install nginx\\n\\nwget http://nginx.org/keys/nginx_signing.key\\nsudo apt-key add nginx_signing.key\\n\\n### add /etc/sources.list\\n> \\\"deb http://nginx.org/packages/ubuntu/ lucid nginx\\ndeb-src http://nginx.org/packages/ubuntu/ lucid nginx\\\"\\n\\napt-get update\\napt-get install nginx\\n\\n\\n## setup system\\n\\nsudo sysv-rc-init\\n\\n\\n## install ruby\\n\\ncd /usr/local/src\\nsudo wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz\\nsudo tar zxvf ruby-1.9.3-p194.tar.gz\\ncd ruby-1.9.3-p194\\nsudo ./configure\\nsudo make && make install\\n\\n\\n## install RoR\\n\\nsudo gem install rails\",\"language\":\"Markdown\"}},\"html_url\":\"https://gist.github.com/2729818\",\"user\":{\"url\":\"https://api.github.com/users/Kechol\",\"gravatar_id\":\"f2a6400b393749ccd9ad3f24d4995f77\",\"login\":\"Kechol\",\"avatar_url\":\"https://secure.gravatar.com/avatar/f2a6400b393749ccd9ad3f24d4995f77?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"id\":625489},\"description\":\"RoR setup in AWS EC2(Ubuntu 12.04 LTS)\",\"created_at\":\"2012-05-19T07:06:08Z\",\"git_pull_url\":\"git://gist.github.com/2729818.git\",\"id\":\"2729818\",\"history\":[{\"url\":\"https://api.github.com/gists/2729818/a655d19a12233e5e5615deb714eae95c433eed57\",\"version\":\"a655d19a12233e5e5615deb714eae95c433eed57\",\"change_status\":{\"deletions\":0,\"additions\":57,\"total\":57},\"committed_at\":\"2012-05-19T07:06:08Z\",\"user\":{\"url\":\"https://api.github.com/users/Kechol\",\"gravatar_id\":\"f2a6400b393749ccd9ad3f24d4995f77\",\"login\":\"Kechol\",\"avatar_url\":\"https://secure.gravatar.com/avatar/f2a6400b393749ccd9ad3f24d4995f77?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"id\":625489}}]}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '25285'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:26:50 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '\"b96b3895f5da8f5e9533f0db72748a49\"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 21 Aug 2013 16:28:20 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377104997')]\n+{\"url\":\"https://api.github.com/gists/6296553\",\"forks_url\":\"https://api.github.com/gists/6296553/forks\",\"commits_url\":\"https://api.github.com/gists/6296553/commits\",\"id\":\"6296553\",\"git_pull_url\":\"https://gist.github.com/6296553.git\",\"git_push_url\":\"https://gist.github.com/6296553.git\",\"html_url\":\"https://gist.github.com/6296553\",\"files\":{\"GithubAPI.lua\":{\"filename\":\"GithubAPI.lua\",\"type\":\"text/plain\",\"language\":\"Lua\",\"raw_url\":\"https://gist.github.com/raw/6296553/88aafa25fb28e17013054a117354a37f0d78963c/GithubAPI.lua\",\"size\":21229,\"content\":\"-- GithubAPI\\n-- @Author : Hyro Vitaly Protago\\n-- @Version : 1.0.0\\n\\n--[[\\n\\nINFOS :\\n - Cannot delete an anonymous gist\\n]]--\\n\\nGithubAPI = {\\n\\tlocation = \\\"https://api.github.com/\\\",\\n\\ttoken = nil,\\n\\tOAuth = {\\n\\t\\tauthorizations = {}\\n\\t},\\n\\tgist = {\\n\\t\\tlist = {},\\n\\t\\tcomment = {}\\n\\t},\\n\\tgithub = {}\\n}\\n\\n----------------------------------------------------------------------------\\n------------------------------ Github API ----------------------------------\\n----------------------------------------------------------------------------\\n\\n--- Authentication ---\\n\\n--[[ Scopes --\\n\\nScopes let you specify exactly what type of access you need. Scopes limit access for OAuth tokens.\\nThey do not grant any additional permission beyond that which the user already has.\\n\\nFor the web flow, requested scopes will be displayed to the user on the authorize form.\\n\\nCheck headers to see what OAuth scopes you have, and what the API action accepts.\\n\\n~~~\\n$ curl -H \\\"Authorization: token OAUTH-TOKEN\\\" https://api.github.com/users/technoweenie -I\\nHTTP/1.1 200 OK\\nX-OAuth-Scopes: repo, user\\nX-Accepted-OAuth-Scopes: user\\nX-OAuth-Scopes lists the scopes your token has authorized. X-Accepted-OAuth-Scopes lists the scopes that the action checks for.\\n~~~\\n\\n- (no scope)\\npublic read-only access (includes public user profile info, public repo info, and gists).\\n- user\\nRead/write access to profile info only. Note: this scope includes user:email and user:follow.\\n- user:email\\nRead access to a user’s email addresses.\\n- user:follow\\nAccess to follow or unfollow other users.\\n- public_repo\\nRead/write access to public repos and organizations.\\n- repo\\nRead/write access to public and private repos and organizations.\\n- repo:status\\nRead/write access to public and private repository commit statuses.\\nThis scope is only necessary to grant other users or services access to private repository commit statuses without granting access to the code.\\nThe repo and public_repo scopes already include access to commit status for private and public repositories respectively.\\n- delete_repo\\nDelete access to adminable repositories.\\n- notifications\\nRead access to a user’s notifications. repo is accepted too.\\n- gist\\nWrite access to gists.\\n\\nNOTE: Your application can request the scopes in the initial redirection. You can specify multiple scopes by separating them by a comma.\\n~~~\\nhttps://github.com/login/oauth/authorize?\\n client_id=...&\\n scope=user,public_repo\\n~~~\\n]]--\\n\\n-- Redirect users to request GitHub access --\\nfunction GithubAPI.OAuth.getToken(client_id, scope, callback)\\n\\tGithubAPI.http_request(\\\"https://github.com/login/oauth/authorize?client_id=\\\"..client_id..\\\"&scope=\\\"..scope, function(data, status, headers)\\n\\t\\tGithubAPI.OAuth._getToken(client_id, client_secret, data, callback)\\n\\tend, nil, true)\\nend\\n-- GitHub redirects back to your site --\\nfunction GithubAPI.OAuth._getToken(client_id, client_secret, code, callback)\\n\\tGithubAPI.http_request(\\\"https://github.com/login/oauth/access_token\\\", callback, {\\n\\t\\tmethod = \\\"POST\\\",\\n\\t\\tdata = {\\n\\t\\t\\tclient_id = client_id,\\n\\t\\t\\tclient_secret = client_secret,\\n\\t\\t\\tcode = code\\n\\t\\t}\\n\\t}, true)\\nend\\n\\n-- List your authorizations --\\nfunction GithubAPI.OAuth.authorizations.list(callback)\\n\\tGithubAPI.http_request(\\\"authorizations\\\", callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nLink: ; rel=\\\"next\\\",\\n ; rel=\\\"last\\\"\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n[\\n {\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/authorizations/1\\\",\\n \\\"scopes\\\": [\\n \\\"public_repo\\\"\\n ],\\n \\\"token\\\": \\\"abc123\\\",\\n \\\"app\\\": {\\n \\\"url\\\": \\\"http://my-github-app.com\\\",\\n \\\"name\\\": \\\"my github app\\\",\\n \\\"client_id\\\": \\\"abcde12345fghij67890\\\"\\n },\\n \\\"note\\\": \\\"optional note\\\",\\n \\\"note_url\\\": \\\"http://optional/note/url\\\",\\n \\\"updated_at\\\": \\\"2011-09-06T20:39:23Z\\\",\\n \\\"created_at\\\": \\\"2011-09-06T17:26:27Z\\\"\\n }\\n]\\n]]--\\n\\n-- Get a single authorization --\\nfunction GithubAPI.OAuth.authorizations.get(id, callback)\\n\\tGithubAPI.http_request(\\\"authorizations/\\\"..id, callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/authorizations/1\\\",\\n \\\"scopes\\\": [\\n \\\"public_repo\\\"\\n ],\\n \\\"token\\\": \\\"abc123\\\",\\n \\\"app\\\": {\\n \\\"url\\\": \\\"http://my-github-app.com\\\",\\n \\\"name\\\": \\\"my github app\\\",\\n \\\"client_id\\\": \\\"abcde12345fghij67890\\\"\\n },\\n \\\"note\\\": \\\"optional note\\\",\\n \\\"note_url\\\": \\\"http://optional/note/url\\\",\\n \\\"updated_at\\\": \\\"2011-09-06T20:39:23Z\\\",\\n \\\"created_at\\\": \\\"2011-09-06T17:26:27Z\\\"\\n}\\n]]--\\n\\n-- Create a new authorization --\\nfunction GithubAPI.OAuth.authorizations.create(callback, scopes, note, note_url, client_id, client_secret)\\n\\tGithubAPI.http_request(\\\"authorizations/\\\", callback, {\\n\\t\\tmethod = \\\"POST\\\",\\n\\t\\tdata = {\\n\\t\\t\\tscopes = scopes,\\n\\t\\t\\tnote = note,\\n\\t\\t\\tnote_url = note_url,\\n\\t\\t\\tclient_id = client_id,\\n\\t\\t\\tclient_secret = client_secret\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\nscopes\\nOptional array - A list of scopes that this authorization is in.\\n\\nnote\\nOptional string - A note to remind you what the OAuth token is for.\\n\\nnote_url\\nOptional string - A URL to remind you what app the OAuth token is for.\\n\\nclient_id\\nOptional String - The 20 character OAuth app client key for which to create the token.\\n\\nclient_secret\\nOptional String - The 40 character OAuth app client secret for which to create the token.\\n~~~\\n{\\n \\\"scopes\\\": [\\n \\\"public_repo\\\"\\n ],\\n \\\"note\\\": \\\"admin script\\\"\\n}\\n~~~\\n]]--\\n\\n--[[ Response --\\nStatus: 201 Created\\nLocation: https://api.github.com/authorizations/1\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/authorizations/1\\\",\\n \\\"scopes\\\": [\\n \\\"public_repo\\\"\\n ],\\n \\\"token\\\": \\\"abc123\\\",\\n \\\"app\\\": {\\n \\\"url\\\": \\\"http://my-github-app.com\\\",\\n \\\"name\\\": \\\"my github app\\\",\\n \\\"client_id\\\": \\\"abcde12345fghij67890\\\"\\n },\\n \\\"note\\\": \\\"optional note\\\",\\n \\\"note_url\\\": \\\"http://optional/note/url\\\",\\n \\\"updated_at\\\": \\\"2011-09-06T20:39:23Z\\\",\\n \\\"created_at\\\": \\\"2011-09-06T17:26:27Z\\\"\\n}\\n]]--\\n\\n-- TODO\\n-- Update\\n-- Check\\n-- Delete\\n\\n--- GISTS ---\\n\\n-- List gists --\\nfunction GithubAPI.gist.list.user(user, callback)\\n\\tGithubAPI.http_request(\\\"users/\\\"..user..\\\"/gists\\\", callback)\\nend\\nfunction GithubAPI.gist.list.all(callback) -- return all public gists if called anonymously\\n\\tGithubAPI.http_request(\\\"gists\\\", callback)\\nend\\nfunction GithubAPI.gist.list.allPublic(callback)\\n\\tGithubAPI.http_request(\\\"gists/public\\\", callback)\\nend\\nfunction GithubAPI.gist.list.starred(callback)\\n\\tGithubAPI.http_request(\\\"gists/starred\\\", callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nLink: ; rel=\\\"next\\\",\\n ; rel=\\\"last\\\"\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n[\\n {\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n }\\n]\\n]]--\\n\\n-- Get a single gist --\\nfunction GithubAPI.gist.get(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id, callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\",\\n \\\"forks\\\": [\\n {\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"url\\\": \\\"https://api.github.com/gists/add0d71b065f55c46f60\\\",\\n \\\"created_at\\\": \\\"2011-04-14T16:00:49Z\\\"\\n }\\n ],\\n \\\"history\\\": [\\n {\\n \\\"url\\\": \\\"https://api.github.com/gists/80bdb0d081c447600e18\\\",\\n \\\"version\\\": \\\"57a7f021a713b1c5a6a199b54cc514735d2d462f\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"change_status\\\": {\\n \\\"deletions\\\": 0,\\n \\\"additions\\\": 180,\\n \\\"total\\\": 180\\n },\\n \\\"committed_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n }\\n ]\\n}\\n]]--\\n\\n-- Create a gist --\\nfunction GithubAPI.gist.create(public, files, callback ,description)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id, callback, {\\n\\t\\tmethod = \\\"POST\\\",\\n\\t\\tdata = {\\n\\t\\t\\tpublic = public,\\n\\t\\t\\tfiles = files,\\n\\t\\t\\tdescription = description\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\n{\\n \\\"description\\\": \\\"the description for this gist\\\",\\n \\\"public\\\": true,\\n \\\"files\\\": {\\n \\\"file1.txt\\\": {\\n \\\"content\\\": \\\"String file contents\\\"\\n }\\n }\\n}\\n]]--\\n\\n--[[ Response --\\nStatus: 201 Created\\nLocation: https://api.github.com/gists/1\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\",\\n \\\"forks\\\": [\\n {\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"url\\\": \\\"https://api.github.com/gists/add0d71b065f55c46f60\\\",\\n \\\"created_at\\\": \\\"2011-04-14T16:00:49Z\\\"\\n }\\n ],\\n \\\"history\\\": [\\n {\\n \\\"url\\\": \\\"https://api.github.com/gists/80bdb0d081c447600e18\\\",\\n \\\"version\\\": \\\"57a7f021a713b1c5a6a199b54cc514735d2d462f\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"change_status\\\": {\\n \\\"deletions\\\": 0,\\n \\\"additions\\\": 180,\\n \\\"total\\\": 180\\n },\\n \\\"committed_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n }\\n ]\\n}\\n]]--\\n\\n-- Edit a gist --\\nfunction GithubAPI.gist.edit(id, files, callback, description)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id, callback, {\\n\\t\\tmethod = \\\"PATCH\\\",\\n\\t\\tdata = {\\n\\t\\t\\tid = id,\\n\\t\\t\\tfiles = files,\\n\\t\\t\\tdescription = description\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\n{\\n \\\"description\\\": \\\"the description for this gist\\\",\\n \\\"files\\\": {\\n \\\"file1.txt\\\": {\\n \\\"content\\\": \\\"updated file contents\\\"\\n },\\n \\\"old_name.txt\\\": {\\n \\\"filename\\\": \\\"new_name.txt\\\",\\n \\\"content\\\": \\\"modified contents\\\"\\n },\\n \\\"new_file.txt\\\": {\\n \\\"content\\\": \\\"a new file\\\"\\n },\\n \\\"delete_this_file.txt\\\": null\\n }\\n}\\n]]--\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\",\\n \\\"forks\\\": [\\n {\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"url\\\": \\\"https://api.github.com/gists/add0d71b065f55c46f60\\\",\\n \\\"created_at\\\": \\\"2011-04-14T16:00:49Z\\\"\\n }\\n ],\\n \\\"history\\\": [\\n {\\n \\\"url\\\": \\\"https://api.github.com/gists/80bdb0d081c447600e18\\\",\\n \\\"version\\\": \\\"57a7f021a713b1c5a6a199b54cc514735d2d462f\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"change_status\\\": {\\n \\\"deletions\\\": 0,\\n \\\"additions\\\": 180,\\n \\\"total\\\": 180\\n },\\n \\\"committed_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n }\\n ]\\n}\\n]]--\\n\\n-- Star a gist --\\nfunction GithubAPI.gist.star(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id..\\\"/star\\\", callback, {method=\\\"PUT\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n-- Unstar a gist --\\nfunction GithubAPI.gist.unstar(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id..\\\"/star\\\", callback, {method=\\\"DELETE\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n-- Check if a gist is starred --\\nfunction GithubAPI.gist.checkStar(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id..\\\"/star\\\", callback)\\nend\\n\\n--[[\\n-- Response if gist is starred --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n\\n-- Response if gist is not starred --\\nStatus: 404 Not Found\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n-- Fork a gist --\\nfunction GithubAPI.gist.fork(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id..\\\"/forks\\\", callback, {method=\\\"POST\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 201 Created\\nLocation: https://api.github.com/gists/2\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n}\\n]]--\\n\\n-- Delete a gist --\\nfunction GithubAPI.gist.delete(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id, callback, {method=\\\"DELETE\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n--- GISTS COMMENTS ---\\n\\n-- List comments on a gist --\\nfunction GithubAPI.gist.comment.list(gist_id, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments\\\", callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n[\\n {\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\\\",\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"created_at\\\": \\\"2011-04-18T23:23:56Z\\\"\\n }\\n]\\n]]--\\n\\n-- Get a single comment --\\nfunction GithubAPI.gist.comment.get(gist_id, id, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments/\\\"..id, callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\\\",\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"created_at\\\": \\\"2011-04-18T23:23:56Z\\\"\\n}\\n]]--\\n\\n-- Create a comment --\\nfunction GithubAPI.gist.comment.create(gist_id, body, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments/\\\"..id, callback, {\\n\\t\\tmethod = \\\"POST\\\",\\n\\t\\tdata = {\\n\\t\\t\\tbody = body\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\n{\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\"\\n}\\n]]--\\n--[[ Response --\\nStatus: 201 Created\\nLocation: https://api.github.com/gists/comments/1\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\\\",\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"created_at\\\": \\\"2011-04-18T23:23:56Z\\\"\\n}\\n]]--\\n\\n-- Edit a comment --\\nfunction GithubAPI.gist.comment.edit(gist_id, id, body, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments/\\\"..id, callback, {\\n\\t\\tmethod = \\\"PATCH\\\",\\n\\t\\tdata = {\\n\\t\\t\\tbody = body\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\n{\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\"\\n}\\n]]--\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\\\",\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"created_at\\\": \\\"2011-04-18T23:23:56Z\\\"\\n}\\n]]--\\n\\n-- Delete a comment --\\nfunction GithubAPI.gist.comment.delete(gist_id, id, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments/\\\"..id, callback, {method = \\\"DELETE\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n----------------------------------------------------------------------------\\n-------------------------------- TOOLS -------------------------------------\\n----------------------------------------------------------------------------\\n\\nfunction GithubAPI.http_request(url, callback, opts, fullUrl)\\n\\topts = opts or {}\\n\\t-- if GithubAPI.token then opts.headers = TOKEN BEARER\\n\\tif opts.data then opts.data = json.encode(opts.data) end\\n\\n\\tlocal _url\\n\\tif (fullUrl) then _url = url else _url = GithubAPI.location .. url end\\n\\n\\thttp.request(_url, function(data, status, headers)\\n\\t\\tif (status == 500) then error(\\\"Github: Internal Server Error ...\\\") end\\n\\t\\tdata = json.decode(data)\\n\\t\\tcallback(data, status, headers)\\n\\tend, alert, opts)\\nend\\n\\nfunction GithubAPI.explode(div,str) -- credit: http://richard.warburton.it\\n if (div=='') then return false end\\n local pos,arr = 0,{}\\n for st,sp in function() return string.find(str,div,pos,true) end do\\n table.insert(arr,string.sub(str,pos,st-1))\\n pos = sp + 1\\n end\\n table.insert(arr,string.sub(str,pos))\\n return arr\\nend\\n\\n-- GITHUB TIMESTAMP (YYYY-MM-DDTHH:MM:SSZ) to os.time\\nfunction GithubAPI.gtimestamp(githubTime)\\n\\tgithubTime = githubTime:sub(1, #githubTime-1) -- remove Z\\n\\tgithubTime = GithubAPI.explode(\\\"T\\\", githubTime)\\n\\tgithubTime[1] = GithubAPI.explode(\\\"-\\\", githubTime[1])\\n\\tgithubTime[2] = GithubAPI.explode(\\\":\\\", githubTime[2])\\n\\treturn os.time({\\n\\t\\tyear = tonumber(githubTime[1][1]),\\n\\t\\tmonth = tonumber(githubTime[1][2]),\\n\\t\\tday = tonumber(githubTime[1][3]),\\n\\t\\thour = tonumber(githubTime[2][1]),\\n\\t\\tmin = tonumber(githubTime[2][2]),\\n\\t\\tsec = tonumber(githubTime[2][3])\\n\\t})\\nend\"}},\"public\":true,\"created_at\":\"2013-08-21T16:12:27Z\",\"updated_at\":\"2013-08-21T16:26:50Z\",\"description\":\"Github API\",\"comments\":0,\"user\":{\"login\":\"HyroVitalyProtago\",\"id\":3470988,\"avatar_url\":\"https://2.gravatar.com/avatar/ed59562b231a649345f38703948f76f4?d=https%3A%2F%2Fidenticons.github.com%2F6582cb986b7a730b12f7c18dfcc865f0.png\",\"gravatar_id\":\"ed59562b231a649345f38703948f76f4\",\"url\":\"https://api.github.com/users/HyroVitalyProtago\",\"html_url\":\"https://github.com/HyroVitalyProtago\",\"followers_url\":\"https://api.github.com/users/HyroVitalyProtago/followers\",\"following_url\":\"https://api.github.com/users/HyroVitalyProtago/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/HyroVitalyProtago/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/HyroVitalyProtago/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/HyroVitalyProtago/subscriptions\",\"organizations_url\":\"https://api.github.com/users/HyroVitalyProtago/orgs\",\"repos_url\":\"https://api.github.com/users/HyroVitalyProtago/repos\",\"events_url\":\"https://api.github.com/users/HyroVitalyProtago/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/HyroVitalyProtago/received_events\",\"type\":\"User\"},\"comments_url\":\"https://api.github.com/gists/6296553/comments\",\"forks\":[],\"history\":[{\"user\":null,\"version\":\"c464aecd7fea16684e935607eeea7ae4f8caa0e2\",\"committed_at\":\"2013-08-21T16:12:27Z\",\"change_status\":{\"total\":793,\"additions\":793,\"deletions\":0},\"url\":\"https://api.github.com/gists/6296553/c464aecd7fea16684e935607eeea7ae4f8caa0e2\"}]}\n \n https\n POST\n api.github.com\n None\n-/gists/2729818/fork\n+/gists/6296553/forks\n {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n null\n 201\n-[('status', '201 Created'), ('x-ratelimit-remaining', '4969'), ('content-length', '873'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"502531cd2afdff81b572c8565b17f601\"'), ('date', 'Sat, 19 May 2012 07:25:30 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/gists/2729865')]\n-{\"updated_at\":\"2012-05-19T07:25:30Z\",\"url\":\"https://api.github.com/gists/2729865\",\"comments\":0,\"public\":true,\"git_pull_url\":\"git://gist.github.com/2729865.git\",\"files\":{\"ror.markdown\":{\"raw_url\":\"https://gist.github.com/raw/2729865/1284e70f4c16550ef32a26aa4f5f0c78edaa7008/ror.markdown\",\"type\":\"text/plain\",\"size\":1076,\"filename\":\"ror.markdown\",\"language\":\"Markdown\"}},\"html_url\":\"https://gist.github.com/2729865\",\"user\":{\"url\":\"https://api.github.com/users/jacquev6\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"login\":\"jacquev6\",\"id\":327146},\"description\":\"RoR setup in AWS EC2(Ubuntu 12.04 LTS)\",\"created_at\":\"2012-05-19T07:25:30Z\",\"git_push_url\":\"git@gist.github.com:2729865.git\",\"id\":\"2729865\"}\n+[('status', '201 Created'), ('x-ratelimit-remaining', '4965'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('cache-control', 'max-age=0, private, must-revalidate'), ('content-length', '1510'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/gists/6296732'), ('access-control-allow-credentials', 'true'), ('date', 'Wed, 21 Aug 2013 16:28:24 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('etag', '\"ceb086d4f395719d1124cade5cedbfd4\"'), ('x-ratelimit-reset', '1377104997')]\n+{\"url\":\"https://api.github.com/gists/6296732\",\"forks_url\":\"https://api.github.com/gists/6296732/forks\",\"commits_url\":\"https://api.github.com/gists/6296732/commits\",\"id\":\"6296732\",\"git_pull_url\":\"https://gist.github.com/6296732.git\",\"git_push_url\":\"https://gist.github.com/6296732.git\",\"html_url\":\"https://gist.github.com/6296732\",\"files\":{},\"public\":true,\"created_at\":\"2013-08-21T16:28:24Z\",\"updated_at\":\"2013-08-21T16:28:24Z\",\"description\":\"Github API\",\"comments\":0,\"user\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"comments_url\":\"https://api.github.com/gists/6296732/comments\"}\n \n https\n GET\n api.github.com\n None\n-/gists/2729865\n+/gists/6296732\n {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n null\n 200\n-[('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('content-length', '3460'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '\"e829012f18db493a69740de762186eb5\"'), ('date', 'Sat, 19 May 2012 07:26:54 GMT'), ('content-type', 'application/json; charset=utf-8')]\n-{\"user\":{\"url\":\"https://api.github.com/users/jacquev6\",\"avatar_url\":\"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"login\":\"jacquev6\",\"id\":327146},\"description\":\"RoR setup in AWS EC2(Ubuntu 12.04 LTS)\",\"comments\":0,\"updated_at\":\"2012-05-19T07:25:30Z\",\"public\":true,\"git_pull_url\":\"git://gist.github.com/2729865.git\",\"history\":[{\"user\":{\"url\":\"https://api.github.com/users/Kechol\",\"avatar_url\":\"https://secure.gravatar.com/avatar/f2a6400b393749ccd9ad3f24d4995f77?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"f2a6400b393749ccd9ad3f24d4995f77\",\"login\":\"Kechol\",\"id\":625489},\"change_status\":{\"total\":57,\"deletions\":0,\"additions\":57},\"committed_at\":\"2012-05-19T07:06:08Z\",\"version\":\"a655d19a12233e5e5615deb714eae95c433eed57\",\"url\":\"https://api.github.com/gists/2729865/a655d19a12233e5e5615deb714eae95c433eed57\"}],\"git_push_url\":\"git@gist.github.com:2729865.git\",\"url\":\"https://api.github.com/gists/2729865\",\"fork_of\":{\"user\":{\"url\":\"https://api.github.com/users/Kechol\",\"avatar_url\":\"https://secure.gravatar.com/avatar/f2a6400b393749ccd9ad3f24d4995f77?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png\",\"gravatar_id\":\"f2a6400b393749ccd9ad3f24d4995f77\",\"login\":\"Kechol\",\"id\":625489},\"description\":\"RoR setup in AWS EC2(Ubuntu 12.04 LTS)\",\"comments\":0,\"updated_at\":\"2012-05-19T07:06:08Z\",\"public\":true,\"git_pull_url\":\"git://gist.github.com/2729818.git\",\"git_push_url\":\"git@gist.github.com:2729818.git\",\"url\":\"https://api.github.com/gists/2729818\",\"html_url\":\"https://gist.github.com/2729818\",\"id\":\"2729818\",\"created_at\":\"2012-05-19T07:06:08Z\",\"files\":{\"ror.markdown\":{\"type\":\"text/plain\",\"size\":1076,\"filename\":\"ror.markdown\",\"raw_url\":\"https://gist.github.com/raw/2729818/1284e70f4c16550ef32a26aa4f5f0c78edaa7008/ror.markdown\",\"language\":\"Markdown\"}}},\"html_url\":\"https://gist.github.com/2729865\",\"id\":\"2729865\",\"forks\":[],\"created_at\":\"2012-05-19T07:25:30Z\",\"files\":{\"ror.markdown\":{\"content\":\"## create user\\n\\nsudo useradd -m username\\nvisudo\\n\\n## delete default user\\n\\nsudo userdel ubuntu\\nsudo rm -Rf ubuntu\\n\\n## setup ssh\\n\\nmkdir ~/.ssh\\nvi /etc/ssh/authorized_keys\\nsudo vi /etc/ssh/sshd_config\\n\\n\\n## install packages\\n\\nsudo apt-get update\\n\\nsudo apt-get install sysv-rc-init git-core apache2-utils wget vim\\nsudo apt-get install mysql-client mysql-server libmysqld-dev\\nsudo apt-get install g++ openssl zlib1g readline-common libyaml-dev libssl-dev zlib1g-dev libxml2-dev libxslt1-dev libjson0-dev libgcc1 libreadline-dev\\n\\n\\n## install nginx\\n\\nwget http://nginx.org/keys/nginx_signing.key\\nsudo apt-key add nginx_signing.key\\n\\n### add /etc/sources.list\\n> \\\"deb http://nginx.org/packages/ubuntu/ lucid nginx\\ndeb-src http://nginx.org/packages/ubuntu/ lucid nginx\\\"\\n\\napt-get update\\napt-get install nginx\\n\\n\\n## setup system\\n\\nsudo sysv-rc-init\\n\\n\\n## install ruby\\n\\ncd /usr/local/src\\nsudo wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz\\nsudo tar zxvf ruby-1.9.3-p194.tar.gz\\ncd ruby-1.9.3-p194\\nsudo ./configure\\nsudo make && make install\\n\\n\\n## install RoR\\n\\nsudo gem install rails\",\"type\":\"text/plain\",\"size\":1076,\"filename\":\"ror.markdown\",\"raw_url\":\"https://gist.github.com/raw/2729865/1284e70f4c16550ef32a26aa4f5f0c78edaa7008/ror.markdown\",\"language\":\"Markdown\"}}}\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4964'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '26806'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:28:24 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '\"f2916c23435522156274bed022a322e7\"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 21 Aug 2013 16:28:25 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377104997')]\n+{\"url\":\"https://api.github.com/gists/6296732\",\"forks_url\":\"https://api.github.com/gists/6296732/forks\",\"commits_url\":\"https://api.github.com/gists/6296732/commits\",\"id\":\"6296732\",\"git_pull_url\":\"https://gist.github.com/6296732.git\",\"git_push_url\":\"https://gist.github.com/6296732.git\",\"html_url\":\"https://gist.github.com/6296732\",\"files\":{\"GithubAPI.lua\":{\"filename\":\"GithubAPI.lua\",\"type\":\"text/plain\",\"language\":\"Lua\",\"raw_url\":\"https://gist.github.com/raw/6296732/88aafa25fb28e17013054a117354a37f0d78963c/GithubAPI.lua\",\"size\":21229,\"content\":\"-- GithubAPI\\n-- @Author : Hyro Vitaly Protago\\n-- @Version : 1.0.0\\n\\n--[[\\n\\nINFOS :\\n - Cannot delete an anonymous gist\\n]]--\\n\\nGithubAPI = {\\n\\tlocation = \\\"https://api.github.com/\\\",\\n\\ttoken = nil,\\n\\tOAuth = {\\n\\t\\tauthorizations = {}\\n\\t},\\n\\tgist = {\\n\\t\\tlist = {},\\n\\t\\tcomment = {}\\n\\t},\\n\\tgithub = {}\\n}\\n\\n----------------------------------------------------------------------------\\n------------------------------ Github API ----------------------------------\\n----------------------------------------------------------------------------\\n\\n--- Authentication ---\\n\\n--[[ Scopes --\\n\\nScopes let you specify exactly what type of access you need. Scopes limit access for OAuth tokens.\\nThey do not grant any additional permission beyond that which the user already has.\\n\\nFor the web flow, requested scopes will be displayed to the user on the authorize form.\\n\\nCheck headers to see what OAuth scopes you have, and what the API action accepts.\\n\\n~~~\\n$ curl -H \\\"Authorization: token OAUTH-TOKEN\\\" https://api.github.com/users/technoweenie -I\\nHTTP/1.1 200 OK\\nX-OAuth-Scopes: repo, user\\nX-Accepted-OAuth-Scopes: user\\nX-OAuth-Scopes lists the scopes your token has authorized. X-Accepted-OAuth-Scopes lists the scopes that the action checks for.\\n~~~\\n\\n- (no scope)\\npublic read-only access (includes public user profile info, public repo info, and gists).\\n- user\\nRead/write access to profile info only. Note: this scope includes user:email and user:follow.\\n- user:email\\nRead access to a user’s email addresses.\\n- user:follow\\nAccess to follow or unfollow other users.\\n- public_repo\\nRead/write access to public repos and organizations.\\n- repo\\nRead/write access to public and private repos and organizations.\\n- repo:status\\nRead/write access to public and private repository commit statuses.\\nThis scope is only necessary to grant other users or services access to private repository commit statuses without granting access to the code.\\nThe repo and public_repo scopes already include access to commit status for private and public repositories respectively.\\n- delete_repo\\nDelete access to adminable repositories.\\n- notifications\\nRead access to a user’s notifications. repo is accepted too.\\n- gist\\nWrite access to gists.\\n\\nNOTE: Your application can request the scopes in the initial redirection. You can specify multiple scopes by separating them by a comma.\\n~~~\\nhttps://github.com/login/oauth/authorize?\\n client_id=...&\\n scope=user,public_repo\\n~~~\\n]]--\\n\\n-- Redirect users to request GitHub access --\\nfunction GithubAPI.OAuth.getToken(client_id, scope, callback)\\n\\tGithubAPI.http_request(\\\"https://github.com/login/oauth/authorize?client_id=\\\"..client_id..\\\"&scope=\\\"..scope, function(data, status, headers)\\n\\t\\tGithubAPI.OAuth._getToken(client_id, client_secret, data, callback)\\n\\tend, nil, true)\\nend\\n-- GitHub redirects back to your site --\\nfunction GithubAPI.OAuth._getToken(client_id, client_secret, code, callback)\\n\\tGithubAPI.http_request(\\\"https://github.com/login/oauth/access_token\\\", callback, {\\n\\t\\tmethod = \\\"POST\\\",\\n\\t\\tdata = {\\n\\t\\t\\tclient_id = client_id,\\n\\t\\t\\tclient_secret = client_secret,\\n\\t\\t\\tcode = code\\n\\t\\t}\\n\\t}, true)\\nend\\n\\n-- List your authorizations --\\nfunction GithubAPI.OAuth.authorizations.list(callback)\\n\\tGithubAPI.http_request(\\\"authorizations\\\", callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nLink: ; rel=\\\"next\\\",\\n ; rel=\\\"last\\\"\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n[\\n {\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/authorizations/1\\\",\\n \\\"scopes\\\": [\\n \\\"public_repo\\\"\\n ],\\n \\\"token\\\": \\\"abc123\\\",\\n \\\"app\\\": {\\n \\\"url\\\": \\\"http://my-github-app.com\\\",\\n \\\"name\\\": \\\"my github app\\\",\\n \\\"client_id\\\": \\\"abcde12345fghij67890\\\"\\n },\\n \\\"note\\\": \\\"optional note\\\",\\n \\\"note_url\\\": \\\"http://optional/note/url\\\",\\n \\\"updated_at\\\": \\\"2011-09-06T20:39:23Z\\\",\\n \\\"created_at\\\": \\\"2011-09-06T17:26:27Z\\\"\\n }\\n]\\n]]--\\n\\n-- Get a single authorization --\\nfunction GithubAPI.OAuth.authorizations.get(id, callback)\\n\\tGithubAPI.http_request(\\\"authorizations/\\\"..id, callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/authorizations/1\\\",\\n \\\"scopes\\\": [\\n \\\"public_repo\\\"\\n ],\\n \\\"token\\\": \\\"abc123\\\",\\n \\\"app\\\": {\\n \\\"url\\\": \\\"http://my-github-app.com\\\",\\n \\\"name\\\": \\\"my github app\\\",\\n \\\"client_id\\\": \\\"abcde12345fghij67890\\\"\\n },\\n \\\"note\\\": \\\"optional note\\\",\\n \\\"note_url\\\": \\\"http://optional/note/url\\\",\\n \\\"updated_at\\\": \\\"2011-09-06T20:39:23Z\\\",\\n \\\"created_at\\\": \\\"2011-09-06T17:26:27Z\\\"\\n}\\n]]--\\n\\n-- Create a new authorization --\\nfunction GithubAPI.OAuth.authorizations.create(callback, scopes, note, note_url, client_id, client_secret)\\n\\tGithubAPI.http_request(\\\"authorizations/\\\", callback, {\\n\\t\\tmethod = \\\"POST\\\",\\n\\t\\tdata = {\\n\\t\\t\\tscopes = scopes,\\n\\t\\t\\tnote = note,\\n\\t\\t\\tnote_url = note_url,\\n\\t\\t\\tclient_id = client_id,\\n\\t\\t\\tclient_secret = client_secret\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\nscopes\\nOptional array - A list of scopes that this authorization is in.\\n\\nnote\\nOptional string - A note to remind you what the OAuth token is for.\\n\\nnote_url\\nOptional string - A URL to remind you what app the OAuth token is for.\\n\\nclient_id\\nOptional String - The 20 character OAuth app client key for which to create the token.\\n\\nclient_secret\\nOptional String - The 40 character OAuth app client secret for which to create the token.\\n~~~\\n{\\n \\\"scopes\\\": [\\n \\\"public_repo\\\"\\n ],\\n \\\"note\\\": \\\"admin script\\\"\\n}\\n~~~\\n]]--\\n\\n--[[ Response --\\nStatus: 201 Created\\nLocation: https://api.github.com/authorizations/1\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/authorizations/1\\\",\\n \\\"scopes\\\": [\\n \\\"public_repo\\\"\\n ],\\n \\\"token\\\": \\\"abc123\\\",\\n \\\"app\\\": {\\n \\\"url\\\": \\\"http://my-github-app.com\\\",\\n \\\"name\\\": \\\"my github app\\\",\\n \\\"client_id\\\": \\\"abcde12345fghij67890\\\"\\n },\\n \\\"note\\\": \\\"optional note\\\",\\n \\\"note_url\\\": \\\"http://optional/note/url\\\",\\n \\\"updated_at\\\": \\\"2011-09-06T20:39:23Z\\\",\\n \\\"created_at\\\": \\\"2011-09-06T17:26:27Z\\\"\\n}\\n]]--\\n\\n-- TODO\\n-- Update\\n-- Check\\n-- Delete\\n\\n--- GISTS ---\\n\\n-- List gists --\\nfunction GithubAPI.gist.list.user(user, callback)\\n\\tGithubAPI.http_request(\\\"users/\\\"..user..\\\"/gists\\\", callback)\\nend\\nfunction GithubAPI.gist.list.all(callback) -- return all public gists if called anonymously\\n\\tGithubAPI.http_request(\\\"gists\\\", callback)\\nend\\nfunction GithubAPI.gist.list.allPublic(callback)\\n\\tGithubAPI.http_request(\\\"gists/public\\\", callback)\\nend\\nfunction GithubAPI.gist.list.starred(callback)\\n\\tGithubAPI.http_request(\\\"gists/starred\\\", callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nLink: ; rel=\\\"next\\\",\\n ; rel=\\\"last\\\"\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n[\\n {\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n }\\n]\\n]]--\\n\\n-- Get a single gist --\\nfunction GithubAPI.gist.get(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id, callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\",\\n \\\"forks\\\": [\\n {\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"url\\\": \\\"https://api.github.com/gists/add0d71b065f55c46f60\\\",\\n \\\"created_at\\\": \\\"2011-04-14T16:00:49Z\\\"\\n }\\n ],\\n \\\"history\\\": [\\n {\\n \\\"url\\\": \\\"https://api.github.com/gists/80bdb0d081c447600e18\\\",\\n \\\"version\\\": \\\"57a7f021a713b1c5a6a199b54cc514735d2d462f\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"change_status\\\": {\\n \\\"deletions\\\": 0,\\n \\\"additions\\\": 180,\\n \\\"total\\\": 180\\n },\\n \\\"committed_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n }\\n ]\\n}\\n]]--\\n\\n-- Create a gist --\\nfunction GithubAPI.gist.create(public, files, callback ,description)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id, callback, {\\n\\t\\tmethod = \\\"POST\\\",\\n\\t\\tdata = {\\n\\t\\t\\tpublic = public,\\n\\t\\t\\tfiles = files,\\n\\t\\t\\tdescription = description\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\n{\\n \\\"description\\\": \\\"the description for this gist\\\",\\n \\\"public\\\": true,\\n \\\"files\\\": {\\n \\\"file1.txt\\\": {\\n \\\"content\\\": \\\"String file contents\\\"\\n }\\n }\\n}\\n]]--\\n\\n--[[ Response --\\nStatus: 201 Created\\nLocation: https://api.github.com/gists/1\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\",\\n \\\"forks\\\": [\\n {\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"url\\\": \\\"https://api.github.com/gists/add0d71b065f55c46f60\\\",\\n \\\"created_at\\\": \\\"2011-04-14T16:00:49Z\\\"\\n }\\n ],\\n \\\"history\\\": [\\n {\\n \\\"url\\\": \\\"https://api.github.com/gists/80bdb0d081c447600e18\\\",\\n \\\"version\\\": \\\"57a7f021a713b1c5a6a199b54cc514735d2d462f\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"change_status\\\": {\\n \\\"deletions\\\": 0,\\n \\\"additions\\\": 180,\\n \\\"total\\\": 180\\n },\\n \\\"committed_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n }\\n ]\\n}\\n]]--\\n\\n-- Edit a gist --\\nfunction GithubAPI.gist.edit(id, files, callback, description)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id, callback, {\\n\\t\\tmethod = \\\"PATCH\\\",\\n\\t\\tdata = {\\n\\t\\t\\tid = id,\\n\\t\\t\\tfiles = files,\\n\\t\\t\\tdescription = description\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\n{\\n \\\"description\\\": \\\"the description for this gist\\\",\\n \\\"files\\\": {\\n \\\"file1.txt\\\": {\\n \\\"content\\\": \\\"updated file contents\\\"\\n },\\n \\\"old_name.txt\\\": {\\n \\\"filename\\\": \\\"new_name.txt\\\",\\n \\\"content\\\": \\\"modified contents\\\"\\n },\\n \\\"new_file.txt\\\": {\\n \\\"content\\\": \\\"a new file\\\"\\n },\\n \\\"delete_this_file.txt\\\": null\\n }\\n}\\n]]--\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\",\\n \\\"forks\\\": [\\n {\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"url\\\": \\\"https://api.github.com/gists/add0d71b065f55c46f60\\\",\\n \\\"created_at\\\": \\\"2011-04-14T16:00:49Z\\\"\\n }\\n ],\\n \\\"history\\\": [\\n {\\n \\\"url\\\": \\\"https://api.github.com/gists/80bdb0d081c447600e18\\\",\\n \\\"version\\\": \\\"57a7f021a713b1c5a6a199b54cc514735d2d462f\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"change_status\\\": {\\n \\\"deletions\\\": 0,\\n \\\"additions\\\": 180,\\n \\\"total\\\": 180\\n },\\n \\\"committed_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n }\\n ]\\n}\\n]]--\\n\\n-- Star a gist --\\nfunction GithubAPI.gist.star(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id..\\\"/star\\\", callback, {method=\\\"PUT\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n-- Unstar a gist --\\nfunction GithubAPI.gist.unstar(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id..\\\"/star\\\", callback, {method=\\\"DELETE\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n-- Check if a gist is starred --\\nfunction GithubAPI.gist.checkStar(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id..\\\"/star\\\", callback)\\nend\\n\\n--[[\\n-- Response if gist is starred --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n\\n-- Response if gist is not starred --\\nStatus: 404 Not Found\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n-- Fork a gist --\\nfunction GithubAPI.gist.fork(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id..\\\"/forks\\\", callback, {method=\\\"POST\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 201 Created\\nLocation: https://api.github.com/gists/2\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"url\\\": \\\"https://api.github.com/gists/88a3112be74ba6ad701e\\\",\\n \\\"id\\\": \\\"1\\\",\\n \\\"description\\\": \\\"description of gist\\\",\\n \\\"public\\\": true,\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"files\\\": {\\n \\\"ring.erl\\\": {\\n \\\"size\\\": 932,\\n \\\"filename\\\": \\\"ring.erl\\\",\\n \\\"raw_url\\\": \\\"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\\\"\\n }\\n },\\n \\\"comments\\\": 0,\\n \\\"comments_url\\\": \\\"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\\\",\\n \\\"html_url\\\": \\\"https://gist.github.com/1\\\",\\n \\\"git_pull_url\\\": \\\"git://gist.github.com/1.git\\\",\\n \\\"git_push_url\\\": \\\"git@gist.github.com:1.git\\\",\\n \\\"created_at\\\": \\\"2010-04-14T02:15:15Z\\\"\\n}\\n]]--\\n\\n-- Delete a gist --\\nfunction GithubAPI.gist.delete(id, callback)\\n\\tGithubAPI.http_request(\\\"gists/\\\"..id, callback, {method=\\\"DELETE\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n--- GISTS COMMENTS ---\\n\\n-- List comments on a gist --\\nfunction GithubAPI.gist.comment.list(gist_id, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments\\\", callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n[\\n {\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\\\",\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"created_at\\\": \\\"2011-04-18T23:23:56Z\\\"\\n }\\n]\\n]]--\\n\\n-- Get a single comment --\\nfunction GithubAPI.gist.comment.get(gist_id, id, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments/\\\"..id, callback)\\nend\\n\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\\\",\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"created_at\\\": \\\"2011-04-18T23:23:56Z\\\"\\n}\\n]]--\\n\\n-- Create a comment --\\nfunction GithubAPI.gist.comment.create(gist_id, body, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments/\\\"..id, callback, {\\n\\t\\tmethod = \\\"POST\\\",\\n\\t\\tdata = {\\n\\t\\t\\tbody = body\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\n{\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\"\\n}\\n]]--\\n--[[ Response --\\nStatus: 201 Created\\nLocation: https://api.github.com/gists/comments/1\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\\\",\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"created_at\\\": \\\"2011-04-18T23:23:56Z\\\"\\n}\\n]]--\\n\\n-- Edit a comment --\\nfunction GithubAPI.gist.comment.edit(gist_id, id, body, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments/\\\"..id, callback, {\\n\\t\\tmethod = \\\"PATCH\\\",\\n\\t\\tdata = {\\n\\t\\t\\tbody = body\\n\\t\\t}\\n\\t})\\nend\\n\\n--[[ Input --\\n{\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\"\\n}\\n]]--\\n--[[ Response --\\nStatus: 200 OK\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n{\\n \\\"id\\\": 1,\\n \\\"url\\\": \\\"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\\\",\\n \\\"body\\\": \\\"Just commenting for the sake of commenting\\\",\\n \\\"user\\\": {\\n \\\"login\\\": \\\"octocat\\\",\\n \\\"id\\\": 1,\\n \\\"avatar_url\\\": \\\"https://github.com/images/error/octocat_happy.gif\\\",\\n \\\"gravatar_id\\\": \\\"somehexcode\\\",\\n \\\"url\\\": \\\"https://api.github.com/users/octocat\\\"\\n },\\n \\\"created_at\\\": \\\"2011-04-18T23:23:56Z\\\"\\n}\\n]]--\\n\\n-- Delete a comment --\\nfunction GithubAPI.gist.comment.delete(gist_id, id, callback)\\n\\tGithubAPI.http_request(\\\"gists/..\\\"gist_id\\\"../comments/\\\"..id, callback, {method = \\\"DELETE\\\"})\\nend\\n\\n--[[ Response --\\nStatus: 204 No Content\\nX-RateLimit-Limit: 5000\\nX-RateLimit-Remaining: 4999\\n]]--\\n\\n----------------------------------------------------------------------------\\n-------------------------------- TOOLS -------------------------------------\\n----------------------------------------------------------------------------\\n\\nfunction GithubAPI.http_request(url, callback, opts, fullUrl)\\n\\topts = opts or {}\\n\\t-- if GithubAPI.token then opts.headers = TOKEN BEARER\\n\\tif opts.data then opts.data = json.encode(opts.data) end\\n\\n\\tlocal _url\\n\\tif (fullUrl) then _url = url else _url = GithubAPI.location .. url end\\n\\n\\thttp.request(_url, function(data, status, headers)\\n\\t\\tif (status == 500) then error(\\\"Github: Internal Server Error ...\\\") end\\n\\t\\tdata = json.decode(data)\\n\\t\\tcallback(data, status, headers)\\n\\tend, alert, opts)\\nend\\n\\nfunction GithubAPI.explode(div,str) -- credit: http://richard.warburton.it\\n if (div=='') then return false end\\n local pos,arr = 0,{}\\n for st,sp in function() return string.find(str,div,pos,true) end do\\n table.insert(arr,string.sub(str,pos,st-1))\\n pos = sp + 1\\n end\\n table.insert(arr,string.sub(str,pos))\\n return arr\\nend\\n\\n-- GITHUB TIMESTAMP (YYYY-MM-DDTHH:MM:SSZ) to os.time\\nfunction GithubAPI.gtimestamp(githubTime)\\n\\tgithubTime = githubTime:sub(1, #githubTime-1) -- remove Z\\n\\tgithubTime = GithubAPI.explode(\\\"T\\\", githubTime)\\n\\tgithubTime[1] = GithubAPI.explode(\\\"-\\\", githubTime[1])\\n\\tgithubTime[2] = GithubAPI.explode(\\\":\\\", githubTime[2])\\n\\treturn os.time({\\n\\t\\tyear = tonumber(githubTime[1][1]),\\n\\t\\tmonth = tonumber(githubTime[1][2]),\\n\\t\\tday = tonumber(githubTime[1][3]),\\n\\t\\thour = tonumber(githubTime[2][1]),\\n\\t\\tmin = tonumber(githubTime[2][2]),\\n\\t\\tsec = tonumber(githubTime[2][3])\\n\\t})\\nend\"}},\"public\":true,\"created_at\":\"2013-08-21T16:28:24Z\",\"updated_at\":\"2013-08-21T16:28:24Z\",\"description\":\"Github API\",\"comments\":0,\"user\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"comments_url\":\"https://api.github.com/gists/6296732/comments\",\"forks\":[],\"history\":[{\"user\":null,\"version\":\"c464aecd7fea16684e935607eeea7ae4f8caa0e2\",\"committed_at\":\"2013-08-21T16:12:27Z\",\"change_status\":{\"total\":793,\"additions\":793,\"deletions\":0},\"url\":\"https://api.github.com/gists/6296732/c464aecd7fea16684e935607eeea7ae4f8caa0e2\"}],\"fork_of\":{\"url\":\"https://api.github.com/gists/6296553\",\"forks_url\":\"https://api.github.com/gists/6296553/forks\",\"commits_url\":\"https://api.github.com/gists/6296553/commits\",\"id\":\"6296553\",\"git_pull_url\":\"https://gist.github.com/6296553.git\",\"git_push_url\":\"https://gist.github.com/6296553.git\",\"html_url\":\"https://gist.github.com/6296553\",\"files\":{},\"public\":true,\"created_at\":\"2013-08-21T16:12:27Z\",\"updated_at\":\"2013-08-21T16:28:24Z\",\"description\":\"Github API\",\"comments\":0,\"user\":{\"login\":\"HyroVitalyProtago\",\"id\":3470988,\"avatar_url\":\"https://1.gravatar.com/avatar/ed59562b231a649345f38703948f76f4?d=https%3A%2F%2Fidenticons.github.com%2F6582cb986b7a730b12f7c18dfcc865f0.png\",\"gravatar_id\":\"ed59562b231a649345f38703948f76f4\",\"url\":\"https://api.github.com/users/HyroVitalyProtago\",\"html_url\":\"https://github.com/HyroVitalyProtago\",\"followers_url\":\"https://api.github.com/users/HyroVitalyProtago/followers\",\"following_url\":\"https://api.github.com/users/HyroVitalyProtago/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/HyroVitalyProtago/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/HyroVitalyProtago/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/HyroVitalyProtago/subscriptions\",\"organizations_url\":\"https://api.github.com/users/HyroVitalyProtago/orgs\",\"repos_url\":\"https://api.github.com/users/HyroVitalyProtago/repos\",\"events_url\":\"https://api.github.com/users/HyroVitalyProtago/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/HyroVitalyProtago/received_events\",\"type\":\"User\"},\"comments_url\":\"https://api.github.com/gists/6296553/comments\"}}\n "},{"sha":"7d335ffc25d0f2bf8208709c1d73ec7b216eee61","filename":"github/tests/ReplayData/Github.testGetRepos.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Github.testGetRepos.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Github.testGetRepos.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Github.testGetRepos.txt?ref=a6597499c2f82e063074a3036d875417d5efa296"},{"sha":"476baddfbabd644ff708e3ea3778ae474ff03c86","filename":"github/tests/ReplayData/Github.testGetReposSince.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Github.testGetReposSince.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Github.testGetReposSince.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Github.testGetReposSince.txt?ref=a6597499c2f82e063074a3036d875417d5efa296"},{"sha":"6f6e25494e129725b5aad650839888e3494c52f7","filename":"github/tests/ReplayData/Hook.testTest.txt","status":"modified","additions":1,"deletions":1,"changes":2,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Hook.testTest.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Hook.testTest.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Hook.testTest.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -2,7 +2,7 @@ https\n POST\n api.github.com\n None\n-/repos/jacquev6/PyGithub/hooks/257993/test\n+/repos/jacquev6/PyGithub/hooks/257993/tests\n {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n null\n 204"},{"sha":"08c61a84ee63868aac85f3d64397e65b0fdf9132","filename":"github/tests/ReplayData/NamedUser.testHasInFollowing.txt","status":"added","additions":22,"deletions":0,"changes":22,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/NamedUser.testHasInFollowing.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/NamedUser.testHasInFollowing.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/NamedUser.testHasInFollowing.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,22 @@\n+https\n+GET\n+api.github.com\n+None\n+/users/nvie\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n+null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1218'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:26:40 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '\"8e2b307f8fb4186bfb512febd7215fc8\"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 21 Aug 2013 17:20:44 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377108637')]\n+{\"login\":\"nvie\",\"id\":83844,\"avatar_url\":\"https://2.gravatar.com/avatar/466ef7561a0b100dc5a1021959962d28?d=https%3A%2F%2Fidenticons.github.com%2Fe6d0513ce49cc06cb956251623cb8fd9.png\",\"gravatar_id\":\"466ef7561a0b100dc5a1021959962d28\",\"url\":\"https://api.github.com/users/nvie\",\"html_url\":\"https://github.com/nvie\",\"followers_url\":\"https://api.github.com/users/nvie/followers\",\"following_url\":\"https://api.github.com/users/nvie/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/nvie/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/nvie/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/nvie/subscriptions\",\"organizations_url\":\"https://api.github.com/users/nvie/orgs\",\"repos_url\":\"https://api.github.com/users/nvie/repos\",\"events_url\":\"https://api.github.com/users/nvie/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/nvie/received_events\",\"type\":\"User\",\"name\":\"Vincent Driessen\",\"company\":\"3rd Cloud\",\"blog\":\"http://nvie.com\",\"location\":\"Netherlands\",\"email\":\"vincent@3rdcloud.com\",\"hireable\":true,\"bio\":null,\"public_repos\":86,\"followers\":530,\"following\":45,\"created_at\":\"2009-05-12T21:19:38Z\",\"updated_at\":\"2013-08-21T16:26:40Z\",\"public_gists\":38}\n+\n+https\n+GET\n+api.github.com\n+None\n+/users/jacquev6/following/nvie\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n+null\n+204\n+[('status', '204 No Content'), ('x-ratelimit-remaining', '4995'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('access-control-allow-credentials', 'true'), ('date', 'Wed, 21 Aug 2013 17:20:48 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1377108637')]\n+\n+"},{"sha":"dfc62ba258a155c9b40432ec67a51b8b8822ec73","filename":"github/tests/ReplayData/Persistence.setUp.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Persistence.setUp.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Persistence.setUp.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Persistence.setUp.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+api.github.com\n+None\n+/repos/akfish/PyGithub\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n+null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '13698'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:09:11 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '\"8600bedcb7fed1d8065e1693e05529ce\"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:13:08 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')]\n+{\"id\":12156762,\"name\":\"PyGithub\",\"full_name\":\"akfish/PyGithub\",\"owner\":{\"login\":\"akfish\",\"id\":922715,\"avatar_url\":\"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png\",\"gravatar_id\":\"12a1b44d4e5c19cee59618084602b112\",\"url\":\"https://api.github.com/users/akfish\",\"html_url\":\"https://github.com/akfish\",\"followers_url\":\"https://api.github.com/users/akfish/followers\",\"following_url\":\"https://api.github.com/users/akfish/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/akfish/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/akfish/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/akfish/subscriptions\",\"organizations_url\":\"https://api.github.com/users/akfish/orgs\",\"repos_url\":\"https://api.github.com/users/akfish/repos\",\"events_url\":\"https://api.github.com/users/akfish/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/akfish/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/akfish/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":true,\"url\":\"https://api.github.com/repos/akfish/PyGithub\",\"forks_url\":\"https://api.github.com/repos/akfish/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/akfish/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/akfish/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/akfish/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/akfish/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/akfish/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/akfish/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/akfish/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/akfish/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/akfish/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/akfish/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/akfish/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/akfish/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/akfish/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/akfish/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/akfish/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/akfish/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/akfish/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/akfish/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/akfish/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/akfish/PyGithub/labels{/name}\",\"created_at\":\"2013-08-16T10:56:11Z\",\"updated_at\":\"2013-08-22T02:09:11Z\",\"pushed_at\":\"2013-08-22T02:09:09Z\",\"git_url\":\"git://github.com/akfish/PyGithub.git\",\"ssh_url\":\"git@github.com:akfish/PyGithub.git\",\"clone_url\":\"https://github.com/akfish/PyGithub.git\",\"svn_url\":\"https://github.com/akfish/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":6736,\"watchers_count\":0,\"language\":\"Python\",\"has_issues\":false,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":0,\"mirror_url\":null,\"open_issues_count\":0,\"forks\":0,\"open_issues\":0,\"watchers\":0,\"master_branch\":\"master\",\"default_branch\":\"master\",\"permissions\":{\"admin\":true,\"push\":true,\"pull\":true},\"network_count\":70,\"parent\":{\"id\":3544490,\"name\":\"PyGithub\",\"full_name\":\"jacquev6/PyGithub\",\"owner\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":false,\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"forks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jacquev6/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jacquev6/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jacquev6/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jacquev6/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}\",\"created_at\":\"2012-02-25T12:53:47Z\",\"updated_at\":\"2013-08-21T20:32:08Z\",\"pushed_at\":\"2013-08-21T20:31:45Z\",\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":7437,\"watchers_count\":248,\"language\":\"Python\",\"has_issues\":true,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":70,\"mirror_url\":null,\"open_issues_count\":17,\"forks\":70,\"open_issues\":17,\"watchers\":248,\"master_branch\":\"master\",\"default_branch\":\"master\"},\"source\":{\"id\":3544490,\"name\":\"PyGithub\",\"full_name\":\"jacquev6/PyGithub\",\"owner\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":false,\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"forks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jacquev6/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jacquev6/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jacquev6/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jacquev6/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}\",\"created_at\":\"2012-02-25T12:53:47Z\",\"updated_at\":\"2013-08-21T20:32:08Z\",\"pushed_at\":\"2013-08-21T20:31:45Z\",\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":7437,\"watchers_count\":248,\"language\":\"Python\",\"has_issues\":true,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":70,\"mirror_url\":null,\"open_issues_count\":17,\"forks\":70,\"open_issues\":17,\"watchers\":248,\"master_branch\":\"master\",\"default_branch\":\"master\"}}\n+"},{"sha":"b6d8aeec9b3c663cfe561eb2513a514f10011673","filename":"github/tests/ReplayData/Persistence.testLoadAndUpdate.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Persistence.testLoadAndUpdate.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Persistence.testLoadAndUpdate.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Persistence.testLoadAndUpdate.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+api.github.com\n+None\n+/repos/akfish/PyGithub\n+{'If-None-Match': '\"8600bedcb7fed1d8065e1693e05529ce\"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Thu, 22 Aug 2013 02:09:11 GMT'}\n+null\n+200\n+[('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '13712'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:14:54 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '\"ef281ef0e821c18f80da36902727160b\"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:15:01 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')]\n+{\"id\":12156762,\"name\":\"PyGithub\",\"full_name\":\"akfish/PyGithub\",\"owner\":{\"login\":\"akfish\",\"id\":922715,\"avatar_url\":\"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png\",\"gravatar_id\":\"12a1b44d4e5c19cee59618084602b112\",\"url\":\"https://api.github.com/users/akfish\",\"html_url\":\"https://github.com/akfish\",\"followers_url\":\"https://api.github.com/users/akfish/followers\",\"following_url\":\"https://api.github.com/users/akfish/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/akfish/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/akfish/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/akfish/subscriptions\",\"organizations_url\":\"https://api.github.com/users/akfish/orgs\",\"repos_url\":\"https://api.github.com/users/akfish/repos\",\"events_url\":\"https://api.github.com/users/akfish/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/akfish/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/akfish/PyGithub\",\"description\":\"Python library implementing the full Github API v3 - AKFish Fork\",\"fork\":true,\"url\":\"https://api.github.com/repos/akfish/PyGithub\",\"forks_url\":\"https://api.github.com/repos/akfish/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/akfish/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/akfish/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/akfish/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/akfish/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/akfish/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/akfish/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/akfish/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/akfish/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/akfish/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/akfish/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/akfish/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/akfish/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/akfish/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/akfish/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/akfish/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/akfish/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/akfish/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/akfish/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/akfish/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/akfish/PyGithub/labels{/name}\",\"created_at\":\"2013-08-16T10:56:11Z\",\"updated_at\":\"2013-08-22T02:14:54Z\",\"pushed_at\":\"2013-08-22T02:09:09Z\",\"git_url\":\"git://github.com/akfish/PyGithub.git\",\"ssh_url\":\"git@github.com:akfish/PyGithub.git\",\"clone_url\":\"https://github.com/akfish/PyGithub.git\",\"svn_url\":\"https://github.com/akfish/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":6736,\"watchers_count\":0,\"language\":\"Python\",\"has_issues\":false,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":0,\"mirror_url\":null,\"open_issues_count\":0,\"forks\":0,\"open_issues\":0,\"watchers\":0,\"master_branch\":\"master\",\"default_branch\":\"master\",\"permissions\":{\"admin\":true,\"push\":true,\"pull\":true},\"network_count\":70,\"parent\":{\"id\":3544490,\"name\":\"PyGithub\",\"full_name\":\"jacquev6/PyGithub\",\"owner\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":false,\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"forks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jacquev6/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jacquev6/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jacquev6/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jacquev6/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}\",\"created_at\":\"2012-02-25T12:53:47Z\",\"updated_at\":\"2013-08-21T20:32:08Z\",\"pushed_at\":\"2013-08-21T20:31:45Z\",\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":7437,\"watchers_count\":248,\"language\":\"Python\",\"has_issues\":true,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":70,\"mirror_url\":null,\"open_issues_count\":17,\"forks\":70,\"open_issues\":17,\"watchers\":248,\"master_branch\":\"master\",\"default_branch\":\"master\"},\"source\":{\"id\":3544490,\"name\":\"PyGithub\",\"full_name\":\"jacquev6/PyGithub\",\"owner\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"private\":false,\"html_url\":\"https://github.com/jacquev6/PyGithub\",\"description\":\"Python library implementing the full Github API v3\",\"fork\":false,\"url\":\"https://api.github.com/repos/jacquev6/PyGithub\",\"forks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/forks\",\"keys_url\":\"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}\",\"collaborators_url\":\"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}\",\"teams_url\":\"https://api.github.com/repos/jacquev6/PyGithub/teams\",\"hooks_url\":\"https://api.github.com/repos/jacquev6/PyGithub/hooks\",\"issue_events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}\",\"events_url\":\"https://api.github.com/repos/jacquev6/PyGithub/events\",\"assignees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}\",\"branches_url\":\"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}\",\"tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/tags\",\"blobs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}\",\"git_tags_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}\",\"git_refs_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}\",\"trees_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}\",\"statuses_url\":\"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}\",\"languages_url\":\"https://api.github.com/repos/jacquev6/PyGithub/languages\",\"stargazers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/stargazers\",\"contributors_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contributors\",\"subscribers_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscribers\",\"subscription_url\":\"https://api.github.com/repos/jacquev6/PyGithub/subscription\",\"commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}\",\"git_commits_url\":\"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}\",\"comments_url\":\"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}\",\"issue_comment_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}\",\"contents_url\":\"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}\",\"compare_url\":\"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}\",\"merges_url\":\"https://api.github.com/repos/jacquev6/PyGithub/merges\",\"archive_url\":\"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}\",\"downloads_url\":\"https://api.github.com/repos/jacquev6/PyGithub/downloads\",\"issues_url\":\"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}\",\"pulls_url\":\"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}\",\"milestones_url\":\"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}\",\"notifications_url\":\"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}\",\"labels_url\":\"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}\",\"created_at\":\"2012-02-25T12:53:47Z\",\"updated_at\":\"2013-08-21T20:32:08Z\",\"pushed_at\":\"2013-08-21T20:31:45Z\",\"git_url\":\"git://github.com/jacquev6/PyGithub.git\",\"ssh_url\":\"git@github.com:jacquev6/PyGithub.git\",\"clone_url\":\"https://github.com/jacquev6/PyGithub.git\",\"svn_url\":\"https://github.com/jacquev6/PyGithub\",\"homepage\":\"http://jacquev6.github.com/PyGithub\",\"size\":7437,\"watchers_count\":248,\"language\":\"Python\",\"has_issues\":true,\"has_downloads\":true,\"has_wiki\":true,\"forks_count\":70,\"mirror_url\":null,\"open_issues_count\":17,\"forks\":70,\"open_issues\":17,\"watchers\":248,\"master_branch\":\"master\",\"default_branch\":\"master\"}}\n+"},{"sha":"3d4b27e8aa1282bb8401e6e2ae753044a7208686","filename":"github/tests/ReplayData/Status.testGetLastMessage.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Status.testGetLastMessage.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Status.testGetLastMessage.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Status.testGetLastMessage.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+status.github.com\n+443\n+/api/last-message.json\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n+null\n+200\n+[('status', '200 OK'), ('content-length', '93'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Fri, 06 Sep 2013 08:34:01 GMT'), ('content-type', 'application/json;charset=utf-8')]\n+{\"status\":\"good\",\"body\":\"Everything operating normally.\",\"created_on\":\"2013-09-01T15:41:46Z\"}\n+"},{"sha":"6c79412a7a4039830228927d1ca5c9557298bdd3","filename":"github/tests/ReplayData/Status.testGetMessages.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Status.testGetMessages.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Status.testGetMessages.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Status.testGetMessages.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+status.github.com\n+443\n+/api/messages.json\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n+null\n+200\n+[('status', '200 OK'), ('content-length', '1492'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Fri, 06 Sep 2013 08:41:31 GMT'), ('content-type', 'application/json;charset=utf-8')]\n+[{\"status\":\"good\",\"body\":\"Everything operating normally.\",\"created_on\":\"2013-09-01T15:41:46Z\"},{\"status\":\"minor\",\"body\":\"GitHub Pages are currently unavailable. We're investigating the problem.\",\"created_on\":\"2013-09-01T15:26:59Z\"},{\"status\":\"good\",\"body\":\"Everything operating normally.\",\"created_on\":\"2013-09-01T15:17:24Z\"},{\"status\":\"minor\",\"body\":\"We are investigating an increased rate of errors on GitHub.com\",\"created_on\":\"2013-09-01T15:14:24Z\"},{\"status\":\"good\",\"body\":\"Everything operating normally.\",\"created_on\":\"2013-09-01T06:52:46Z\"},{\"status\":\"minor\",\"body\":\"Some GitHub pages are again unavailable. We are continuing to investigate.\",\"created_on\":\"2013-09-01T06:50:31Z\"},{\"status\":\"good\",\"body\":\"Everything operating normally.\",\"created_on\":\"2013-09-01T06:47:25Z\"},{\"status\":\"minor\",\"body\":\"Some GitHub pages are temporarily unavailable.\",\"created_on\":\"2013-09-01T06:43:03Z\"},{\"status\":\"good\",\"body\":\"We're back up, now featuring a massively upgraded DB cluster with SSDs and 10Gbps networking! Thanks for your patience.\",\"created_on\":\"2013-08-31T12:13:04Z\"},{\"status\":\"major\",\"body\":\"We're beginning our scheduled maintenance now, and expect to be back up in 20 minutes. https://github.com/blog/1603-site-maintenance-august-31st-2013\",\"created_on\":\"2013-08-31T12:00:13Z\"},{\"status\":\"good\",\"body\":\"Everything operating normally.\",\"created_on\":\"2013-08-31T11:45:50Z\"},{\"status\":\"minor\",\"body\":\"We are investigating issues with GitHub Pages\",\"created_on\":\"2013-08-31T11:43:39Z\"}]\n+"},{"sha":"e01aec021bcb172a4eaf436c5d23e69594bc022f","filename":"github/tests/ReplayData/Status.testGetStatus.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Status.testGetStatus.txt","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/ReplayData/Status.testGetStatus.txt","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/ReplayData/Status.testGetStatus.txt?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+status.github.com\n+443\n+/api/status.json\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n+null\n+200\n+[('status', '200 OK'), ('content-length', '55'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Fri, 06 Sep 2013 08:29:36 GMT'), ('content-type', 'application/json;charset=utf-8')]\n+{\"status\":\"good\",\"last_updated\":\"2013-09-06T08:29:27Z\"}\n+"},{"sha":"0bb3c935ce2f4fa86d410b2759a4825e42bc44a3","filename":"github/tests/Status.py","status":"added","additions":43,"deletions":0,"changes":43,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Status.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/github/tests/Status.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/github/tests/Status.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -0,0 +1,43 @@\n+# -*- coding: utf-8 -*-\n+\n+############################ Copyrights and license ############################\n+# #\n+# Copyright 2013 Vincent Jacques #\n+# #\n+# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ #\n+# #\n+# PyGithub is free software: you can redistribute it and/or modify it under #\n+# the terms of the GNU Lesser General Public License as published by the Free #\n+# Software Foundation, either version 3 of the License, or (at your option) #\n+# any later version. #\n+# #\n+# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY #\n+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS #\n+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n+# details. #\n+# #\n+# You should have received a copy of the GNU Lesser General Public License #\n+# along with PyGithub. If not, see . #\n+# #\n+################################################################################\n+\n+import Framework\n+\n+import github\n+import datetime\n+\n+\n+class Status(Framework.TestCase):\n+ def testGetStatus(self):\n+ status = self.g.get_api_status()\n+ self.assertEqual(status.status, \"good\")\n+ self.assertEqual(status.last_updated, datetime.datetime(2013, 9, 6, 8, 29, 27))\n+\n+ def testGetLastMessage(self):\n+ message = self.g.get_last_api_status_message()\n+ self.assertEqual(message.status, \"good\")\n+ self.assertEqual(message.body, \"Everything operating normally.\")\n+ self.assertEqual(message.created_on, datetime.datetime(2013, 9, 1, 15, 41, 46))\n+\n+ def testGetMessages(self):\n+ self.assertListKeyEqual(self.g.get_api_status_messages(), lambda m: m.status, [\"good\", \"minor\", \"good\", \"minor\", \"good\", \"minor\", \"good\", \"minor\", \"good\", \"major\", \"good\", \"minor\"])"},{"sha":"3439c6f189e0bd05a747ff4c702518068fde7b3b","filename":"scripts/fix_headers.py","status":"modified","additions":2,"deletions":0,"changes":2,"blob_url":"https://github.com/jacquev6/PyGithub/blob/a6597499c2f82e063074a3036d875417d5efa296/scripts/fix_headers.py","raw_url":"https://github.com/jacquev6/PyGithub/raw/a6597499c2f82e063074a3036d875417d5efa296/scripts/fix_headers.py","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/scripts/fix_headers.py?ref=a6597499c2f82e063074a3036d875417d5efa296","patch":"@@ -132,6 +132,8 @@ def findHeadersAndFiles():\n dirs.remove(\".git\")\n if \"developer.github.com\" in dirs:\n dirs.remove(\"developer.github.com\")\n+ if \"build\" in dirs:\n+ dirs.remove(\"build\")\n \n for filename in files:\n fullname = os.path.join(root, filename)"}]} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/contentsREADME.rst +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4869'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '36bdc0ef-6149-4a8a-b4b5-3f8a82cf42aa'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '6577'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:39:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"bbffa70478199a10902bf5da76db3481"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:57 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"name":"README.rst","path":"README.rst","sha":"7b03e11cebcf910764a583dd8be5b6824046459b","size":4271,"url":"https://api.github.com/repos/jacquev6/PyGithub/contents/README.rst?ref=master","html_url":"https://github.com/jacquev6/PyGithub/blob/master/README.rst","git_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/7b03e11cebcf910764a583dd8be5b6824046459b","type":"file","content":"VGhpcyBpcyBhIFB5dGhvbiAoMiBhbmQgMykgbGlicmFyeSB0byBhY2Nlc3Mg\ndGhlIGBHaXRodWIgQVBJIHYzIDxodHRwOi8vZGV2ZWxvcGVyLmdpdGh1Yi5j\nb20vdjM+YF8uCldpdGggaXQsIHlvdSBjYW4gbWFuYWdlIHlvdXIgYEdpdGh1\nYiA8aHR0cDovL2dpdGh1Yi5jb20+YF8gcmVzb3VyY2VzIChyZXBvc2l0b3Jp\nZXMsIHVzZXIgcHJvZmlsZXMsIG9yZ2FuaXphdGlvbnMsIGV0Yy4pIGZyb20g\nUHl0aG9uIHNjcmlwdHMuCgpJdCBjb3ZlcnMgdGhlICoqZnVsbCoqIEFQSSAo\nZXhjZXB0IHJlY2VudCBhZGRpdGlvbnMsIHNlZSAiV2hhdCdzIG1pc3Npbmci\nIGJlbGxvdyksIGFuZCBhbGwgbWV0aG9kcyBhcmUgdGVzdGVkIGFnYWluc3Qg\ndGhlIHJlYWwgR2l0aHViIHNpdGUuCgpTaG91bGQgeW91IGhhdmUgYW55IHF1\nZXN0aW9uLCBhbnkgcmVtYXJrLCBvciBpZiB5b3UgZmluZCBhIGJ1Zywgb3Ig\naWYgdGhlcmUgaXMgc29tZXRoaW5nIHlvdSBjYW4gZG8gd2l0aCB0aGUgQVBJ\nIGJ1dCBub3Qgd2l0aCBQeUdpdGh1YiwgcGxlYXNlIGBvcGVuIGFuIGlzc3Vl\nIDxodHRwczovL2dpdGh1Yi5jb20vamFjcXVldjYvUHlHaXRodWIvaXNzdWVz\nPmBfLgoKUHlHaXRodWIgaXMgc3RhYmxlLiBJIHdpbGwgbWFpbnRhaW4gaXQg\ndXAgdG8gZGF0ZSB3aXRoIHRoZSBBUEksIGFuZCBmaXggYnVncyBpZiBhbnks\nIGJ1dCBJIGRvbid0IHBsYW4gbmV3IGhlYXZ5IGRldmVsb3BtZW50cy4KCldo\nYXQncyBuZXc/Cj09PT09PT09PT09CgoKYFZlcnNpb24gMS4xOC4wIDxodHRw\nczovL2dpdGh1Yi5jb20vamFjcXVldjYvUHlHaXRodWIvaXNzdWVzP21pbGVz\ndG9uZT0zMCZzdGF0ZT1jbG9zZWQ+YF8gKEF1Z3VzdCAyMXN0LCAyMDEzKSAo\nQsOpbm9kZXQgZWRpdGlvbikKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLQoKKiBgSXNzdWVzIDxodHRwczovL2dpdGh1Yi5jb20vamFj\ncXVldjYvUHlHaXRodWIvcHVsbC8xODE+YF8nIGBgcmVwb3NpdG9yeWBgIGF0\ndHJpYnV0ZSB3aWxsIG5ldmVyIGJlIGBgTm9uZWBgLiBUaGFuayB5b3UgYHN0\ndWdsYXNlciA8aHR0cHM6Ly9naXRodWIuY29tL3N0dWdsYXNlcj5gXyBmb3Ig\ndGhlIHB1bGwgcmVxdWVzdAoqIE5vIG1vcmUgZmFsc2UgYXNzdW1wdGlvbiBv\nbiBgcmF0ZV9saW1pdGluZyA8aHR0cHM6Ly9naXRodWIuY29tL2phY3F1ZXY2\nL1B5R2l0aHViL3B1bGwvMTg2PmBfLCBhbmQgY3JlYXRpb24gb2YgYGByYXRl\nX2xpbWl0aW5nX3Jlc2V0dGltZWBgLiBUaGFuayB5b3UgYGVkamFja3NvbiA8\naHR0cHM6Ly9naXRodWIuY29tL2VkamFja3Nvbj5gXyBmb3IgdGhlIHB1bGwg\ncmVxdWVzdAoqIGBOZXcgPGh0dHBzOi8vZ2l0aHViLmNvbS9qYWNxdWV2Ni9Q\neUdpdGh1Yi9wdWxsLzE4Nz5gXyBwYXJhbWV0ZXJzIGBgc2luY2VgYCBhbmQg\nYGB1bnRpbGBgIHRvIGBgUmVwb3NpdG9yeS5nZXRfY29tbWl0c2BgLiBUaGFu\nayB5b3UgYGFwZXRyZXNjIDxodHRwczovL2dpdGh1Yi5jb20vYXBldHJlc2M+\nYF8gZm9yIHRoZSBwdWxsIHJlcXVlc3QKKiBgQ2F0Y2ggPGh0dHBzOi8vZ2l0\naHViLmNvbS9qYWNxdWV2Ni9QeUdpdGh1Yi9wdWxsLzE4Mj5gXyBKc29uIHBh\ncnNpbmcgZXhjZXB0aW9uIGZvciBzb21lIGludGVybmFsIHNlcnZlciBlcnJv\ncnMsIGFuZCB0aHJvdyBhIGJldHRlciBleGNlcHRpb24uIFRoYW5rIHlvdSBg\nTWFya1JvZGR5IDxodHRwczovL2dpdGh1Yi5jb20vTWFya1JvZGR5PmBfIGZv\nciB0aGUgcHVsbCByZXF1ZXN0CiogYEFsbG93IDxodHRwczovL2dpdGh1Yi5j\nb20vamFjcXVldjYvUHlHaXRodWIvcHVsbC8xODQ+YF8gcmV2ZXJzZWQgaXRl\ncmF0aW9uIG9mIGBgUGFnaW5hdGVkTGlzdGBgcy4gVGhhbmsgeW91IGBkYXZp\nZGJyYWkgPGh0dHBzOi8vZ2l0aHViLmNvbS9kYXZpZGJyYWk+YF8gZm9yIHRo\nZSBwdWxsIHJlcXVlc3QKCldoYXQncyBtaXNzaW5nPwo9PT09PT09PT09PT09\nPT0KCldlIG5vdyBoYXZlIGF1dG9tYXRlZCB3YXlzIHRvIGxpc3QgVVJMcyBk\nb2N1bWVudGVkIGluIGB0aGUgcmVmZXJlbmNlIG9mIEdpdGh1YiBBUEkgdjMg\nPGh0dHA6Ly9kZXZlbG9wZXIuZ2l0aHViLmNvbT5gXyBhbmQgbm90IGNvdmVy\nZWQgYnkgUHlHaXRodWIuCgpHaXRodWIgQVBJIHYzIFVSTHMgbm90ICh5ZXQp\nIGNvdmVyZWQgYnkgUHlHaXRodWIKLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0t\nLS0tLS0tLS0tLS0tLS0tLS0tLS0tLS0tCgoqIGBgL2FwcGxpY2F0aW9ucy86\nY2xpZW50X2lkL3Rva2Vucy86YWNjZXNzX3Rva2VuYGAgKEdFVCkKKiBgYC9m\nZWVkc2BgIChHRVQpCiogYGAvZ2lzdHMvOmlkL2ZvcmtzYGAgKFBPU1QpCgog\nICogaW5zdGVhZCwgYGBHaXN0LmNyZWF0ZV9mb3JrYGAgY2FsbHMgdGhlIG9s\nZCBVUkwgYGAvZ2lzdHMvOmlkL2ZvcmtgYAoKKiBgYC9tZXRhYGAgKEdFVCkK\nKiBgYC9ub3RpZmljYXRpb25zYGAgKFBVVCkKKiBgYC9ub3RpZmljYXRpb25z\nL2VtYWlsc2BgIChHRVQpCiogYGAvbm90aWZpY2F0aW9ucy9lbWFpbHNgYCAo\nUEFUQ0gpCiogYGAvbm90aWZpY2F0aW9ucy9nbG9iYWwvZW1haWxzYGAgKEdF\nVCkKKiBgYC9ub3RpZmljYXRpb25zL2dsb2JhbC9lbWFpbHNgYCAoUFVUKQoq\nIGBgL25vdGlmaWNhdGlvbnMvb3JnYW5pemF0aW9uLzpvcmcvZW1haWxzYGAg\nKEdFVCkKKiBgYC9ub3RpZmljYXRpb25zL29yZ2FuaXphdGlvbi86b3JnL2Vt\nYWlsc2BgIChQVVQpCiogYGAvbm90aWZpY2F0aW9ucy9zZXR0aW5nc2BgIChH\nRVQpCiogYGAvbm90aWZpY2F0aW9ucy9zZXR0aW5nc2BgIChQQVRDSCkKKiBg\nYC9ub3RpZmljYXRpb25zL3RocmVhZHMvOmlkYGAgKFBBVENIKQoqIGBgL25v\ndGlmaWNhdGlvbnMvdGhyZWFkcy86aWQvc3Vic2NyaXB0aW9uYGAgKERFTEVU\nRSkKKiBgYC9ub3RpZmljYXRpb25zL3RocmVhZHMvOmlkL3N1YnNjcmlwdGlv\nbmBgIChHRVQpCiogYGAvbm90aWZpY2F0aW9ucy90aHJlYWRzLzppZC9zdWJz\nY3JpcHRpb25gYCAoUFVUKQoqIGBgL3JhdGVfbGltaXRgYCAoR0VUKQoKICAq\nIHNob3VsZCBiZSBjYWxsZWQgaW4gbWV0aG9kIGBgR2l0aHViLmdldF9yYXRl\nX2xpbWl0YGAuIFNlZSBhbHNvIGBgR2l0aHViLnJhdGVfbGltaXRpbmdgYAoK\nKiBgYC9yZXBvcy86b3duZXIvOnJlcG8vY29udGVudHMvOnBhdGhgYCAoREVM\nRVRFKQoqIGBgL3JlcG9zLzpvd25lci86cmVwby9jb250ZW50cy86cGF0aGBg\nIChQVVQpCiogYGAvcmVwb3MvOm93bmVyLzpyZXBvL2hvb2tzLzppZC90ZXN0\nc2BgIChQT1NUKQoKICAqIGluc3RlYWQsIGBgSG9vay50ZXN0YGAgY2FsbHMg\ndGhlIG9sZCBVUkwgYGAvcmVwb3MvOm93bmVyLzpyZXBvL2hvb2tzLzppZC90\nZXN0YGAKCiogYGAvcmVwb3MvOm93bmVyLzpyZXBvL25vdGlmaWNhdGlvbnNg\nYCAoR0VUKQoqIGBgL3JlcG9zLzpvd25lci86cmVwby9ub3RpZmljYXRpb25z\nYGAgKFBVVCkKKiBgYC9yZXBvcy86b3duZXIvOnJlcG8vc3RhdHMvY29kZV9m\ncmVxdWVuY3lgYCAoR0VUKQoqIGBgL3JlcG9zLzpvd25lci86cmVwby9zdGF0\ncy9jb21taXRfYWN0aXZpdHlgYCAoR0VUKQoqIGBgL3JlcG9zLzpvd25lci86\ncmVwby9zdGF0cy9jb250cmlidXRvcnNgYCAoR0VUKQoqIGBgL3JlcG9zLzpv\nd25lci86cmVwby9zdGF0cy9wYXJ0aWNpcGF0aW9uYGAgKEdFVCkKKiBgYC9y\nZXBvcy86b3duZXIvOnJlcG8vc3RhdHMvcHVuY2hfY2FyZGBgIChHRVQpCiog\nYGAvcmVwb3MvOm93bmVyLzpyZXBvL3N1YnNjcmlwdGlvbmBgIChERUxFVEUp\nCiogYGAvcmVwb3MvOm93bmVyLzpyZXBvL3N1YnNjcmlwdGlvbmBgIChHRVQp\nCiogYGAvcmVwb3MvOm93bmVyLzpyZXBvL3N1YnNjcmlwdGlvbmBgIChQVVQp\nCiogYGAvcmVwb3NpdG9yaWVzYGAgKEdFVCkKCiAgKiBzaG91bGQgYmUgY2Fs\nbGVkIGluIG1ldGhvZCBgYEdpdGh1Yi5nZXRfcmVwb3NgYAoKKiBgYC9zZWFy\nY2gvY29kZWBgIChHRVQpCiogYGAvc2VhcmNoL2lzc3Vlc2BgIChHRVQpCiog\nYGAvc2VhcmNoL3JlcG9zaXRvcmllc2BgIChHRVQpCiogYGAvc2VhcmNoL3Vz\nZXJzYGAgKEdFVCkKKiBgYC91c2Vycy86dXNlci9mb2xsb3dpbmcvOnRhcmdl\ndF91c2VyYGAgKEdFVCkKCiAgKiBzaG91bGQgYmUgY2FsbGVkIGluIG1ldGhv\nZCBgYE5hbWVkVXNlci5oYXNfaW5fZm9sbG93aW5nYGAKCkRvY3VtZW50YXRp\nb24KPT09PT09PT09PT09PQoKQWxsIHRoZSBkb2N1bWVudGF0aW9uIGlzIGhl\ncmU6IGh0dHA6Ly9qYWNxdWV2Ni5naXRodWIuY29tL1B5R2l0aHViLgo=\n","encoding":"base64","_links":{"self":"https://api.github.com/repos/jacquev6/PyGithub/contents/README.rst?ref=master","git":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs/7b03e11cebcf910764a583dd8be5b6824046459b","html":"https://github.com/jacquev6/PyGithub/blob/master/README.rst"}} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/events +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4868'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'aad86338-b4d2-44ad-b094-37965f99ed02'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '150840'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:05 GMT'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"815ffb5687c4d26df4a1e81e5de3ac7e"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:05:58 GMT'), ('access-control-allow-origin', '*'), ('x-poll-interval', '60'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +[{"id":"1823555573","type":"DeleteEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"ref":"topic/ImproveDocumentation","ref_type":"branch"},"public":true,"created_at":"2013-09-06T12:41:05Z"},{"id":"1823554600","type":"DeleteEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"ref":"topic/SpecificExceptions","ref_type":"branch"},"public":true,"created_at":"2013-09-06T12:39:45Z"},{"id":"1823452056","type":"IssueCommentEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/163","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/163/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/163/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/163/events","html_url":"https://github.com/jacquev6/PyGithub/issues/163","id":13924435,"number":163,"title":"Looking to help out","user":{"login":"shercoder","id":1681066,"avatar_url":"https://1.gravatar.com/avatar/3bc7caad2383726988f7834c6800f7f9?d=https%3A%2F%2Fidenticons.github.com%2F902797e4e8c74be19dce4e4640f8b455.png","gravatar_id":"3bc7caad2383726988f7834c6800f7f9","url":"https://api.github.com/users/shercoder","html_url":"https://github.com/shercoder","followers_url":"https://api.github.com/users/shercoder/followers","following_url":"https://api.github.com/users/shercoder/following{/other_user}","gists_url":"https://api.github.com/users/shercoder/gists{/gist_id}","starred_url":"https://api.github.com/users/shercoder/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shercoder/subscriptions","organizations_url":"https://api.github.com/users/shercoder/orgs","repos_url":"https://api.github.com/users/shercoder/repos","events_url":"https://api.github.com/users/shercoder/events{/privacy}","received_events_url":"https://api.github.com/users/shercoder/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","name":"Question","color":"02e10c"}],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/28","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/28/labels","id":358501,"number":28,"title":"Issues assigned to volunteers","description":"This (fake) milestone groups all issues on which a volunteer is working.","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":3,"closed_issues":0,"state":"open","created_at":"2013-06-18T20:42:13Z","updated_at":"2013-08-20T21:27:13Z","due_on":null},"comments":3,"created_at":"2013-05-03T07:39:10Z","updated_at":"2013-09-06T10:04:19Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Hey my friend introduced me to your project and we have already started to use it in our small projects.I am looking to help out. Is there anything that i can do to help out in your project. If there is anything that I can help you with, please let me know. Thank you"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23930309","html_url":"https://github.com/jacquev6/PyGithub/issues/163#issuecomment-23930309","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/163","id":23930309,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-09-06T10:04:19Z","updated_at":"2013-09-06T10:04:19Z","body":"Update: some missing functionalities are now listed in [README.rst](https://github.com/jacquev6/PyGithub/blob/master/README.rst)"}},"public":true,"created_at":"2013-09-06T10:04:19Z"},{"id":"1823450347","type":"IssueCommentEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/179","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/179/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/179/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/179/events","html_url":"https://github.com/jacquev6/PyGithub/pull/179","id":15885976,"number":179,"title":"Automatic rety, empty repo handling and updated arguments for get_commits","user":{"login":"wcdolphin","id":446889,"avatar_url":"https://1.gravatar.com/avatar/3202f845a8cafe9729d397649dfadd3a?d=https%3A%2F%2Fidenticons.github.com%2F37f8d4e8ebdd8ce92fbb3503fe9aa31a.png","gravatar_id":"3202f845a8cafe9729d397649dfadd3a","url":"https://api.github.com/users/wcdolphin","html_url":"https://github.com/wcdolphin","followers_url":"https://api.github.com/users/wcdolphin/followers","following_url":"https://api.github.com/users/wcdolphin/following{/other_user}","gists_url":"https://api.github.com/users/wcdolphin/gists{/gist_id}","starred_url":"https://api.github.com/users/wcdolphin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wcdolphin/subscriptions","organizations_url":"https://api.github.com/users/wcdolphin/orgs","repos_url":"https://api.github.com/users/wcdolphin/repos","events_url":"https://api.github.com/users/wcdolphin/events{/privacy}","received_events_url":"https://api.github.com/users/wcdolphin/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/28","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/28/labels","id":358501,"number":28,"title":"Issues assigned to volunteers","description":"This (fake) milestone groups all issues on which a volunteer is working.","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":3,"closed_issues":0,"state":"open","created_at":"2013-06-18T20:42:13Z","updated_at":"2013-08-20T21:27:13Z","due_on":null},"comments":3,"created_at":"2013-06-22T15:59:01Z","updated_at":"2013-09-06T10:02:07Z","closed_at":null,"pull_request":{"html_url":"https://github.com/jacquev6/PyGithub/pull/179","diff_url":"https://github.com/jacquev6/PyGithub/pull/179.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/179.patch"},"body":"This PR adds:\r\n1. Automatic retrying on failure of an idempotent request, up to a default of 5 times.\r\n2. Handling and raising of EmptyRepositoryException which can be emitted by a call to get_commits\r\n3. Updated arguments for Repository.get_commits, reflecting the url_params for Github API V3\r\n\r\nPlease let me know if you have any feedback on style, etc. I will happily address. \r\n "},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23930203","html_url":"https://github.com/jacquev6/PyGithub/pull/179#issuecomment-23930203","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/179","id":23930203,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-09-06T10:02:07Z","updated_at":"2013-09-06T10:02:07Z","body":"Hello @wcdolphin,\r\n\r\ndo you still plan to work on this? If not, it's not a problem. I ask you this now because I'm going to have time to do it on my side in the coming days.\r\n\r\nThanks,"}},"public":true,"created_at":"2013-09-06T10:02:07Z"},{"id":"1823413095","type":"IssuesEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"closed","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/events","html_url":"https://github.com/jacquev6/PyGithub/issues/188","id":17736533,"number":188,"title":"Getting the status of GitHub","user":{"login":"ruxandraburtica","id":797922,"avatar_url":"https://2.gravatar.com/avatar/5703c5907fc67b679be40fd307b07733?d=https%3A%2F%2Fidenticons.github.com%2F470a720db37e19afad67c34e30ffcd85.png","gravatar_id":"5703c5907fc67b679be40fd307b07733","url":"https://api.github.com/users/ruxandraburtica","html_url":"https://github.com/ruxandraburtica","followers_url":"https://api.github.com/users/ruxandraburtica/followers","following_url":"https://api.github.com/users/ruxandraburtica/following{/other_user}","gists_url":"https://api.github.com/users/ruxandraburtica/gists{/gist_id}","starred_url":"https://api.github.com/users/ruxandraburtica/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruxandraburtica/subscriptions","organizations_url":"https://api.github.com/users/ruxandraburtica/orgs","repos_url":"https://api.github.com/users/ruxandraburtica/repos","events_url":"https://api.github.com/users/ruxandraburtica/events{/privacy}","received_events_url":"https://api.github.com/users/ruxandraburtica/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":1,"closed_issues":3,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-06T09:11:57Z","due_on":null},"comments":2,"created_at":"2013-08-07T08:57:49Z","updated_at":"2013-09-06T09:11:57Z","closed_at":"2013-09-06T09:11:57Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Maybe I haven't found it, but it would be very useful to have methods for checking the status of the GitHub API (https://status.github.com/api)"}},"public":true,"created_at":"2013-09-06T09:11:58Z"},{"id":"1823413094","type":"IssueCommentEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/events","html_url":"https://github.com/jacquev6/PyGithub/issues/188","id":17736533,"number":188,"title":"Getting the status of GitHub","user":{"login":"ruxandraburtica","id":797922,"avatar_url":"https://2.gravatar.com/avatar/5703c5907fc67b679be40fd307b07733?d=https%3A%2F%2Fidenticons.github.com%2F470a720db37e19afad67c34e30ffcd85.png","gravatar_id":"5703c5907fc67b679be40fd307b07733","url":"https://api.github.com/users/ruxandraburtica","html_url":"https://github.com/ruxandraburtica","followers_url":"https://api.github.com/users/ruxandraburtica/followers","following_url":"https://api.github.com/users/ruxandraburtica/following{/other_user}","gists_url":"https://api.github.com/users/ruxandraburtica/gists{/gist_id}","starred_url":"https://api.github.com/users/ruxandraburtica/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruxandraburtica/subscriptions","organizations_url":"https://api.github.com/users/ruxandraburtica/orgs","repos_url":"https://api.github.com/users/ruxandraburtica/repos","events_url":"https://api.github.com/users/ruxandraburtica/events{/privacy}","received_events_url":"https://api.github.com/users/ruxandraburtica/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":1,"closed_issues":3,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-06T09:11:57Z","due_on":null},"comments":2,"created_at":"2013-08-07T08:57:49Z","updated_at":"2013-09-06T09:11:57Z","closed_at":"2013-09-06T09:11:57Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Maybe I haven't found it, but it would be very useful to have methods for checking the status of the GitHub API (https://status.github.com/api)"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23927975","html_url":"https://github.com/jacquev6/PyGithub/issues/188#issuecomment-23927975","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188","id":23927975,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-09-06T09:11:57Z","updated_at":"2013-09-06T09:11:57Z","body":"Done, will be in next release!"}},"public":true,"created_at":"2013-09-06T09:11:58Z"},{"id":"1823408513","type":"PushEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"push_id":225103902,"size":5,"distinct_size":5,"ref":"refs/heads/develop","head":"a6597499c2f82e063074a3036d875417d5efa296","before":"1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d","commits":[{"sha":"dc610dfaac50dd5bbbd572986cda35f6729aee5b","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Small fixes and todos","distinct":true,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc610dfaac50dd5bbbd572986cda35f6729aee5b"},{"sha":"2081675afbfed404f6a580bce0ec363bebbfd98b","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Fix doc generation","distinct":true,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2081675afbfed404f6a580bce0ec363bebbfd98b"},{"sha":"f2feb81dae1b28af80c559db7328f2d6fe017911","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Add default parameters to greatly reduce code redoundancy","distinct":true,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2feb81dae1b28af80c559db7328f2d6fe017911"},{"sha":"c819580ce872f251e8ec23deee95d9fb15ca19c9","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Get status of Github API (#188)","distinct":true,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c819580ce872f251e8ec23deee95d9fb15ca19c9"},{"sha":"a6597499c2f82e063074a3036d875417d5efa296","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Merge branch 'topic/ApiStatus' into develop","distinct":true,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a6597499c2f82e063074a3036d875417d5efa296"}]},"public":true,"created_at":"2013-09-06T09:05:12Z"},{"id":"1823374294","type":"PullRequestEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"closed","number":193,"pull_request":{"url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/193","id":7785326,"html_url":"https://github.com/jacquev6/PyGithub/pull/193","diff_url":"https://github.com/jacquev6/PyGithub/pull/193.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/193.patch","issue_url":"https://github.com/jacquev6/PyGithub/pull/193","number":193,"state":"closed","title":"Add Conditional Request and Data Persistence Support Alternative Solution","user":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"body":"An alternative solution to pull request #189 based on #192. I am making this new pull request for clarity.\r\nChange List\r\n---------------\r\n1. Add support to [Conditional Request](http://developer.github.com/guides/getting-started/#conditional-requests) API.\r\n * Add ```GithubObject.etag``` property\r\n * Add ```GithubObject.last_modified``` property\r\n * Modify ```Requester``` class to handle 304 response code\r\n * Modify ```Requester``` class to enable making conditional request\r\n * Add ```NotModifiedException``` class for 304 response code\r\n * Add ```GithubObject.update()``` method\r\n * Add a few private helper methods to make this work\r\n2. Add methods for Data Persistence\r\n * Add ```GithubObject.save(file_fname)``` method\r\n * Add ```GithubObject.load(file_fname)``` class method\r\n3. Test class for conditional request\r\n\r\nUsage\r\n---------------\r\n```python\r\n# Get remote issue list and cache locally when syncing\r\nfor issue in repo.get_issues():\r\n issue.save(local_file_path)\r\n\r\n# Offline use/Quick restore previous work state\r\nfor local_file_path in cache.get_files():\r\n cached_issue = issue.load(local_file_path)\r\n #do something with it\r\n\r\n# And check for update when needed\r\nif (cached_issue.update()):\r\n print \"Issue synced“\r\n\r\n```","created_at":"2013-08-22T10:14:26Z","updated_at":"2013-09-06T08:15:35Z","closed_at":"2013-09-06T08:15:35Z","merged_at":null,"merge_commit_sha":"de0e83166f4cc5d6cb177b12b313bb0844e89a12","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":2,"closed_issues":2,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-06T08:15:35Z","due_on":null},"commits_url":"https://github.com/jacquev6/PyGithub/pull/193/commits","review_comments_url":"https://github.com/jacquev6/PyGithub/pull/193/comments","review_comment_url":"/repos/jacquev6/PyGithub/pulls/comments/{number}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/comments","head":{"label":"akfish:NewFix","ref":"NewFix","sha":"ebbfec86a2fb352cc08e3595a6b58fa1ccccc111","user":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"repo":{"id":12156762,"name":"PyGithub","full_name":"akfish/PyGithub","owner":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"private":false,"html_url":"https://github.com/akfish/PyGithub","description":"Python library implementing the full Github API v3 - AKFish Fork","fork":true,"url":"https://api.github.com/repos/akfish/PyGithub","forks_url":"https://api.github.com/repos/akfish/PyGithub/forks","keys_url":"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akfish/PyGithub/teams","hooks_url":"https://api.github.com/repos/akfish/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/akfish/PyGithub/events","assignees_url":"https://api.github.com/repos/akfish/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/akfish/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/akfish/PyGithub/tags","blobs_url":"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/akfish/PyGithub/languages","stargazers_url":"https://api.github.com/repos/akfish/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/akfish/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/akfish/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/akfish/PyGithub/subscription","commits_url":"https://api.github.com/repos/akfish/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/akfish/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/akfish/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akfish/PyGithub/merges","archive_url":"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akfish/PyGithub/downloads","issues_url":"https://api.github.com/repos/akfish/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/akfish/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/akfish/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akfish/PyGithub/labels{/name}","created_at":"2013-08-16T10:56:11Z","updated_at":"2013-09-06T08:15:35Z","pushed_at":"2013-08-27T11:14:27Z","git_url":"git://github.com/akfish/PyGithub.git","ssh_url":"git@github.com:akfish/PyGithub.git","clone_url":"https://github.com/akfish/PyGithub.git","svn_url":"https://github.com/akfish/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7340,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":1,"mirror_url":null,"open_issues_count":0,"forks":1,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master"}},"base":{"label":"jacquev6:develop","ref":"develop","sha":"ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","user":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"repo":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-09-06T08:12:07Z","pushed_at":"2013-09-06T08:12:06Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":828,"watchers_count":256,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":76,"mirror_url":null,"open_issues_count":16,"forks":76,"open_issues":16,"watchers":256,"master_branch":"master","default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/193"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/193"},"issue":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/193"},"comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/comments"},"review_comments":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/193/comments"}},"merged":false,"mergeable":false,"mergeable_state":"dirty","merged_by":null,"comments":12,"review_comments":1,"commits":40,"additions":1669,"deletions":45,"changed_files":41}},"public":true,"created_at":"2013-09-06T08:15:35Z"},{"id":"1823374292","type":"IssueCommentEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/events","html_url":"https://github.com/jacquev6/PyGithub/pull/193","id":18404629,"number":193,"title":"Add Conditional Request and Data Persistence Support Alternative Solution","user":{"login":"akfish","id":922715,"avatar_url":"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"labels":[],"state":"closed","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":2,"closed_issues":2,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-06T08:15:35Z","due_on":null},"comments":12,"created_at":"2013-08-22T10:14:26Z","updated_at":"2013-09-06T08:15:35Z","closed_at":"2013-09-06T08:15:35Z","pull_request":{"html_url":"https://github.com/jacquev6/PyGithub/pull/193","diff_url":"https://github.com/jacquev6/PyGithub/pull/193.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/193.patch"},"body":"An alternative solution to pull request #189 based on #192. I am making this new pull request for clarity.\r\nChange List\r\n---------------\r\n1. Add support to [Conditional Request](http://developer.github.com/guides/getting-started/#conditional-requests) API.\r\n * Add ```GithubObject.etag``` property\r\n * Add ```GithubObject.last_modified``` property\r\n * Modify ```Requester``` class to handle 304 response code\r\n * Modify ```Requester``` class to enable making conditional request\r\n * Add ```NotModifiedException``` class for 304 response code\r\n * Add ```GithubObject.update()``` method\r\n * Add a few private helper methods to make this work\r\n2. Add methods for Data Persistence\r\n * Add ```GithubObject.save(file_fname)``` method\r\n * Add ```GithubObject.load(file_fname)``` class method\r\n3. Test class for conditional request\r\n\r\nUsage\r\n---------------\r\n```python\r\n# Get remote issue list and cache locally when syncing\r\nfor issue in repo.get_issues():\r\n issue.save(local_file_path)\r\n\r\n# Offline use/Quick restore previous work state\r\nfor local_file_path in cache.get_files():\r\n cached_issue = issue.load(local_file_path)\r\n #do something with it\r\n\r\n# And check for update when needed\r\nif (cached_issue.update()):\r\n print \"Issue synced“\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23925438","html_url":"https://github.com/jacquev6/PyGithub/pull/193#issuecomment-23925438","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","id":23925438,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-09-06T08:15:35Z","updated_at":"2013-09-06T08:15:35Z","body":"I'm glad it suits your needs, I've just merged conditional requests and persistence in the `develop` branch. It will be in next release, probably this week-end.\r\n\r\nIt has been a pleasure to collaborate with you, thank you :-)"}},"public":true,"created_at":"2013-09-06T08:15:35Z"},{"id":"1823372143","type":"DeleteEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"ref":"topic/ConditionalRequest","ref_type":"branch"},"public":true,"created_at":"2013-09-06T08:12:07Z"},{"id":"1823371399","type":"PushEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"push_id":225082808,"size":28,"distinct_size":4,"ref":"refs/heads/develop","head":"1d0ba7ef6461ccdd25af74bfed61d3ceb5bc926d","before":"ba5b0d5ea93d362ecd8b5a91701a9c62c385d008","commits":[{"sha":"b71329e560795a4df84cb419178ef660824f4c0d","author":{"email":"akfish@gmail.com","name":"AKFish"},"message":"Implement data persistence","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b71329e560795a4df84cb419178ef660824f4c0d"},{"sha":"bd7abb58772ae1a61fd7eb44308a3a2f60432ad6","author":{"email":"akfish@gmail.com","name":"AKFish"},"message":"Add update() method","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bd7abb58772ae1a61fd7eb44308a3a2f60432ad6"},{"sha":"1e9ec2df089973db73aaf99b4ef147efd4614e7c","author":{"email":"akfish@gmail.com","name":"AKFish"},"message":"Add NotModifiedException class","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1e9ec2df089973db73aaf99b4ef147efd4614e7c"},{"sha":"6fd05baf6bea732dd846e08c40891c28060e7c64","author":{"email":"akfish@gmail.com","name":"AKFish"},"message":"Handle response code 304","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6fd05baf6bea732dd846e08c40891c28060e7c64"},{"sha":"5b09f6c82191601cad92076ad4761fe927c511ed","author":{"email":"akfish@gmail.com","name":"AKFish"},"message":"Implement conditional request","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b09f6c82191601cad92076ad4761fe927c511ed"},{"sha":"70a7e9c83dec2bf6b549dc5c77d30b53afb32457","author":{"email":"akfish@gmail.com","name":"AKFish"},"message":"Fix update","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/70a7e9c83dec2bf6b549dc5c77d30b53afb32457"},{"sha":"d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7","author":{"email":"akfish@gmail.com","name":"AKFish"},"message":"Add test record helper","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d457afd23ccb47d9f30f09a6ca2a8e32f17dccc7"},{"sha":"c7593e84c4a92a044b717b7311c2b6ad8d9a5917","author":{"email":"akfish@gmail.com","name":"AKFish"},"message":"Add test case for conditional request","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c7593e84c4a92a044b717b7311c2b6ad8d9a5917"},{"sha":"cc1bcd5f2da1982a0836a488cf321d363bfcf5b5","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Merge branch 'develop' into topic/ConditionalRequest\n\nConflicts:\n\t.gitignore\n\tgithub/Requester.py","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cc1bcd5f2da1982a0836a488cf321d363bfcf5b5"},{"sha":"1787765a61958617d47e764a0bea2acd70c84f72","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Review of #189: use dict.get\n\nhttp://docs.python.org/2/library/stdtypes.html#dict.get","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1787765a61958617d47e764a0bea2acd70c84f72"},{"sha":"0f74e4389b3c0fa57a83083ecfbbf5c331022674","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Review of #189: pep8, copyrights, style, remarks\n\nFor remarks, run: git grep \"#189\"\nThey are only my first thoughts while reviewing this pull request,\nand should be reviewed themselves.","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0f74e4389b3c0fa57a83083ecfbbf5c331022674"},{"sha":"fb7325884ee0b8ae73f47bf13c6f36cacbc3131c","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Fix remarks on #189 to #193","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb7325884ee0b8ae73f47bf13c6f36cacbc3131c"},{"sha":"0413c87c12e688fb4fc38d978a2f275ef791cd48","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Remove _record_.py (#193)\n\nAccording to https://github.com/jacquev6/PyGithub/commit/0f74e4389b3c0fa57a83083ecfbbf5c331022674#commitcomment-3919786","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0413c87c12e688fb4fc38d978a2f275ef791cd48"},{"sha":"bc3b819ac554a2132427c9ffe629ef371511213e","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Separate tests for conditional requests (#193)","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bc3b819ac554a2132427c9ffe629ef371511213e"},{"sha":"bae0a37d180a4b224c6aa808d03722908109c57d","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"#193: Don't use a try-except for a usual execution flow in GithubObject.update\n\n(and factorize assignment of headers in _storeAndUseAttributes,\nas done for rawData)","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bae0a37d180a4b224c6aa808d03722908109c57d"},{"sha":"03d7fb012e9d032165c43f93a4c67bc29af9366f","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"#193: Add remarks","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/03d7fb012e9d032165c43f93a4c67bc29af9366f"},{"sha":"64cf539c83174f95b3410c7decd2549424385ce1","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"#193: Add a param to Requester.requestXxx for request headers","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/64cf539c83174f95b3410c7decd2549424385ce1"},{"sha":"e084b5138106d4ad371a69ca9519862f09c855ae","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"#193: Fix test coverage","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e084b5138106d4ad371a69ca9519862f09c855ae"},{"sha":"020a3c9917f42d98c1761527825061d2db8352fd","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Move method update to CompletableGithubObject","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/020a3c9917f42d98c1761527825061d2db8352fd"},{"sha":"fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Move the DEBUG_ON_RESPONSE call to Requester.__requestEncode","distinct":false,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb6980ce36766e4dd1ab03b48ac4b5adf876dc84"}]},"public":true,"created_at":"2013-09-06T08:10:53Z"},{"id":"1823216085","type":"IssueCommentEvent","actor":{"id":922715,"login":"akfish","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","avatar_url":"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/events","html_url":"https://github.com/jacquev6/PyGithub/pull/193","id":18404629,"number":193,"title":"Add Conditional Request and Data Persistence Support Alternative Solution","user":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"labels":[],"state":"open","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":3,"closed_issues":1,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-04T13:41:07Z","due_on":null},"comments":11,"created_at":"2013-08-22T10:14:26Z","updated_at":"2013-09-06T02:24:06Z","closed_at":null,"pull_request":{"html_url":"https://github.com/jacquev6/PyGithub/pull/193","diff_url":"https://github.com/jacquev6/PyGithub/pull/193.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/193.patch"},"body":"An alternative solution to pull request #189 based on #192. I am making this new pull request for clarity.\r\nChange List\r\n---------------\r\n1. Add support to [Conditional Request](http://developer.github.com/guides/getting-started/#conditional-requests) API.\r\n * Add ```GithubObject.etag``` property\r\n * Add ```GithubObject.last_modified``` property\r\n * Modify ```Requester``` class to handle 304 response code\r\n * Modify ```Requester``` class to enable making conditional request\r\n * Add ```NotModifiedException``` class for 304 response code\r\n * Add ```GithubObject.update()``` method\r\n * Add a few private helper methods to make this work\r\n2. Add methods for Data Persistence\r\n * Add ```GithubObject.save(file_fname)``` method\r\n * Add ```GithubObject.load(file_fname)``` class method\r\n3. Test class for conditional request\r\n\r\nUsage\r\n---------------\r\n```python\r\n# Get remote issue list and cache locally when syncing\r\nfor issue in repo.get_issues():\r\n issue.save(local_file_path)\r\n\r\n# Offline use/Quick restore previous work state\r\nfor local_file_path in cache.get_files():\r\n cached_issue = issue.load(local_file_path)\r\n #do something with it\r\n\r\n# And check for update when needed\r\nif (cached_issue.update()):\r\n print \"Issue synced“\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23915193","html_url":"https://github.com/jacquev6/PyGithub/pull/193#issuecomment-23915193","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","id":23915193,"user":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"created_at":"2013-09-06T02:24:06Z","updated_at":"2013-09-06T02:24:06Z","body":"Well, never mind my previous comments. I think your implementation will work nicely.\r\nThough the pickle format cross-version compatibility still troubles me. I will try it out with some projects and see if a more flexible serialization mechanism (i.e. let developer specify which serializer to use, pickle, JSON, XML and etc) is necessary. \r\nFor now I am happy with that. Thanks."}},"public":true,"created_at":"2013-09-06T02:24:07Z"},{"id":"1823212876","type":"ForkEvent","actor":{"id":1676891,"login":"wadewilliams","gravatar_id":"21a241aa10ee457a5f6b72aca98a4860","url":"https://api.github.com/users/wadewilliams","avatar_url":"https://1.gravatar.com/avatar/21a241aa10ee457a5f6b72aca98a4860?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"forkee":{"id":12633886,"name":"PyGithub","full_name":"wadewilliams/PyGithub","owner":{"login":"wadewilliams","id":1676891,"avatar_url":"https://0.gravatar.com/avatar/21a241aa10ee457a5f6b72aca98a4860?d=https%3A%2F%2Fidenticons.github.com%2F49f04213eb6f9bbf8e6ec031c55c4e31.png","gravatar_id":"21a241aa10ee457a5f6b72aca98a4860","url":"https://api.github.com/users/wadewilliams","html_url":"https://github.com/wadewilliams","followers_url":"https://api.github.com/users/wadewilliams/followers","following_url":"https://api.github.com/users/wadewilliams/following{/other_user}","gists_url":"https://api.github.com/users/wadewilliams/gists{/gist_id}","starred_url":"https://api.github.com/users/wadewilliams/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wadewilliams/subscriptions","organizations_url":"https://api.github.com/users/wadewilliams/orgs","repos_url":"https://api.github.com/users/wadewilliams/repos","events_url":"https://api.github.com/users/wadewilliams/events{/privacy}","received_events_url":"https://api.github.com/users/wadewilliams/received_events","type":"User"},"private":false,"html_url":"https://github.com/wadewilliams/PyGithub","description":"Python library implementing the full Github API v3","fork":true,"url":"https://api.github.com/repos/wadewilliams/PyGithub","forks_url":"https://api.github.com/repos/wadewilliams/PyGithub/forks","keys_url":"https://api.github.com/repos/wadewilliams/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wadewilliams/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wadewilliams/PyGithub/teams","hooks_url":"https://api.github.com/repos/wadewilliams/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/wadewilliams/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/wadewilliams/PyGithub/events","assignees_url":"https://api.github.com/repos/wadewilliams/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/wadewilliams/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/wadewilliams/PyGithub/tags","blobs_url":"https://api.github.com/repos/wadewilliams/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wadewilliams/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wadewilliams/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/wadewilliams/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wadewilliams/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/wadewilliams/PyGithub/languages","stargazers_url":"https://api.github.com/repos/wadewilliams/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/wadewilliams/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/wadewilliams/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/wadewilliams/PyGithub/subscription","commits_url":"https://api.github.com/repos/wadewilliams/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/wadewilliams/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/wadewilliams/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/wadewilliams/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/wadewilliams/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/wadewilliams/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wadewilliams/PyGithub/merges","archive_url":"https://api.github.com/repos/wadewilliams/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wadewilliams/PyGithub/downloads","issues_url":"https://api.github.com/repos/wadewilliams/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/wadewilliams/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/wadewilliams/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/wadewilliams/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wadewilliams/PyGithub/labels{/name}","created_at":"2013-09-06T02:17:04Z","updated_at":"2013-09-06T02:17:04Z","pushed_at":"2013-09-05T15:53:48Z","git_url":"git://github.com/wadewilliams/PyGithub.git","ssh_url":"git@github.com:wadewilliams/PyGithub.git","clone_url":"https://github.com/wadewilliams/PyGithub.git","svn_url":"https://github.com/wadewilliams/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":824,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","public":true}},"public":true,"created_at":"2013-09-06T02:17:05Z"},{"id":"1822756531","type":"IssueCommentEvent","actor":{"id":922715,"login":"akfish","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","avatar_url":"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/events","html_url":"https://github.com/jacquev6/PyGithub/issues/193","id":18404629,"number":193,"title":"Add Conditional Request and Data Persistence Support Alternative Solution","user":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"labels":[],"state":"open","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":3,"closed_issues":1,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-04T13:41:07Z","due_on":null},"comments":10,"created_at":"2013-08-22T10:14:26Z","updated_at":"2013-09-05T17:00:40Z","closed_at":null,"pull_request":{"html_url":"https://github.com/jacquev6/PyGithub/pull/193","diff_url":"https://github.com/jacquev6/PyGithub/pull/193.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/193.patch"},"body":"An alternative solution to pull request #189 based on #192. I am making this new pull request for clarity.\r\nChange List\r\n---------------\r\n1. Add support to [Conditional Request](http://developer.github.com/guides/getting-started/#conditional-requests) API.\r\n * Add ```GithubObject.etag``` property\r\n * Add ```GithubObject.last_modified``` property\r\n * Modify ```Requester``` class to handle 304 response code\r\n * Modify ```Requester``` class to enable making conditional request\r\n * Add ```NotModifiedException``` class for 304 response code\r\n * Add ```GithubObject.update()``` method\r\n * Add a few private helper methods to make this work\r\n2. Add methods for Data Persistence\r\n * Add ```GithubObject.save(file_fname)``` method\r\n * Add ```GithubObject.load(file_fname)``` class method\r\n3. Test class for conditional request\r\n\r\nUsage\r\n---------------\r\n```python\r\n# Get remote issue list and cache locally when syncing\r\nfor issue in repo.get_issues():\r\n issue.save(local_file_path)\r\n\r\n# Offline use/Quick restore previous work state\r\nfor local_file_path in cache.get_files():\r\n cached_issue = issue.load(local_file_path)\r\n #do something with it\r\n\r\n# And check for update when needed\r\nif (cached_issue.update()):\r\n print \"Issue synced“\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23883975","html_url":"https://github.com/jacquev6/PyGithub/issues/193#issuecomment-23883975","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","id":23883975,"user":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"created_at":"2013-09-05T17:00:40Z","updated_at":"2013-09-05T17:00:40Z","body":"After some quick scanning of the code, recursively reviving will likely not be an issue. We can just invoke ```_useAttributes``` somehow after ```requester``` is set. That should (re)initialize children with correct info. "}},"public":true,"created_at":"2013-09-05T17:00:41Z"},{"id":"1822742910","type":"IssueCommentEvent","actor":{"id":922715,"login":"akfish","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","avatar_url":"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/events","html_url":"https://github.com/jacquev6/PyGithub/issues/193","id":18404629,"number":193,"title":"Add Conditional Request and Data Persistence Support Alternative Solution","user":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"labels":[],"state":"open","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":3,"closed_issues":1,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-04T13:41:07Z","due_on":null},"comments":9,"created_at":"2013-08-22T10:14:26Z","updated_at":"2013-09-05T16:47:24Z","closed_at":null,"pull_request":{"html_url":"https://github.com/jacquev6/PyGithub/pull/193","diff_url":"https://github.com/jacquev6/PyGithub/pull/193.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/193.patch"},"body":"An alternative solution to pull request #189 based on #192. I am making this new pull request for clarity.\r\nChange List\r\n---------------\r\n1. Add support to [Conditional Request](http://developer.github.com/guides/getting-started/#conditional-requests) API.\r\n * Add ```GithubObject.etag``` property\r\n * Add ```GithubObject.last_modified``` property\r\n * Modify ```Requester``` class to handle 304 response code\r\n * Modify ```Requester``` class to enable making conditional request\r\n * Add ```NotModifiedException``` class for 304 response code\r\n * Add ```GithubObject.update()``` method\r\n * Add a few private helper methods to make this work\r\n2. Add methods for Data Persistence\r\n * Add ```GithubObject.save(file_fname)``` method\r\n * Add ```GithubObject.load(file_fname)``` class method\r\n3. Test class for conditional request\r\n\r\nUsage\r\n---------------\r\n```python\r\n# Get remote issue list and cache locally when syncing\r\nfor issue in repo.get_issues():\r\n issue.save(local_file_path)\r\n\r\n# Offline use/Quick restore previous work state\r\nfor local_file_path in cache.get_files():\r\n cached_issue = issue.load(local_file_path)\r\n #do something with it\r\n\r\n# And check for update when needed\r\nif (cached_issue.update()):\r\n print \"Issue synced“\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23882993","html_url":"https://github.com/jacquev6/PyGithub/issues/193#issuecomment-23882993","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","id":23882993,"user":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"created_at":"2013-09-05T16:47:24Z","updated_at":"2013-09-05T16:47:24Z","body":"OK. I will take a look at it in detail tomorrow. Just some quick thoughts:\r\n* It's my oversight that ```__setstate__``` does not implement all ```__init__``` behaviors. That can be easily fixed, since all ```Github.create_from_raw_data``` does is to invoke the constructor. \r\n* I will check on the recursively revive thing. It might be possible to simply introduce a bool flag for status checking and do it lazily when required. And if I understand it correctly, ```Github.create_from_raw_data``` will have the very same issue.\r\n* An alternative for revive is customize the getter for ```self._requester``` that fetches ```requester``` from current ```Github``` instance. Do this in base class, it should then automatically solve every thing, children or not. No \"dead\" objects will exist since they will all be lazily alive.\r\n\r\nSo I think bottom line is to make all the objects serializable and serialize-safe by keep ```__getstate___``` and ```__setstate__```, as long as we can get the initialization right (as ```Github.create_from_raw_data``` does). \r\nAs for the serialization, I am not a big fan on current implementation since I discovery the 2.x and 3.x pickle formats are not compatible. Well, maybe just keep it as an open option and let developers choose whatever methods they want."}},"public":true,"created_at":"2013-09-05T16:47:24Z"},{"id":"1822685130","type":"PushEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"push_id":224708516,"size":1,"distinct_size":1,"ref":"refs/heads/topic/ConditionalRequest","head":"6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69","before":"c412d49c9fd28406156dff664a1f848da1e95d0b","commits":[{"sha":"6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Adapt to Python 2.5 (again:))","distinct":true,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6cb149dce41cf1f110ae1f1d6a5c6bdd66790b69"}]},"public":true,"created_at":"2013-09-05T15:53:49Z"},{"id":"1822682093","type":"PushEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"push_id":224706869,"size":1,"distinct_size":1,"ref":"refs/heads/topic/ConditionalRequest","head":"c412d49c9fd28406156dff664a1f848da1e95d0b","before":"3fe9edf08707d2c289d4e6a05f7521751cf9f8e4","commits":[{"sha":"c412d49c9fd28406156dff664a1f848da1e95d0b","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Adapt to Python 2.5","distinct":true,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c412d49c9fd28406156dff664a1f848da1e95d0b"}]},"public":true,"created_at":"2013-09-05T15:51:13Z"},{"id":"1822678337","type":"IssueCommentEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/events","html_url":"https://github.com/jacquev6/PyGithub/issues/193","id":18404629,"number":193,"title":"Add Conditional Request and Data Persistence Support Alternative Solution","user":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"labels":[],"state":"open","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":3,"closed_issues":1,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-04T13:41:07Z","due_on":null},"comments":8,"created_at":"2013-08-22T10:14:26Z","updated_at":"2013-09-05T15:47:44Z","closed_at":null,"pull_request":{"html_url":"https://github.com/jacquev6/PyGithub/pull/193","diff_url":"https://github.com/jacquev6/PyGithub/pull/193.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/193.patch"},"body":"An alternative solution to pull request #189 based on #192. I am making this new pull request for clarity.\r\nChange List\r\n---------------\r\n1. Add support to [Conditional Request](http://developer.github.com/guides/getting-started/#conditional-requests) API.\r\n * Add ```GithubObject.etag``` property\r\n * Add ```GithubObject.last_modified``` property\r\n * Modify ```Requester``` class to handle 304 response code\r\n * Modify ```Requester``` class to enable making conditional request\r\n * Add ```NotModifiedException``` class for 304 response code\r\n * Add ```GithubObject.update()``` method\r\n * Add a few private helper methods to make this work\r\n2. Add methods for Data Persistence\r\n * Add ```GithubObject.save(file_fname)``` method\r\n * Add ```GithubObject.load(file_fname)``` class method\r\n3. Test class for conditional request\r\n\r\nUsage\r\n---------------\r\n```python\r\n# Get remote issue list and cache locally when syncing\r\nfor issue in repo.get_issues():\r\n issue.save(local_file_path)\r\n\r\n# Offline use/Quick restore previous work state\r\nfor local_file_path in cache.get_files():\r\n cached_issue = issue.load(local_file_path)\r\n #do something with it\r\n\r\n# And check for update when needed\r\nif (cached_issue.update()):\r\n print \"Issue synced“\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23877842","html_url":"https://github.com/jacquev6/PyGithub/issues/193#issuecomment-23877842","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","id":23877842,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-09-05T15:47:44Z","updated_at":"2013-09-05T15:47:44Z","body":"I think I will merge my branch topic/ConditionalRequest (ending at commit 3fe9edf) in next release.\r\n\r\nI may have missed an advantage of your approach of serialization. If so, please tell me, we can continue to discuss it to get the best of both approaches.\r\n\r\nThank you again for your collaboration!"}},"public":true,"created_at":"2013-09-05T15:47:45Z"},{"id":"1822670928","type":"PullRequestReviewCommentEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/6184908","id":6184908,"body":"A few comments on this approach:\r\n\r\n* we can't use the unpickled object in any way, because it has no public attributes, only `raw_data` and `_headers`. We must somehow call `_storeAndUseAttributes` in `__setstate__`\r\n* Creating \"dead\" objects looks like a very dangerous thing. They are not very useful, and quite error-prone (no method can be called on them). Reviving an object after creation is complicated, because its children should be revived too (recursively) (to be able to do things like `repo=g.load(saved_repo); repo.owner.get_followers()[0].login`)\r\n* Having several load and save methods (on `GithubObject`, `Github`) is error-prone.\r\n\r\nPlease see commit 3fe9edf for an implementation of my proposal.","diff_hunk":"@@ -96,6 +100,78 @@ def _parseDatetime(s):\n else:\n return datetime.datetime.strptime(s, \"%Y-%m-%dT%H:%M:%SZ\")\n \n+ # #193: I temporarily comment out those two methods\n+ # We need to address the following:\n+ # - The interface should use file-like objects (not file names)\n+ # - it's more \"pythonic\"\n+ # - it allows user to save several objects in the same physical file\n+ # - it's easier to unit-test because we can inject in-memory file-like objects\n+ # - We should not save identification information\n+ # - We should not re-create several instances of Requester when loading objects\n+ # - This would lead to very surprising behaviors, when changing Github.per_page or anything impacting this central part of PyGithub\n+ # - It should be possible to restore a saved object without knowing its previous type\n+ # - The \"load\" method should not make the user think she must know this previous type\n+ # - In particular, it shouldn't be a classmethod of GithubObject\n+ # - They should be covered by unit tests\n+ #\n+ # My proposal, to be experimented and discussed:\n+ # - in \"save\", pickle a tuple containing the class of the object, its rawData and its headers\n+ # - make \"load\" a method of class Github\n+ # - it will unpickle everything and call Github.create_from_raw_data\n+ # - I would even make \"save\" a method of Github, to keep it symetric with \"load\"\n+ #\n+ # Using __get_state__ would not be enought because we wouldn't have access\n+ # to the Requester instance in __set_state__.\n+\n+ def __getstate__(self):","path":"github/GithubObject.py","position":70,"original_position":70,"commit_id":"ebbfec86a2fb352cc08e3595a6b58fa1ccccc111","original_commit_id":"ebbfec86a2fb352cc08e3595a6b58fa1ccccc111","user":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-09-05T15:41:19Z","updated_at":"2013-09-05T15:41:19Z","html_url":"https://github.com/jacquev6/PyGithub/pull/193#discussion_r6184908","pull_request_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls/193","_links":{"self":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/comments/6184908"},"html":{"href":"https://github.com/jacquev6/PyGithub/pull/193#discussion_r6184908"},"pull_request":{"href":"https://api.github.com/repos/jacquev6/PyGithub/pulls/193"}}}},"public":true,"created_at":"2013-09-05T15:41:19Z"},{"id":"1822668222","type":"PushEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"push_id":224699122,"size":1,"distinct_size":1,"ref":"refs/heads/topic/ConditionalRequest","head":"3fe9edf08707d2c289d4e6a05f7521751cf9f8e4","before":"38b137fb37c0fdc74f8802a4184518e105db9121","commits":[{"sha":"3fe9edf08707d2c289d4e6a05f7521751cf9f8e4","author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques"},"message":"Implement object persistence\n\nThis follows my proposal for #193.\nLargely inspired by AKFish's work.","distinct":true,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3fe9edf08707d2c289d4e6a05f7521751cf9f8e4"}]},"public":true,"created_at":"2013-09-05T15:38:57Z"},{"id":"1822025629","type":"ForkEvent","actor":{"id":813448,"login":"SergioJorge","gravatar_id":"5949c2b4dec0f01c221015a21db10537","url":"https://api.github.com/users/SergioJorge","avatar_url":"https://2.gravatar.com/avatar/5949c2b4dec0f01c221015a21db10537?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"forkee":{"id":12604651,"name":"PyGithub","full_name":"SergioJorge/PyGithub","owner":{"login":"SergioJorge","id":813448,"avatar_url":"https://2.gravatar.com/avatar/5949c2b4dec0f01c221015a21db10537?d=https%3A%2F%2Fidenticons.github.com%2F345b07c0913e6d201a63ba7910b13a10.png","gravatar_id":"5949c2b4dec0f01c221015a21db10537","url":"https://api.github.com/users/SergioJorge","html_url":"https://github.com/SergioJorge","followers_url":"https://api.github.com/users/SergioJorge/followers","following_url":"https://api.github.com/users/SergioJorge/following{/other_user}","gists_url":"https://api.github.com/users/SergioJorge/gists{/gist_id}","starred_url":"https://api.github.com/users/SergioJorge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/SergioJorge/subscriptions","organizations_url":"https://api.github.com/users/SergioJorge/orgs","repos_url":"https://api.github.com/users/SergioJorge/repos","events_url":"https://api.github.com/users/SergioJorge/events{/privacy}","received_events_url":"https://api.github.com/users/SergioJorge/received_events","type":"User"},"private":false,"html_url":"https://github.com/SergioJorge/PyGithub","description":"Python library implementing the full Github API v3","fork":true,"url":"https://api.github.com/repos/SergioJorge/PyGithub","forks_url":"https://api.github.com/repos/SergioJorge/PyGithub/forks","keys_url":"https://api.github.com/repos/SergioJorge/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/SergioJorge/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/SergioJorge/PyGithub/teams","hooks_url":"https://api.github.com/repos/SergioJorge/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/SergioJorge/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/SergioJorge/PyGithub/events","assignees_url":"https://api.github.com/repos/SergioJorge/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/SergioJorge/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/SergioJorge/PyGithub/tags","blobs_url":"https://api.github.com/repos/SergioJorge/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/SergioJorge/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/SergioJorge/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/SergioJorge/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/SergioJorge/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/SergioJorge/PyGithub/languages","stargazers_url":"https://api.github.com/repos/SergioJorge/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/SergioJorge/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/SergioJorge/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/SergioJorge/PyGithub/subscription","commits_url":"https://api.github.com/repos/SergioJorge/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/SergioJorge/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/SergioJorge/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/SergioJorge/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/SergioJorge/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/SergioJorge/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/SergioJorge/PyGithub/merges","archive_url":"https://api.github.com/repos/SergioJorge/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/SergioJorge/PyGithub/downloads","issues_url":"https://api.github.com/repos/SergioJorge/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/SergioJorge/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/SergioJorge/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/SergioJorge/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/SergioJorge/PyGithub/labels{/name}","created_at":"2013-09-04T23:40:46Z","updated_at":"2013-09-04T23:40:46Z","pushed_at":"2013-09-04T19:49:59Z","git_url":"git://github.com/SergioJorge/PyGithub.git","ssh_url":"git@github.com:SergioJorge/PyGithub.git","clone_url":"https://github.com/SergioJorge/PyGithub.git","svn_url":"https://github.com/SergioJorge/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":820,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","public":true}},"public":true,"created_at":"2013-09-04T23:40:46Z"},{"id":"1822025563","type":"WatchEvent","actor":{"id":813448,"login":"SergioJorge","gravatar_id":"5949c2b4dec0f01c221015a21db10537","url":"https://api.github.com/users/SergioJorge","avatar_url":"https://2.gravatar.com/avatar/5949c2b4dec0f01c221015a21db10537?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"started"},"public":true,"created_at":"2013-09-04T23:40:42Z"},{"id":"1821810477","type":"PushEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"push_id":224224755,"size":1,"distinct_size":1,"ref":"refs/heads/topic/ConditionalRequest","head":"38b137fb37c0fdc74f8802a4184518e105db9121","before":"fb6980ce36766e4dd1ab03b48ac4b5adf876dc84","commits":[{"sha":"38b137fb37c0fdc74f8802a4184518e105db9121","author":{"email":"akfish@gmail.com","name":"AKFish"},"message":"Fix line ending","distinct":true,"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/38b137fb37c0fdc74f8802a4184518e105db9121"}]},"public":true,"created_at":"2013-09-04T19:50:00Z"},{"id":"1821476672","type":"IssueCommentEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194/events","html_url":"https://github.com/jacquev6/PyGithub/issues/194","id":18951718,"number":194,"title":"GitHub 400 \"Problems parsing JSON\" when creating an issue","user":{"login":"technoskald","id":1624387,"avatar_url":"https://0.gravatar.com/avatar/afdbc4563c208b1bc332762fbd1145cb?d=https%3A%2F%2Fidenticons.github.com%2F1fe48bd7b38910219f53e7709ac82ccf.png","gravatar_id":"afdbc4563c208b1bc332762fbd1145cb","url":"https://api.github.com/users/technoskald","html_url":"https://github.com/technoskald","followers_url":"https://api.github.com/users/technoskald/followers","following_url":"https://api.github.com/users/technoskald/following{/other_user}","gists_url":"https://api.github.com/users/technoskald/gists{/gist_id}","starred_url":"https://api.github.com/users/technoskald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoskald/subscriptions","organizations_url":"https://api.github.com/users/technoskald/orgs","repos_url":"https://api.github.com/users/technoskald/repos","events_url":"https://api.github.com/users/technoskald/events{/privacy}","received_events_url":"https://api.github.com/users/technoskald/received_events","type":"User"},"labels":[],"state":"open","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":3,"closed_issues":1,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-04T13:41:07Z","due_on":null},"comments":2,"created_at":"2013-09-04T03:34:22Z","updated_at":"2013-09-04T14:35:22Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I'm working from the `develop` branch and consistently get an `HTTP 400: Problems parsing JSON` when trying to create an issue.\r\n\r\nThe traceback, including the actual API call, is:\r\n```\r\nTraceback (most recent call last):\r\n File \"import.py\", line 68, in \r\n issue=repo.create_issue(title=i['description'],body=comment,labels=ilabels)\r\n File \"/home/kmaxwell/PyGithub/github/Repository.py\", line 557, in create_issue\r\n post_parameters\r\n File \"/home/kmaxwell/PyGithub/github/Requester.py\", line 171, in requestJsonAndCheck\r\n return self.__check(*self.requestJson(verb, url, parameters, input))\r\n File \"/home/kmaxwell/PyGithub/github/Requester.py\", line 182, in __check\r\n raise self.__createException(status, output)\r\ngithub.GithubException.GithubException: 400 {u'message': u'Problems parsing JSON'}\r\n```\r\n\r\nAdditionally, I enabled console logging while debugging (per the contribution guidelines) and have the following logs:\r\n\r\n```\r\nPOST https://api.github.com/repos/vz-risk/VCDB/issues {'Content-Type': 'application/json', 'Authorization': 'token (oauth token removed)', 'User-Agent': 'PyGithub/Python'} {\"body\": \"http://www.heraldonline.com/2013/08/27/5152564/advanced-data-processing-inc-notification.html\\n\\nAnother of the ADP Partner breaches There are several more on the pinboard--search term is ADP.\\n\\nhttp://posttrib.suntimes.com/news/porter/22190511-418/valpo-ambulance-users-could-have-had-personal-information-stolen.html\\n\\nhttp://www.healthdatamanagement.com/news/breach-notification-hipaa-privacy-security-46520-1.html\\n\\n\\n2013 DataBreach NC\", \"labels\": [\"Breach\"], \"title\": \"VALPARAISO, Ind., Aug. 27, 2013: Advanced Data Processing, Inc.: Notification of Possible Unauthorized Access of Patient Information | PRNewswire | Rock Hill Herald Online\"} ==> 400 {'status': '400 Bad Request', 'x-ratelimit-remaining': '4993', 'x-github-media-type': 'github.beta; format=json', 'x-content-type-options': 'nosniff', 'access-control-expose-headers': 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes', 'x-github-request-id': '54c3445d-e229-4b45-b3f1-ef528f1325be', 'x-accepted-oauth-scopes': 'repo, public_repo', 'content-length': '35', 'server': 'GitHub.com', 'x-ratelimit-limit': '5000', 'access-control-allow-credentials': 'true', 'date': 'Wed, 04 Sep 2013 03:27:33 GMT', 'access-control-allow-origin': '*', 'content-type': 'application/json; charset=utf-8', 'x-oauth-scopes': 'user, public_repo, repo, gist', 'x-ratelimit-reset': '1378268851'} {\"message\":\"Problems parsing JSON\"}\r\n```"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23794023","html_url":"https://github.com/jacquev6/PyGithub/issues/194#issuecomment-23794023","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194","id":23794023,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-09-04T14:35:22Z","updated_at":"2013-09-04T14:35:22Z","body":"Hum in fact I'm going to need your help to solve this... \r\n\r\nCan you please run the script here: https://gist.github.com/jacquev6/6437766 (modify it to use your credentials first) and tell me what you obtain?\r\n\r\nWhen I run it, it works, and the request sent (before the \"==>\" in the log) it **very** similar to the request failing in your case:\r\n\r\n POST https://api.github.com/repos/jacquev6/TestPyGithub/issues {'Content-Type': 'application/json', 'Authorization': 'Basic (login and password removed)', 'User-Agent': 'PyGithub/Python'} {\"body\": \"http://www.heraldonline.com/2013/08/27/5152564/advanced-data-processing-inc-notification.html\\n\\nAnother of the ADP Partner breaches There are several more on the pinboard--search term is ADP.\\n\\nhttp://posttrib.suntimes.com/news/porter/22190511-418/valpo-ambulance-users-could-have-had-personal-information-stolen.html\\n\\nhttp://www.healthdatamanagement.com/news/breach-notification-hipaa-privacy-security-46520-1.html\\n\\n\\n2013 DataBreach NC\", \"labels\": [\"Breach\"], \"title\": \"VALPARAISO, Ind., Aug. 27, 2013: Advanced Data Processing, Inc.: Notification of Possible Unauthorized Access of Patient Information | PRNewswire | Rock Hill Herald Online\"} ==> 201 {'status': '201 Created', 'x-ratelimit-remaining': '4972', 'x-github-media-type': 'github.beta; format=json', 'x-content-type-options': 'nosniff', 'access-control-expose-headers': 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes', 'x-github-request-id': '2be0b759-6752-4210-8ec9-243932b431a4', 'cache-control': 'private, max-age=60, s-maxage=60', 'content-length': '2382', 'server': 'GitHub.com', 'x-ratelimit-limit': '5000', 'location': 'https://api.github.com/repos/jacquev6/TestPyGithub/issues/4', 'access-control-allow-credentials': 'true', 'date': 'Wed, 04 Sep 2013 14:27:51 GMT', 'etag': '\"c95c9d428a9cb16001205311010e4f98\"', 'content-type': 'application/json; charset=utf-8', 'access-control-allow-origin': '*', 'x-ratelimit-reset': '1378305746'} {\"url\":\"https://api.github.com/repos/jacquev6/TestPyGithub/issues/4\",\"labels_url\":\"https://api.github.com/repos/jacquev6/TestPyGithub/issues/4/labels{/name}\",\"comments_url\":\"https://api.github.com/repos/jacquev6/TestPyGithub/issues/4/comments\",\"events_url\":\"https://api.github.com/repos/jacquev6/TestPyGithub/issues/4/events\",\"html_url\":\"https://github.com/jacquev6/TestPyGithub/issues/4\",\"id\":18974584,\"number\":4,\"title\":\"VALPARAISO, Ind., Aug. 27, 2013: Advanced Data Processing, Inc.: Notification of Possible Unauthorized Access of Patient Information | PRNewswire | Rock Hill Herald Online\",\"user\":{\"login\":\"jacquev6\",\"id\":327146,\"avatar_url\":\"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png\",\"gravatar_id\":\"b68de5ae38616c296fa345d2b9df2225\",\"url\":\"https://api.github.com/users/jacquev6\",\"html_url\":\"https://github.com/jacquev6\",\"followers_url\":\"https://api.github.com/users/jacquev6/followers\",\"following_url\":\"https://api.github.com/users/jacquev6/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/jacquev6/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/jacquev6/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/jacquev6/subscriptions\",\"organizations_url\":\"https://api.github.com/users/jacquev6/orgs\",\"repos_url\":\"https://api.github.com/users/jacquev6/repos\",\"events_url\":\"https://api.github.com/users/jacquev6/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/jacquev6/received_events\",\"type\":\"User\"},\"labels\":[{\"url\":\"https://api.github.com/repos/jacquev6/TestPyGithub/labels/Breach\",\"name\":\"Breach\",\"color\":\"fbca04\"}],\"state\":\"open\",\"assignee\":null,\"milestone\":null,\"comments\":0,\"created_at\":\"2013-09-04T14:27:51Z\",\"updated_at\":\"2013-09-04T14:27:51Z\",\"closed_at\":null,\"pull_request\":{\"html_url\":null,\"diff_url\":null,\"patch_url\":null},\"body\":\"http://www.heraldonline.com/2013/08/27/5152564/advanced-data-processing-inc-notification.html\\n\\nAnother of the ADP Partner breaches There are several more on the pinboard--search term is ADP.\\n\\nhttp://posttrib.suntimes.com/news/porter/22190511-418/valpo-ambulance-users-could-have-had-personal-information-stolen.html\\n\\nhttp://www.healthdatamanagement.com/news/breach-notification-hipaa-privacy-security-46520-1.html\\n\\n\\n2013 DataBreach NC\",\"closed_by\":null}\r\n"}},"public":true,"created_at":"2013-09-04T14:35:23Z"},{"id":"1821420344","type":"IssueCommentEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193/events","html_url":"https://github.com/jacquev6/PyGithub/issues/193","id":18404629,"number":193,"title":"Add Conditional Request and Data Persistence Support Alternative Solution","user":{"login":"akfish","id":922715,"avatar_url":"https://2.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"labels":[],"state":"open","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":3,"closed_issues":1,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-04T13:41:07Z","due_on":null},"comments":7,"created_at":"2013-08-22T10:14:26Z","updated_at":"2013-09-04T13:43:45Z","closed_at":null,"pull_request":{"html_url":"https://github.com/jacquev6/PyGithub/pull/193","diff_url":"https://github.com/jacquev6/PyGithub/pull/193.diff","patch_url":"https://github.com/jacquev6/PyGithub/pull/193.patch"},"body":"An alternative solution to pull request #189 based on #192. I am making this new pull request for clarity.\r\nChange List\r\n---------------\r\n1. Add support to [Conditional Request](http://developer.github.com/guides/getting-started/#conditional-requests) API.\r\n * Add ```GithubObject.etag``` property\r\n * Add ```GithubObject.last_modified``` property\r\n * Modify ```Requester``` class to handle 304 response code\r\n * Modify ```Requester``` class to enable making conditional request\r\n * Add ```NotModifiedException``` class for 304 response code\r\n * Add ```GithubObject.update()``` method\r\n * Add a few private helper methods to make this work\r\n2. Add methods for Data Persistence\r\n * Add ```GithubObject.save(file_fname)``` method\r\n * Add ```GithubObject.load(file_fname)``` class method\r\n3. Test class for conditional request\r\n\r\nUsage\r\n---------------\r\n```python\r\n# Get remote issue list and cache locally when syncing\r\nfor issue in repo.get_issues():\r\n issue.save(local_file_path)\r\n\r\n# Offline use/Quick restore previous work state\r\nfor local_file_path in cache.get_files():\r\n cached_issue = issue.load(local_file_path)\r\n #do something with it\r\n\r\n# And check for update when needed\r\nif (cached_issue.update()):\r\n print \"Issue synced“\r\n\r\n```"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23789799","html_url":"https://github.com/jacquev6/PyGithub/issues/193#issuecomment-23789799","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/193","id":23789799,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-09-04T13:43:45Z","updated_at":"2013-09-04T13:43:45Z","body":"Thank you for the update, this looks very promising! I'll look at it this afternoon."}},"public":true,"created_at":"2013-09-04T13:43:45Z"},{"id":"1821419438","type":"IssueCommentEvent","actor":{"id":327146,"login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"created","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194/events","html_url":"https://github.com/jacquev6/PyGithub/issues/194","id":18951718,"number":194,"title":"GitHub 400 \"Problems parsing JSON\" when creating an issue","user":{"login":"technoskald","id":1624387,"avatar_url":"https://1.gravatar.com/avatar/afdbc4563c208b1bc332762fbd1145cb?d=https%3A%2F%2Fidenticons.github.com%2F1fe48bd7b38910219f53e7709ac82ccf.png","gravatar_id":"afdbc4563c208b1bc332762fbd1145cb","url":"https://api.github.com/users/technoskald","html_url":"https://github.com/technoskald","followers_url":"https://api.github.com/users/technoskald/followers","following_url":"https://api.github.com/users/technoskald/following{/other_user}","gists_url":"https://api.github.com/users/technoskald/gists{/gist_id}","starred_url":"https://api.github.com/users/technoskald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoskald/subscriptions","organizations_url":"https://api.github.com/users/technoskald/orgs","repos_url":"https://api.github.com/users/technoskald/repos","events_url":"https://api.github.com/users/technoskald/events{/privacy}","received_events_url":"https://api.github.com/users/technoskald/received_events","type":"User"},"labels":[],"state":"open","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":3,"closed_issues":1,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-04T13:41:07Z","due_on":null},"comments":1,"created_at":"2013-09-04T03:34:22Z","updated_at":"2013-09-04T13:42:51Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I'm working from the `develop` branch and consistently get an `HTTP 400: Problems parsing JSON` when trying to create an issue.\r\n\r\nThe traceback, including the actual API call, is:\r\n```\r\nTraceback (most recent call last):\r\n File \"import.py\", line 68, in \r\n issue=repo.create_issue(title=i['description'],body=comment,labels=ilabels)\r\n File \"/home/kmaxwell/PyGithub/github/Repository.py\", line 557, in create_issue\r\n post_parameters\r\n File \"/home/kmaxwell/PyGithub/github/Requester.py\", line 171, in requestJsonAndCheck\r\n return self.__check(*self.requestJson(verb, url, parameters, input))\r\n File \"/home/kmaxwell/PyGithub/github/Requester.py\", line 182, in __check\r\n raise self.__createException(status, output)\r\ngithub.GithubException.GithubException: 400 {u'message': u'Problems parsing JSON'}\r\n```\r\n\r\nAdditionally, I enabled console logging while debugging (per the contribution guidelines) and have the following logs:\r\n\r\n```\r\nPOST https://api.github.com/repos/vz-risk/VCDB/issues {'Content-Type': 'application/json', 'Authorization': 'token (oauth token removed)', 'User-Agent': 'PyGithub/Python'} {\"body\": \"http://www.heraldonline.com/2013/08/27/5152564/advanced-data-processing-inc-notification.html\\n\\nAnother of the ADP Partner breaches There are several more on the pinboard--search term is ADP.\\n\\nhttp://posttrib.suntimes.com/news/porter/22190511-418/valpo-ambulance-users-could-have-had-personal-information-stolen.html\\n\\nhttp://www.healthdatamanagement.com/news/breach-notification-hipaa-privacy-security-46520-1.html\\n\\n\\n2013 DataBreach NC\", \"labels\": [\"Breach\"], \"title\": \"VALPARAISO, Ind., Aug. 27, 2013: Advanced Data Processing, Inc.: Notification of Possible Unauthorized Access of Patient Information | PRNewswire | Rock Hill Herald Online\"} ==> 400 {'status': '400 Bad Request', 'x-ratelimit-remaining': '4993', 'x-github-media-type': 'github.beta; format=json', 'x-content-type-options': 'nosniff', 'access-control-expose-headers': 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes', 'x-github-request-id': '54c3445d-e229-4b45-b3f1-ef528f1325be', 'x-accepted-oauth-scopes': 'repo, public_repo', 'content-length': '35', 'server': 'GitHub.com', 'x-ratelimit-limit': '5000', 'access-control-allow-credentials': 'true', 'date': 'Wed, 04 Sep 2013 03:27:33 GMT', 'access-control-allow-origin': '*', 'content-type': 'application/json; charset=utf-8', 'x-oauth-scopes': 'user, public_repo, repo, gist', 'x-ratelimit-reset': '1378268851'} {\"message\":\"Problems parsing JSON\"}\r\n```"},"comment":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/23789742","html_url":"https://github.com/jacquev6/PyGithub/issues/194#issuecomment-23789742","issue_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194","id":23789742,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"created_at":"2013-09-04T13:42:51Z","updated_at":"2013-09-04T13:42:51Z","body":"Hello! Thank you for the issue report, I have all the info I need to investigate that.\r\n\r\nThere seems to be something wrong with the json-encoding of the request, in PyGithub. I'll keep you informed this afternoon."}},"public":true,"created_at":"2013-09-04T13:42:52Z"},{"id":"1821181865","type":"WatchEvent","actor":{"id":1114542,"login":"nvbn","gravatar_id":"9c2082cdbe74353788ae2845c2bd8281","url":"https://api.github.com/users/nvbn","avatar_url":"https://1.gravatar.com/avatar/9c2082cdbe74353788ae2845c2bd8281?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"started"},"public":true,"created_at":"2013-09-04T08:31:39Z"},{"id":"1821036113","type":"IssuesEvent","actor":{"id":1624387,"login":"technoskald","gravatar_id":"afdbc4563c208b1bc332762fbd1145cb","url":"https://api.github.com/users/technoskald","avatar_url":"https://1.gravatar.com/avatar/afdbc4563c208b1bc332762fbd1145cb?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"opened","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/194/events","html_url":"https://github.com/jacquev6/PyGithub/issues/194","id":18951718,"number":194,"title":"GitHub 400 \"Problems parsing JSON\" when creating an issue","user":{"login":"technoskald","id":1624387,"avatar_url":"https://0.gravatar.com/avatar/afdbc4563c208b1bc332762fbd1145cb?d=https%3A%2F%2Fidenticons.github.com%2F1fe48bd7b38910219f53e7709ac82ccf.png","gravatar_id":"afdbc4563c208b1bc332762fbd1145cb","url":"https://api.github.com/users/technoskald","html_url":"https://github.com/technoskald","followers_url":"https://api.github.com/users/technoskald/followers","following_url":"https://api.github.com/users/technoskald/following{/other_user}","gists_url":"https://api.github.com/users/technoskald/gists{/gist_id}","starred_url":"https://api.github.com/users/technoskald/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoskald/subscriptions","organizations_url":"https://api.github.com/users/technoskald/orgs","repos_url":"https://api.github.com/users/technoskald/repos","events_url":"https://api.github.com/users/technoskald/events{/privacy}","received_events_url":"https://api.github.com/users/technoskald/received_events","type":"User"},"labels":[],"state":"open","assignee":null,"milestone":null,"comments":0,"created_at":"2013-09-04T03:34:22Z","updated_at":"2013-09-04T03:34:22Z","closed_at":null,"pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"I'm working from the `develop` branch and consistently get an `HTTP 400: Problems parsing JSON` when trying to create an issue.\r\n\r\nThe traceback, including the actual API call, is:\r\n```\r\nTraceback (most recent call last):\r\n File \"import.py\", line 68, in \r\n issue=repo.create_issue(title=i['description'],body=comment,labels=ilabels)\r\n File \"/home/kmaxwell/PyGithub/github/Repository.py\", line 557, in create_issue\r\n post_parameters\r\n File \"/home/kmaxwell/PyGithub/github/Requester.py\", line 171, in requestJsonAndCheck\r\n return self.__check(*self.requestJson(verb, url, parameters, input))\r\n File \"/home/kmaxwell/PyGithub/github/Requester.py\", line 182, in __check\r\n raise self.__createException(status, output)\r\ngithub.GithubException.GithubException: 400 {u'message': u'Problems parsing JSON'}\r\n```\r\n\r\nAdditionally, I enabled console logging while debugging (per the contribution guidelines) and have the following logs:\r\n\r\n```\r\nPOST https://api.github.com/repos/vz-risk/VCDB/issues {'Content-Type': 'application/json', 'Authorization': 'token (oauth token removed)', 'User-Agent': 'PyGithub/Python'} {\"body\": \"http://www.heraldonline.com/2013/08/27/5152564/advanced-data-processing-inc-notification.html\\n\\nAnother of the ADP Partner breaches There are several more on the pinboard--search term is ADP.\\n\\nhttp://posttrib.suntimes.com/news/porter/22190511-418/valpo-ambulance-users-could-have-had-personal-information-stolen.html\\n\\nhttp://www.healthdatamanagement.com/news/breach-notification-hipaa-privacy-security-46520-1.html\\n\\n\\n2013 DataBreach NC\", \"labels\": [\"Breach\"], \"title\": \"VALPARAISO, Ind., Aug. 27, 2013: Advanced Data Processing, Inc.: Notification of Possible Unauthorized Access of Patient Information | PRNewswire | Rock Hill Herald Online\"} ==> 400 {'status': '400 Bad Request', 'x-ratelimit-remaining': '4993', 'x-github-media-type': 'github.beta; format=json', 'x-content-type-options': 'nosniff', 'access-control-expose-headers': 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes', 'x-github-request-id': '54c3445d-e229-4b45-b3f1-ef528f1325be', 'x-accepted-oauth-scopes': 'repo, public_repo', 'content-length': '35', 'server': 'GitHub.com', 'x-ratelimit-limit': '5000', 'access-control-allow-credentials': 'true', 'date': 'Wed, 04 Sep 2013 03:27:33 GMT', 'access-control-allow-origin': '*', 'content-type': 'application/json; charset=utf-8', 'x-oauth-scopes': 'user, public_repo, repo, gist', 'x-ratelimit-reset': '1378268851'} {\"message\":\"Problems parsing JSON\"}\r\n```"}},"public":true,"created_at":"2013-09-04T03:34:22Z"},{"id":"1819316534","type":"WatchEvent","actor":{"id":1681405,"login":"marianitadn","gravatar_id":"4ede901d02edfca3e35db27377f13d5d","url":"https://api.github.com/users/marianitadn","avatar_url":"https://2.gravatar.com/avatar/4ede901d02edfca3e35db27377f13d5d?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"action":"started"},"public":true,"created_at":"2013-09-02T07:43:17Z"},{"id":"1818956660","type":"ForkEvent","actor":{"id":5172637,"login":"schmidt-fu","gravatar_id":"c9ced8b816f6470e64a4ad13f8ebe16a","url":"https://api.github.com/users/schmidt-fu","avatar_url":"https://1.gravatar.com/avatar/c9ced8b816f6470e64a4ad13f8ebe16a?d=https%3A%2F%2Fa248.e.akamai.net%2Fassets.github.com%2Fimages%2Fgravatars%2Fgravatar-user-420.png"},"repo":{"id":3544490,"name":"jacquev6/PyGithub","url":"https://api.github.com/repos/jacquev6/PyGithub"},"payload":{"forkee":{"id":12518636,"name":"PyGithub","full_name":"schmidt-fu/PyGithub","owner":{"login":"schmidt-fu","id":5172637,"avatar_url":"https://2.gravatar.com/avatar/c9ced8b816f6470e64a4ad13f8ebe16a?d=https%3A%2F%2Fidenticons.github.com%2F3cc9645c6fb2437530f57a2253cf3a8c.png","gravatar_id":"c9ced8b816f6470e64a4ad13f8ebe16a","url":"https://api.github.com/users/schmidt-fu","html_url":"https://github.com/schmidt-fu","followers_url":"https://api.github.com/users/schmidt-fu/followers","following_url":"https://api.github.com/users/schmidt-fu/following{/other_user}","gists_url":"https://api.github.com/users/schmidt-fu/gists{/gist_id}","starred_url":"https://api.github.com/users/schmidt-fu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schmidt-fu/subscriptions","organizations_url":"https://api.github.com/users/schmidt-fu/orgs","repos_url":"https://api.github.com/users/schmidt-fu/repos","events_url":"https://api.github.com/users/schmidt-fu/events{/privacy}","received_events_url":"https://api.github.com/users/schmidt-fu/received_events","type":"User"},"private":false,"html_url":"https://github.com/schmidt-fu/PyGithub","description":"Python library implementing the full Github API v3","fork":true,"url":"https://api.github.com/repos/schmidt-fu/PyGithub","forks_url":"https://api.github.com/repos/schmidt-fu/PyGithub/forks","keys_url":"https://api.github.com/repos/schmidt-fu/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/schmidt-fu/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/schmidt-fu/PyGithub/teams","hooks_url":"https://api.github.com/repos/schmidt-fu/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/schmidt-fu/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/schmidt-fu/PyGithub/events","assignees_url":"https://api.github.com/repos/schmidt-fu/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/schmidt-fu/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/schmidt-fu/PyGithub/tags","blobs_url":"https://api.github.com/repos/schmidt-fu/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/schmidt-fu/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/schmidt-fu/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/schmidt-fu/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/schmidt-fu/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/schmidt-fu/PyGithub/languages","stargazers_url":"https://api.github.com/repos/schmidt-fu/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/schmidt-fu/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/schmidt-fu/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/schmidt-fu/PyGithub/subscription","commits_url":"https://api.github.com/repos/schmidt-fu/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/schmidt-fu/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/schmidt-fu/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/schmidt-fu/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/schmidt-fu/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/schmidt-fu/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/schmidt-fu/PyGithub/merges","archive_url":"https://api.github.com/repos/schmidt-fu/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/schmidt-fu/PyGithub/downloads","issues_url":"https://api.github.com/repos/schmidt-fu/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/schmidt-fu/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/schmidt-fu/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/schmidt-fu/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/schmidt-fu/PyGithub/labels{/name}","created_at":"2013-09-01T09:51:50Z","updated_at":"2013-09-01T09:51:50Z","pushed_at":"2013-08-23T17:06:48Z","git_url":"git://github.com/schmidt-fu/PyGithub.git","ssh_url":"git@github.com:schmidt-fu/PyGithub.git","clone_url":"https://github.com/schmidt-fu/PyGithub.git","svn_url":"https://github.com/schmidt-fu/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7642,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","public":true}},"public":true,"created_at":"2013-09-01T09:51:50Z"}] + +https +GET +api.github.com +None +/notifications/threads/8406712 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4867'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '30848a7f-7351-4751-af8c-3b0a85f5bb7e'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '4203'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"848b2905eeb475bca3c72fe17bedcc0c"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:00 GMT'), ('access-control-allow-origin', '*'), ('x-poll-interval', '60'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"id":"8406712","unread":null,"reason":"subscribed","updated_at":"2013-03-15T05:43:11Z","last_read_at":null,"subject":{"title":"Feature/coveralls","url":"https://api.github.com/repos/ZIMK/fwadmin/pulls/21","latest_comment_url":"https://api.github.com/repos/ZIMK/fwadmin/issues/comments/14944813","type":"PullRequest"},"repository":{"id":8432784,"name":"fwadmin","full_name":"ZIMK/fwadmin","owner":{"login":"ZIMK","id":1187008,"avatar_url":"https://1.gravatar.com/avatar/ce407a684dac7cf642606501244dd9f0?d=https%3A%2F%2Fidenticons.github.com%2Fa8b50d6bf21d85e47ce11e1d23087af2.png","gravatar_id":"ce407a684dac7cf642606501244dd9f0","url":"https://api.github.com/users/ZIMK","html_url":"https://github.com/ZIMK","followers_url":"https://api.github.com/users/ZIMK/followers","following_url":"https://api.github.com/users/ZIMK/following{/other_user}","gists_url":"https://api.github.com/users/ZIMK/gists{/gist_id}","starred_url":"https://api.github.com/users/ZIMK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZIMK/subscriptions","organizations_url":"https://api.github.com/users/ZIMK/orgs","repos_url":"https://api.github.com/users/ZIMK/repos","events_url":"https://api.github.com/users/ZIMK/events{/privacy}","received_events_url":"https://api.github.com/users/ZIMK/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/ZIMK/fwadmin","description":"Django based self-service firewall config tool","fork":true,"url":"https://api.github.com/repos/ZIMK/fwadmin","forks_url":"https://api.github.com/repos/ZIMK/fwadmin/forks","keys_url":"https://api.github.com/repos/ZIMK/fwadmin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ZIMK/fwadmin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ZIMK/fwadmin/teams","hooks_url":"https://api.github.com/repos/ZIMK/fwadmin/hooks","issue_events_url":"https://api.github.com/repos/ZIMK/fwadmin/issues/events{/number}","events_url":"https://api.github.com/repos/ZIMK/fwadmin/events","assignees_url":"https://api.github.com/repos/ZIMK/fwadmin/assignees{/user}","branches_url":"https://api.github.com/repos/ZIMK/fwadmin/branches{/branch}","tags_url":"https://api.github.com/repos/ZIMK/fwadmin/tags","blobs_url":"https://api.github.com/repos/ZIMK/fwadmin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ZIMK/fwadmin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ZIMK/fwadmin/git/refs{/sha}","trees_url":"https://api.github.com/repos/ZIMK/fwadmin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ZIMK/fwadmin/statuses/{sha}","languages_url":"https://api.github.com/repos/ZIMK/fwadmin/languages","stargazers_url":"https://api.github.com/repos/ZIMK/fwadmin/stargazers","contributors_url":"https://api.github.com/repos/ZIMK/fwadmin/contributors","subscribers_url":"https://api.github.com/repos/ZIMK/fwadmin/subscribers","subscription_url":"https://api.github.com/repos/ZIMK/fwadmin/subscription","commits_url":"https://api.github.com/repos/ZIMK/fwadmin/commits{/sha}","git_commits_url":"https://api.github.com/repos/ZIMK/fwadmin/git/commits{/sha}","comments_url":"https://api.github.com/repos/ZIMK/fwadmin/comments{/number}","issue_comment_url":"https://api.github.com/repos/ZIMK/fwadmin/issues/comments/{number}","contents_url":"https://api.github.com/repos/ZIMK/fwadmin/contents/{+path}","compare_url":"https://api.github.com/repos/ZIMK/fwadmin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ZIMK/fwadmin/merges","archive_url":"https://api.github.com/repos/ZIMK/fwadmin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ZIMK/fwadmin/downloads","issues_url":"https://api.github.com/repos/ZIMK/fwadmin/issues{/number}","pulls_url":"https://api.github.com/repos/ZIMK/fwadmin/pulls{/number}","milestones_url":"https://api.github.com/repos/ZIMK/fwadmin/milestones{/number}","notifications_url":"https://api.github.com/repos/ZIMK/fwadmin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ZIMK/fwadmin/labels{/name}"},"url":"https://api.github.com/notifications/threads/8406712","subscription_url":"https://api.github.com/notifications/threads/8406712/subscription"} + +https +GET +api.github.com +None +/users/jacquev6 +{'If-None-Match': '"654d1a29abe3a61b096e8bffbc61c162"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:51:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4867'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'f88ab8d2-9b5a-4283-8001-fdd72ca23ee2'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:00 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a +{'If-None-Match': '"91582e2dc24ad5461e61062c01b32969"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Wed, 09 May 2012 16:22:33 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4867'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '74293a9e-2207-4848-903c-69d3b04efebe'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 09 May 2012 16:22:33 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"91582e2dc24ad5461e61062c01b32969"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:01 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/comments/3630301 +{'If-None-Match': '"654d1a29abe3a61b096e8bffbc61c162"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:51:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4867'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '31f93d19-354a-448b-ac36-9c674814c063'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:02 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/compare/master...develop +{'If-None-Match': '"ff2ab76c56b865233dfb98f5804276b6"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 09:04:41 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4867'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'bed81d6d-586b-453e-bf17-3db9b2abe473'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 09:04:41 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"ff2ab76c56b865233dfb98f5804276b6"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:03 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/contents/README.rst?ref=master +{'If-None-Match': '"bbffa70478199a10902bf5da76db3481"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Wed, 21 Aug 2013 16:39:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4867'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'c3ab101c-0643-4405-8dde-d9738631a6d1'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:39:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"bbffa70478199a10902bf5da76db3481"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:04 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/gists/149016 +{'If-None-Match': '"1aaa6053c05e25abbc1703b90bd409b9"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 13:04:59 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4867'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'acf3d7f7-920c-4e6c-9e9f-8c619691fd70'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 13:04:59 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"1aaa6053c05e25abbc1703b90bd409b9"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:05 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/gists/149016/comments/4565 +{'If-None-Match': '"923dd32a449cce56dae93d3438b9451a"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Thu, 29 Aug 2013 01:07:03 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4867'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '76905633-de04-422b-83f6-9f8dde705b0f'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 29 Aug 2013 01:07:03 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"923dd32a449cce56dae93d3438b9451a"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:06 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/gists/149016/3e0e8350f040f21811ceea13975086158ccae986 +{'If-None-Match': '"1aaa6053c05e25abbc1703b90bd409b9"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 13:04:59 GMT'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4866'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '704fb785-3c6d-4f9f-9c14-91f368156bb0'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '32105'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"ad4288b80b5ef38fdd8599ec34f610f7"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:09 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/gists/149016","forks_url":"https://api.github.com/gists/149016/forks","commits_url":"https://api.github.com/gists/149016/commits","id":"149016","git_pull_url":"https://gist.github.com/149016.git","git_push_url":"https://gist.github.com/149016.git","html_url":"https://gist.github.com/149016","files":{".gitignore":{"filename":".gitignore","type":"text/plain","language":null,"raw_url":"https://gist.github.com/raw/149016/e056704ebab0fbcd7bf937169b4057d378d09cf8/.gitignore","size":145,"content":"*.aux\n*.glo\n*.idx\n*.log\n*.toc\n*.ist\n*.acn\n*.acr\n*.alg\n*.bbl\n*.blg\n*.dvi\n*.glg\n*.gls\n*.ilg\n*.ind\n*.lof\n*.lot\n*.maf\n*.mtc\n*.mtc1\n*.out\n*.synctex.gz"}},"public":true,"created_at":"2009-07-17T11:37:42Z","updated_at":"2013-09-06T13:04:59Z","description":"Git: .gitignore file for LaTeX projects","comments":18,"user":{"login":"kogakure","id":5535,"avatar_url":"https://0.gravatar.com/avatar/b53f98d49e275e8387897de02c92288d?d=https%3A%2F%2Fidenticons.github.com%2F7ec69dd44416c46745f6edd947b470cd.png","gravatar_id":"b53f98d49e275e8387897de02c92288d","url":"https://api.github.com/users/kogakure","html_url":"https://github.com/kogakure","followers_url":"https://api.github.com/users/kogakure/followers","following_url":"https://api.github.com/users/kogakure/following{/other_user}","gists_url":"https://api.github.com/users/kogakure/gists{/gist_id}","starred_url":"https://api.github.com/users/kogakure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kogakure/subscriptions","organizations_url":"https://api.github.com/users/kogakure/orgs","repos_url":"https://api.github.com/users/kogakure/repos","events_url":"https://api.github.com/users/kogakure/events{/privacy}","received_events_url":"https://api.github.com/users/kogakure/received_events","type":"User"},"comments_url":"https://api.github.com/gists/149016/comments","forks":[{"url":"https://api.github.com/gists/452042","user":{"login":"cflewis","id":43708,"avatar_url":"https://2.gravatar.com/avatar/5f986018993d9f078927fe29ee912cf2?d=https%3A%2F%2Fidenticons.github.com%2F287915711d06ce6d90e2c18e1d89d3a6.png","gravatar_id":"5f986018993d9f078927fe29ee912cf2","url":"https://api.github.com/users/cflewis","html_url":"https://github.com/cflewis","followers_url":"https://api.github.com/users/cflewis/followers","following_url":"https://api.github.com/users/cflewis/following{/other_user}","gists_url":"https://api.github.com/users/cflewis/gists{/gist_id}","starred_url":"https://api.github.com/users/cflewis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cflewis/subscriptions","organizations_url":"https://api.github.com/users/cflewis/orgs","repos_url":"https://api.github.com/users/cflewis/repos","events_url":"https://api.github.com/users/cflewis/events{/privacy}","received_events_url":"https://api.github.com/users/cflewis/received_events","type":"User"},"id":"452042","created_at":"2010-06-24T21:51:00Z","updated_at":"2010-06-24T21:51:25Z"},{"url":"https://api.github.com/gists/871983","user":{"login":"rbochet","id":56806,"avatar_url":"https://2.gravatar.com/avatar/54925726f7c3a2b76028718eddb8522a?d=https%3A%2F%2Fidenticons.github.com%2F8818556ce6ba4bc9302dca9ec1979591.png","gravatar_id":"54925726f7c3a2b76028718eddb8522a","url":"https://api.github.com/users/rbochet","html_url":"https://github.com/rbochet","followers_url":"https://api.github.com/users/rbochet/followers","following_url":"https://api.github.com/users/rbochet/following{/other_user}","gists_url":"https://api.github.com/users/rbochet/gists{/gist_id}","starred_url":"https://api.github.com/users/rbochet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rbochet/subscriptions","organizations_url":"https://api.github.com/users/rbochet/orgs","repos_url":"https://api.github.com/users/rbochet/repos","events_url":"https://api.github.com/users/rbochet/events{/privacy}","received_events_url":"https://api.github.com/users/rbochet/received_events","type":"User"},"id":"871983","created_at":"2011-03-16T03:48:24Z","updated_at":"2013-08-16T00:46:15Z"},{"url":"https://api.github.com/gists/980414","user":{"login":"j10","id":250070,"avatar_url":"https://0.gravatar.com/avatar/7eb0a4d397a695f7fd15069a4f24ad44?d=https%3A%2F%2Fidenticons.github.com%2F6019c728e12af5d048c3d2decb9800cd.png","gravatar_id":"7eb0a4d397a695f7fd15069a4f24ad44","url":"https://api.github.com/users/j10","html_url":"https://github.com/j10","followers_url":"https://api.github.com/users/j10/followers","following_url":"https://api.github.com/users/j10/following{/other_user}","gists_url":"https://api.github.com/users/j10/gists{/gist_id}","starred_url":"https://api.github.com/users/j10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/j10/subscriptions","organizations_url":"https://api.github.com/users/j10/orgs","repos_url":"https://api.github.com/users/j10/repos","events_url":"https://api.github.com/users/j10/events{/privacy}","received_events_url":"https://api.github.com/users/j10/received_events","type":"User"},"id":"980414","created_at":"2011-05-19T08:43:14Z","updated_at":"2011-05-19T08:43:20Z"},{"url":"https://api.github.com/gists/1404741","user":{"login":"Vaguery","id":81171,"avatar_url":"https://0.gravatar.com/avatar/db04d40ecceb0a4c0683a60462d11794?d=https%3A%2F%2Fidenticons.github.com%2Fc3ea21d464d21b7bf62431791ec01b78.png","gravatar_id":"db04d40ecceb0a4c0683a60462d11794","url":"https://api.github.com/users/Vaguery","html_url":"https://github.com/Vaguery","followers_url":"https://api.github.com/users/Vaguery/followers","following_url":"https://api.github.com/users/Vaguery/following{/other_user}","gists_url":"https://api.github.com/users/Vaguery/gists{/gist_id}","starred_url":"https://api.github.com/users/Vaguery/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Vaguery/subscriptions","organizations_url":"https://api.github.com/users/Vaguery/orgs","repos_url":"https://api.github.com/users/Vaguery/repos","events_url":"https://api.github.com/users/Vaguery/events{/privacy}","received_events_url":"https://api.github.com/users/Vaguery/received_events","type":"User"},"id":"1404741","created_at":"2011-11-29T13:05:35Z","updated_at":"2011-11-29T13:05:35Z"},{"url":"https://api.github.com/gists/1422904","user":{"login":"phieber","id":1208351,"avatar_url":"https://1.gravatar.com/avatar/e2f846ae903d79fa8750763d0809cab5?d=https%3A%2F%2Fidenticons.github.com%2F09c10f8d5454910d48c67ff6081e8601.png","gravatar_id":"e2f846ae903d79fa8750763d0809cab5","url":"https://api.github.com/users/phieber","html_url":"https://github.com/phieber","followers_url":"https://api.github.com/users/phieber/followers","following_url":"https://api.github.com/users/phieber/following{/other_user}","gists_url":"https://api.github.com/users/phieber/gists{/gist_id}","starred_url":"https://api.github.com/users/phieber/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/phieber/subscriptions","organizations_url":"https://api.github.com/users/phieber/orgs","repos_url":"https://api.github.com/users/phieber/repos","events_url":"https://api.github.com/users/phieber/events{/privacy}","received_events_url":"https://api.github.com/users/phieber/received_events","type":"User"},"id":"1422904","created_at":"2011-12-02T11:25:46Z","updated_at":"2011-12-02T11:25:46Z"},{"url":"https://api.github.com/gists/1585783","user":{"login":"pbroschwitz","id":92129,"avatar_url":"https://1.gravatar.com/avatar/68e33f71f778ec322d68ca15ef2a7315?d=https%3A%2F%2Fidenticons.github.com%2F8417990ede5b8e7dc3295d4dd63e4062.png","gravatar_id":"68e33f71f778ec322d68ca15ef2a7315","url":"https://api.github.com/users/pbroschwitz","html_url":"https://github.com/pbroschwitz","followers_url":"https://api.github.com/users/pbroschwitz/followers","following_url":"https://api.github.com/users/pbroschwitz/following{/other_user}","gists_url":"https://api.github.com/users/pbroschwitz/gists{/gist_id}","starred_url":"https://api.github.com/users/pbroschwitz/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbroschwitz/subscriptions","organizations_url":"https://api.github.com/users/pbroschwitz/orgs","repos_url":"https://api.github.com/users/pbroschwitz/repos","events_url":"https://api.github.com/users/pbroschwitz/events{/privacy}","received_events_url":"https://api.github.com/users/pbroschwitz/received_events","type":"User"},"id":"1585783","created_at":"2012-01-09T23:59:07Z","updated_at":"2012-02-20T11:18:52Z"},{"url":"https://api.github.com/gists/2549120","user":{"login":"gaving","id":43741,"avatar_url":"https://2.gravatar.com/avatar/839485ec6b0111d4ccc69646789d6728?d=https%3A%2F%2Fidenticons.github.com%2F781870bb5979fcc948dcc48da5fb798a.png","gravatar_id":"839485ec6b0111d4ccc69646789d6728","url":"https://api.github.com/users/gaving","html_url":"https://github.com/gaving","followers_url":"https://api.github.com/users/gaving/followers","following_url":"https://api.github.com/users/gaving/following{/other_user}","gists_url":"https://api.github.com/users/gaving/gists{/gist_id}","starred_url":"https://api.github.com/users/gaving/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gaving/subscriptions","organizations_url":"https://api.github.com/users/gaving/orgs","repos_url":"https://api.github.com/users/gaving/repos","events_url":"https://api.github.com/users/gaving/events{/privacy}","received_events_url":"https://api.github.com/users/gaving/received_events","type":"User"},"id":"2549120","created_at":"2012-04-29T09:57:32Z","updated_at":"2012-04-29T09:57:32Z"},{"url":"https://api.github.com/gists/2549928","user":{"login":"pbelmans","id":700126,"avatar_url":"https://2.gravatar.com/avatar/bf4c56431003682b725b72668e7de35f?d=https%3A%2F%2Fidenticons.github.com%2Fb6e0db3b4d374eb7e8d52b9f271f4822.png","gravatar_id":"bf4c56431003682b725b72668e7de35f","url":"https://api.github.com/users/pbelmans","html_url":"https://github.com/pbelmans","followers_url":"https://api.github.com/users/pbelmans/followers","following_url":"https://api.github.com/users/pbelmans/following{/other_user}","gists_url":"https://api.github.com/users/pbelmans/gists{/gist_id}","starred_url":"https://api.github.com/users/pbelmans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pbelmans/subscriptions","organizations_url":"https://api.github.com/users/pbelmans/orgs","repos_url":"https://api.github.com/users/pbelmans/repos","events_url":"https://api.github.com/users/pbelmans/events{/privacy}","received_events_url":"https://api.github.com/users/pbelmans/received_events","type":"User"},"id":"2549928","created_at":"2012-04-29T12:07:11Z","updated_at":"2012-05-14T11:08:39Z"},{"url":"https://api.github.com/gists/3061207","user":{"login":"robEllenberg","id":1210940,"avatar_url":"https://1.gravatar.com/avatar/cee0a0313cb89262ccaf408cf42eeae8?d=https%3A%2F%2Fidenticons.github.com%2Fb927fc8b72fac9a5b05e8afd1545e069.png","gravatar_id":"cee0a0313cb89262ccaf408cf42eeae8","url":"https://api.github.com/users/robEllenberg","html_url":"https://github.com/robEllenberg","followers_url":"https://api.github.com/users/robEllenberg/followers","following_url":"https://api.github.com/users/robEllenberg/following{/other_user}","gists_url":"https://api.github.com/users/robEllenberg/gists{/gist_id}","starred_url":"https://api.github.com/users/robEllenberg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/robEllenberg/subscriptions","organizations_url":"https://api.github.com/users/robEllenberg/orgs","repos_url":"https://api.github.com/users/robEllenberg/repos","events_url":"https://api.github.com/users/robEllenberg/events{/privacy}","received_events_url":"https://api.github.com/users/robEllenberg/received_events","type":"User"},"id":"3061207","created_at":"2012-07-06T16:34:35Z","updated_at":"2012-07-06T16:34:35Z"},{"url":"https://api.github.com/gists/3073850","user":{"login":"naught101","id":167164,"avatar_url":"https://2.gravatar.com/avatar/20cb8dcc17ad4334c0f8cb1ddc28bcd0?d=https%3A%2F%2Fidenticons.github.com%2F16a0a5f3381b862da55875130a94ad3f.png","gravatar_id":"20cb8dcc17ad4334c0f8cb1ddc28bcd0","url":"https://api.github.com/users/naught101","html_url":"https://github.com/naught101","followers_url":"https://api.github.com/users/naught101/followers","following_url":"https://api.github.com/users/naught101/following{/other_user}","gists_url":"https://api.github.com/users/naught101/gists{/gist_id}","starred_url":"https://api.github.com/users/naught101/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/naught101/subscriptions","organizations_url":"https://api.github.com/users/naught101/orgs","repos_url":"https://api.github.com/users/naught101/repos","events_url":"https://api.github.com/users/naught101/events{/privacy}","received_events_url":"https://api.github.com/users/naught101/received_events","type":"User"},"id":"3073850","created_at":"2012-07-09T02:17:21Z","updated_at":"2012-07-09T02:17:21Z"},{"url":"https://api.github.com/gists/3683565","user":{"login":"TKAB","id":66597,"avatar_url":"https://1.gravatar.com/avatar/7a66c8124726c66cf9901d7e09f4f3cb?d=https%3A%2F%2Fidenticons.github.com%2F4bec99ec5bd39630575692948d9e8169.png","gravatar_id":"7a66c8124726c66cf9901d7e09f4f3cb","url":"https://api.github.com/users/TKAB","html_url":"https://github.com/TKAB","followers_url":"https://api.github.com/users/TKAB/followers","following_url":"https://api.github.com/users/TKAB/following{/other_user}","gists_url":"https://api.github.com/users/TKAB/gists{/gist_id}","starred_url":"https://api.github.com/users/TKAB/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TKAB/subscriptions","organizations_url":"https://api.github.com/users/TKAB/orgs","repos_url":"https://api.github.com/users/TKAB/repos","events_url":"https://api.github.com/users/TKAB/events{/privacy}","received_events_url":"https://api.github.com/users/TKAB/received_events","type":"User"},"id":"3683565","created_at":"2012-09-09T09:58:43Z","updated_at":"2012-09-09T09:58:43Z"},{"url":"https://api.github.com/gists/3802139","user":{"login":"linchen04","id":1383767,"avatar_url":"https://1.gravatar.com/avatar/4380e7c4928005fc0eaf9772e1fe64b7?d=https%3A%2F%2Fidenticons.github.com%2F39a2a9b3f884c9a2e97ce61cb56e02fd.png","gravatar_id":"4380e7c4928005fc0eaf9772e1fe64b7","url":"https://api.github.com/users/linchen04","html_url":"https://github.com/linchen04","followers_url":"https://api.github.com/users/linchen04/followers","following_url":"https://api.github.com/users/linchen04/following{/other_user}","gists_url":"https://api.github.com/users/linchen04/gists{/gist_id}","starred_url":"https://api.github.com/users/linchen04/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/linchen04/subscriptions","organizations_url":"https://api.github.com/users/linchen04/orgs","repos_url":"https://api.github.com/users/linchen04/repos","events_url":"https://api.github.com/users/linchen04/events{/privacy}","received_events_url":"https://api.github.com/users/linchen04/received_events","type":"User"},"id":"3802139","created_at":"2012-09-28T21:20:16Z","updated_at":"2012-09-28T21:20:16Z"},{"url":"https://api.github.com/gists/3958094","user":{"login":"macalicious","id":717205,"avatar_url":"https://2.gravatar.com/avatar/59eb80f68e015e725e9eeb90f24987b2?d=https%3A%2F%2Fidenticons.github.com%2F1d2591e0232d5734561c3c71252a2efa.png","gravatar_id":"59eb80f68e015e725e9eeb90f24987b2","url":"https://api.github.com/users/macalicious","html_url":"https://github.com/macalicious","followers_url":"https://api.github.com/users/macalicious/followers","following_url":"https://api.github.com/users/macalicious/following{/other_user}","gists_url":"https://api.github.com/users/macalicious/gists{/gist_id}","starred_url":"https://api.github.com/users/macalicious/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/macalicious/subscriptions","organizations_url":"https://api.github.com/users/macalicious/orgs","repos_url":"https://api.github.com/users/macalicious/repos","events_url":"https://api.github.com/users/macalicious/events{/privacy}","received_events_url":"https://api.github.com/users/macalicious/received_events","type":"User"},"id":"3958094","created_at":"2012-10-26T10:37:44Z","updated_at":"2012-10-26T10:37:44Z"},{"url":"https://api.github.com/gists/4362953","user":{"login":"dermesser","id":1042327,"avatar_url":"https://0.gravatar.com/avatar/1f99406671a26d17de4f0a52a41ad0c7?d=https%3A%2F%2Fidenticons.github.com%2F1b2f62f9f8f36eeb3c2a1ed42d1a2249.png","gravatar_id":"1f99406671a26d17de4f0a52a41ad0c7","url":"https://api.github.com/users/dermesser","html_url":"https://github.com/dermesser","followers_url":"https://api.github.com/users/dermesser/followers","following_url":"https://api.github.com/users/dermesser/following{/other_user}","gists_url":"https://api.github.com/users/dermesser/gists{/gist_id}","starred_url":"https://api.github.com/users/dermesser/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dermesser/subscriptions","organizations_url":"https://api.github.com/users/dermesser/orgs","repos_url":"https://api.github.com/users/dermesser/repos","events_url":"https://api.github.com/users/dermesser/events{/privacy}","received_events_url":"https://api.github.com/users/dermesser/received_events","type":"User"},"id":"4362953","created_at":"2012-12-23T11:04:08Z","updated_at":"2013-08-07T18:49:16Z"},{"url":"https://api.github.com/gists/4401093","user":{"login":"szalansky","id":323025,"avatar_url":"https://1.gravatar.com/avatar/b96196ac5b306a6f0d302dd9f82a24ee?d=https%3A%2F%2Fidenticons.github.com%2F6470274ac82665a71a91d36c419016ce.png","gravatar_id":"b96196ac5b306a6f0d302dd9f82a24ee","url":"https://api.github.com/users/szalansky","html_url":"https://github.com/szalansky","followers_url":"https://api.github.com/users/szalansky/followers","following_url":"https://api.github.com/users/szalansky/following{/other_user}","gists_url":"https://api.github.com/users/szalansky/gists{/gist_id}","starred_url":"https://api.github.com/users/szalansky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/szalansky/subscriptions","organizations_url":"https://api.github.com/users/szalansky/orgs","repos_url":"https://api.github.com/users/szalansky/repos","events_url":"https://api.github.com/users/szalansky/events{/privacy}","received_events_url":"https://api.github.com/users/szalansky/received_events","type":"User"},"id":"4401093","created_at":"2012-12-28T19:28:03Z","updated_at":"2012-12-28T19:28:03Z"},{"url":"https://api.github.com/gists/4568476","user":{"login":"flomey","id":3226735,"avatar_url":"https://1.gravatar.com/avatar/3143afe043a2fdcd6a22a537e4cc3c8e?d=https%3A%2F%2Fidenticons.github.com%2F9271b5a509f2dabd1c5850acf684759c.png","gravatar_id":"3143afe043a2fdcd6a22a537e4cc3c8e","url":"https://api.github.com/users/flomey","html_url":"https://github.com/flomey","followers_url":"https://api.github.com/users/flomey/followers","following_url":"https://api.github.com/users/flomey/following{/other_user}","gists_url":"https://api.github.com/users/flomey/gists{/gist_id}","starred_url":"https://api.github.com/users/flomey/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/flomey/subscriptions","organizations_url":"https://api.github.com/users/flomey/orgs","repos_url":"https://api.github.com/users/flomey/repos","events_url":"https://api.github.com/users/flomey/events{/privacy}","received_events_url":"https://api.github.com/users/flomey/received_events","type":"User"},"id":"4568476","created_at":"2013-01-18T20:59:25Z","updated_at":"2013-01-18T20:59:25Z"},{"url":"https://api.github.com/gists/4732801","user":{"login":"mhebing","id":905115,"avatar_url":"https://2.gravatar.com/avatar/14e2a01d187cb0a167942e24e9234f95?d=https%3A%2F%2Fidenticons.github.com%2Fb874dedd9bb70a549db142d519aa6648.png","gravatar_id":"14e2a01d187cb0a167942e24e9234f95","url":"https://api.github.com/users/mhebing","html_url":"https://github.com/mhebing","followers_url":"https://api.github.com/users/mhebing/followers","following_url":"https://api.github.com/users/mhebing/following{/other_user}","gists_url":"https://api.github.com/users/mhebing/gists{/gist_id}","starred_url":"https://api.github.com/users/mhebing/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhebing/subscriptions","organizations_url":"https://api.github.com/users/mhebing/orgs","repos_url":"https://api.github.com/users/mhebing/repos","events_url":"https://api.github.com/users/mhebing/events{/privacy}","received_events_url":"https://api.github.com/users/mhebing/received_events","type":"User"},"id":"4732801","created_at":"2013-02-07T17:57:21Z","updated_at":"2013-02-07T17:59:53Z"},{"url":"https://api.github.com/gists/5074215","user":{"login":"fumingshih","id":171536,"avatar_url":"https://0.gravatar.com/avatar/cdaeda52c7e0e7db119ec242652a7eac?d=https%3A%2F%2Fidenticons.github.com%2Ff3daf33ead84c02b32d673addce28321.png","gravatar_id":"cdaeda52c7e0e7db119ec242652a7eac","url":"https://api.github.com/users/fumingshih","html_url":"https://github.com/fumingshih","followers_url":"https://api.github.com/users/fumingshih/followers","following_url":"https://api.github.com/users/fumingshih/following{/other_user}","gists_url":"https://api.github.com/users/fumingshih/gists{/gist_id}","starred_url":"https://api.github.com/users/fumingshih/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fumingshih/subscriptions","organizations_url":"https://api.github.com/users/fumingshih/orgs","repos_url":"https://api.github.com/users/fumingshih/repos","events_url":"https://api.github.com/users/fumingshih/events{/privacy}","received_events_url":"https://api.github.com/users/fumingshih/received_events","type":"User"},"id":"5074215","created_at":"2013-03-03T02:30:54Z","updated_at":"2013-03-03T02:30:54Z"},{"url":"https://api.github.com/gists/5126805","user":{"login":"xiddw","id":742519,"avatar_url":"https://2.gravatar.com/avatar/e3aea2d1cdb375467416bff41c614582?d=https%3A%2F%2Fidenticons.github.com%2Ffd082f32f1f9679671081ba58bb37459.png","gravatar_id":"e3aea2d1cdb375467416bff41c614582","url":"https://api.github.com/users/xiddw","html_url":"https://github.com/xiddw","followers_url":"https://api.github.com/users/xiddw/followers","following_url":"https://api.github.com/users/xiddw/following{/other_user}","gists_url":"https://api.github.com/users/xiddw/gists{/gist_id}","starred_url":"https://api.github.com/users/xiddw/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xiddw/subscriptions","organizations_url":"https://api.github.com/users/xiddw/orgs","repos_url":"https://api.github.com/users/xiddw/repos","events_url":"https://api.github.com/users/xiddw/events{/privacy}","received_events_url":"https://api.github.com/users/xiddw/received_events","type":"User"},"id":"5126805","created_at":"2013-03-10T02:21:30Z","updated_at":"2013-03-10T02:21:30Z"},{"url":"https://api.github.com/gists/5353918","user":{"login":"stared","id":1001610,"avatar_url":"https://2.gravatar.com/avatar/1b324e4900e79878eb518c1263b41795?d=https%3A%2F%2Fidenticons.github.com%2F031dfe1b6a9e475fa708179fb35beb3b.png","gravatar_id":"1b324e4900e79878eb518c1263b41795","url":"https://api.github.com/users/stared","html_url":"https://github.com/stared","followers_url":"https://api.github.com/users/stared/followers","following_url":"https://api.github.com/users/stared/following{/other_user}","gists_url":"https://api.github.com/users/stared/gists{/gist_id}","starred_url":"https://api.github.com/users/stared/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stared/subscriptions","organizations_url":"https://api.github.com/users/stared/orgs","repos_url":"https://api.github.com/users/stared/repos","events_url":"https://api.github.com/users/stared/events{/privacy}","received_events_url":"https://api.github.com/users/stared/received_events","type":"User"},"id":"5353918","created_at":"2013-04-10T11:42:03Z","updated_at":"2013-04-10T11:43:47Z"},{"url":"https://api.github.com/gists/5600181","user":{"login":"huashuai","id":256761,"avatar_url":"https://1.gravatar.com/avatar/279030da669c3950fc54dea37ee3109e?d=https%3A%2F%2Fidenticons.github.com%2Fc66590f0228b4de1b7d16d1b8f10161c.png","gravatar_id":"279030da669c3950fc54dea37ee3109e","url":"https://api.github.com/users/huashuai","html_url":"https://github.com/huashuai","followers_url":"https://api.github.com/users/huashuai/followers","following_url":"https://api.github.com/users/huashuai/following{/other_user}","gists_url":"https://api.github.com/users/huashuai/gists{/gist_id}","starred_url":"https://api.github.com/users/huashuai/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/huashuai/subscriptions","organizations_url":"https://api.github.com/users/huashuai/orgs","repos_url":"https://api.github.com/users/huashuai/repos","events_url":"https://api.github.com/users/huashuai/events{/privacy}","received_events_url":"https://api.github.com/users/huashuai/received_events","type":"User"},"id":"5600181","created_at":"2013-05-17T16:15:32Z","updated_at":"2013-05-17T16:15:32Z"},{"url":"https://api.github.com/gists/5639946","user":{"login":"simardcasanova","id":739940,"avatar_url":"https://0.gravatar.com/avatar/63c42221c8ed3dfc335a0d1b19397e36?d=https%3A%2F%2Fidenticons.github.com%2F819fcce6467f36e0beb6ffc69afa9f21.png","gravatar_id":"63c42221c8ed3dfc335a0d1b19397e36","url":"https://api.github.com/users/simardcasanova","html_url":"https://github.com/simardcasanova","followers_url":"https://api.github.com/users/simardcasanova/followers","following_url":"https://api.github.com/users/simardcasanova/following{/other_user}","gists_url":"https://api.github.com/users/simardcasanova/gists{/gist_id}","starred_url":"https://api.github.com/users/simardcasanova/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simardcasanova/subscriptions","organizations_url":"https://api.github.com/users/simardcasanova/orgs","repos_url":"https://api.github.com/users/simardcasanova/repos","events_url":"https://api.github.com/users/simardcasanova/events{/privacy}","received_events_url":"https://api.github.com/users/simardcasanova/received_events","type":"User"},"id":"5639946","created_at":"2013-05-23T22:24:19Z","updated_at":"2013-05-23T22:24:57Z"},{"url":"https://api.github.com/gists/5965077","user":{"login":"habi","id":1651235,"avatar_url":"https://1.gravatar.com/avatar/4a0a820ba6c1996bc37d64ce14606ad4?d=https%3A%2F%2Fidenticons.github.com%2Fbaa3c8588d9ab73deea280466d5db7e1.png","gravatar_id":"4a0a820ba6c1996bc37d64ce14606ad4","url":"https://api.github.com/users/habi","html_url":"https://github.com/habi","followers_url":"https://api.github.com/users/habi/followers","following_url":"https://api.github.com/users/habi/following{/other_user}","gists_url":"https://api.github.com/users/habi/gists{/gist_id}","starred_url":"https://api.github.com/users/habi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/habi/subscriptions","organizations_url":"https://api.github.com/users/habi/orgs","repos_url":"https://api.github.com/users/habi/repos","events_url":"https://api.github.com/users/habi/events{/privacy}","received_events_url":"https://api.github.com/users/habi/received_events","type":"User"},"id":"5965077","created_at":"2013-07-10T09:57:15Z","updated_at":"2013-07-10T09:57:40Z"},{"url":"https://api.github.com/gists/6394053","user":{"login":"glaubius","id":5349064,"avatar_url":"https://0.gravatar.com/avatar/ff2451755814a23845b19551371bb026?d=https%3A%2F%2Fidenticons.github.com%2Faa59a5980a33a834ee55c9f386e7c996.png","gravatar_id":"ff2451755814a23845b19551371bb026","url":"https://api.github.com/users/glaubius","html_url":"https://github.com/glaubius","followers_url":"https://api.github.com/users/glaubius/followers","following_url":"https://api.github.com/users/glaubius/following{/other_user}","gists_url":"https://api.github.com/users/glaubius/gists{/gist_id}","starred_url":"https://api.github.com/users/glaubius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/glaubius/subscriptions","organizations_url":"https://api.github.com/users/glaubius/orgs","repos_url":"https://api.github.com/users/glaubius/repos","events_url":"https://api.github.com/users/glaubius/events{/privacy}","received_events_url":"https://api.github.com/users/glaubius/received_events","type":"User"},"id":"6394053","created_at":"2013-08-30T20:39:05Z","updated_at":"2013-08-30T20:39:05Z"},{"url":"https://api.github.com/gists/6463518","user":{"login":"janten","id":1794407,"avatar_url":"https://2.gravatar.com/avatar/44f5d723bf2ef2dac40327bfa9815989?d=https%3A%2F%2Fidenticons.github.com%2Fe177a89b246259b7b5a84411923e6881.png","gravatar_id":"44f5d723bf2ef2dac40327bfa9815989","url":"https://api.github.com/users/janten","html_url":"https://github.com/janten","followers_url":"https://api.github.com/users/janten/followers","following_url":"https://api.github.com/users/janten/following{/other_user}","gists_url":"https://api.github.com/users/janten/gists{/gist_id}","starred_url":"https://api.github.com/users/janten/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/janten/subscriptions","organizations_url":"https://api.github.com/users/janten/orgs","repos_url":"https://api.github.com/users/janten/repos","events_url":"https://api.github.com/users/janten/events{/privacy}","received_events_url":"https://api.github.com/users/janten/received_events","type":"User"},"id":"6463518","created_at":"2013-09-06T13:04:58Z","updated_at":"2013-09-06T13:04:58Z"}],"history":[{"user":{"login":"kogakure","id":5535,"avatar_url":"https://0.gravatar.com/avatar/b53f98d49e275e8387897de02c92288d?d=https%3A%2F%2Fidenticons.github.com%2F7ec69dd44416c46745f6edd947b470cd.png","gravatar_id":"b53f98d49e275e8387897de02c92288d","url":"https://api.github.com/users/kogakure","html_url":"https://github.com/kogakure","followers_url":"https://api.github.com/users/kogakure/followers","following_url":"https://api.github.com/users/kogakure/following{/other_user}","gists_url":"https://api.github.com/users/kogakure/gists{/gist_id}","starred_url":"https://api.github.com/users/kogakure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kogakure/subscriptions","organizations_url":"https://api.github.com/users/kogakure/orgs","repos_url":"https://api.github.com/users/kogakure/repos","events_url":"https://api.github.com/users/kogakure/events{/privacy}","received_events_url":"https://api.github.com/users/kogakure/received_events","type":"User"},"version":"3e0e8350f040f21811ceea13975086158ccae986","committed_at":"2010-06-25T06:52:37Z","change_status":{"total":3,"additions":2,"deletions":1},"url":"https://api.github.com/gists/149016/3e0e8350f040f21811ceea13975086158ccae986"},{"user":{"login":"kogakure","id":5535,"avatar_url":"https://0.gravatar.com/avatar/b53f98d49e275e8387897de02c92288d?d=https%3A%2F%2Fidenticons.github.com%2F7ec69dd44416c46745f6edd947b470cd.png","gravatar_id":"b53f98d49e275e8387897de02c92288d","url":"https://api.github.com/users/kogakure","html_url":"https://github.com/kogakure","followers_url":"https://api.github.com/users/kogakure/followers","following_url":"https://api.github.com/users/kogakure/following{/other_user}","gists_url":"https://api.github.com/users/kogakure/gists{/gist_id}","starred_url":"https://api.github.com/users/kogakure/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kogakure/subscriptions","organizations_url":"https://api.github.com/users/kogakure/orgs","repos_url":"https://api.github.com/users/kogakure/repos","events_url":"https://api.github.com/users/kogakure/events{/privacy}","received_events_url":"https://api.github.com/users/kogakure/received_events","type":"User"},"version":"a3ce60041fe20410fc55d141e77a25d26e1a562a","committed_at":"2009-07-17T11:37:43Z","change_status":{"total":22,"additions":22,"deletions":0},"url":"https://api.github.com/gists/149016/a3ce60041fe20410fc55d141e77a25d26e1a562a"}]} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/git/blobs/681fb61f1761743a02f5c790f1c762cbfe8cfad1 +{'If-None-Match': '"01162d231bc8dfd76e35f833ecebaa0e"', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4866'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'da1e9461-f849-4250-85c4-978c8e9e496d'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"01162d231bc8dfd76e35f833ecebaa0e"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:11 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/git/commits/be37b8a7f3a68631c32672dcd84d9eba27438ee6 +{'If-None-Match': '"b9013239d62338e81f6ec48bae78699e"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Thu, 22 Nov 2012 19:06:01 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4866'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '05667811-3080-4fb5-a32a-de8debc918ba'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Nov 2012 19:06:01 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"b9013239d62338e81f6ec48bae78699e"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:12 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/git/refs/tags/v1.17.0 +{'If-None-Match': '"feb5059cac897bdd13fd1205785f865c"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:41:05 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4866'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'd852d843-7bb6-4ffc-a4fb-55621588f819'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:05 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"feb5059cac897bdd13fd1205785f865c"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:13 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/git/trees/6f7c2d8c66d78863f7b91792deaead619799a1ce +{'If-None-Match': '"feb5059cac897bdd13fd1205785f865c"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:41:05 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4866'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '787d7bf1-e453-4694-87f6-bf3ed4855b87'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:05 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"feb5059cac897bdd13fd1205785f865c"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:14 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/hooks/423574 +{'If-None-Match': '"f7b3dbaaca94c0219f23e9021e78506f"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:41:06 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4866'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '40b5c72c-2017-43d7-9b3a-9f2531db400c'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:06 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"f7b3dbaaca94c0219f23e9021e78506f"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:15 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/hooks/423574 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4865'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '409e8b85-37ed-4244-b316-1824ddee228c'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '462'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:06 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"f7b3dbaaca94c0219f23e9021e78506f"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:21 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/423574","test_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks/423574/test","id":423574,"name":"travis","active":true,"events":["push","pull_request","issue_comment","public","member"],"config":{"domain":"","token":"pJdnhcDq3dQ9Cr1J1znQ","user":"jacquev6"},"last_response":{"code":200,"status":"active","message":"OK"},"updated_at":"2013-09-06T12:41:06Z","created_at":"2012-09-16T07:14:29Z"} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/issues/188 +{'If-None-Match': '"654d1a29abe3a61b096e8bffbc61c162"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:51:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4865'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'e886b291-23e5-4d71-84d7-78bb6ce13206'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:22 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/issues/comments/22686536 +{'If-None-Match': '"654d1a29abe3a61b096e8bffbc61c162"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:51:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4865'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'f9addbd4-bd0d-4978-8dae-6f91fd22763f'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:23 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/issues/events/60946408 +{'If-None-Match': '"654d1a29abe3a61b096e8bffbc61c162"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:51:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4865'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'd0f0ed2b-5a02-4538-b7cb-79e35c27f985'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:24 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/issues/events/60946408 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4864'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '92278efc-1781-4b40-9fe4-112cf30d3d3f'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '5613'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:25 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"id":60946408,"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events/60946408","actor":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"event":"assigned","commit_id":null,"created_at":"2013-08-15T05:55:32Z","issue":{"url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/labels{/name}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/comments","events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/188/events","html_url":"https://github.com/jacquev6/PyGithub/issues/188","id":17736533,"number":188,"title":"Getting the status of GitHub","user":{"login":"ruxandraburtica","id":797922,"avatar_url":"https://0.gravatar.com/avatar/5703c5907fc67b679be40fd307b07733?d=https%3A%2F%2Fidenticons.github.com%2F470a720db37e19afad67c34e30ffcd85.png","gravatar_id":"5703c5907fc67b679be40fd307b07733","url":"https://api.github.com/users/ruxandraburtica","html_url":"https://github.com/ruxandraburtica","followers_url":"https://api.github.com/users/ruxandraburtica/followers","following_url":"https://api.github.com/users/ruxandraburtica/following{/other_user}","gists_url":"https://api.github.com/users/ruxandraburtica/gists{/gist_id}","starred_url":"https://api.github.com/users/ruxandraburtica/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ruxandraburtica/subscriptions","organizations_url":"https://api.github.com/users/ruxandraburtica/orgs","repos_url":"https://api.github.com/users/ruxandraburtica/repos","events_url":"https://api.github.com/users/ruxandraburtica/events{/privacy}","received_events_url":"https://api.github.com/users/ruxandraburtica/received_events","type":"User"},"labels":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","name":"Functionalities","color":"e102d8"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Requested+by+user","name":"Requested by user","color":"e10c02"}],"state":"closed","assignee":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"milestone":{"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/31/labels","id":402388,"number":31,"title":"Version 1.19.0","description":"","creator":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"open_issues":0,"closed_issues":3,"state":"open","created_at":"2013-08-15T05:54:47Z","updated_at":"2013-09-06T09:42:02Z","due_on":null},"comments":2,"created_at":"2013-08-07T08:57:49Z","updated_at":"2013-09-06T09:11:57Z","closed_at":"2013-09-06T09:11:57Z","pull_request":{"html_url":null,"diff_url":null,"patch_url":null},"body":"Maybe I haven't found it, but it would be very useful to have methods for checking the status of the GitHub API (https://status.github.com/api)"}} + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/labels/Bug +{'If-None-Match': '"a4af9b5fe3ebc7d9ec2ecd4a637a4863"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Sat, 20 Oct 2007 11:24:19 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4864'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'd4b19adc-a9cc-4710-b146-93a5c3edb71f'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Sat, 20 Oct 2007 11:24:19 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"a4af9b5fe3ebc7d9ec2ecd4a637a4863"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:26 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/milestones/17 +{'If-None-Match': '"654d1a29abe3a61b096e8bffbc61c162"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:51:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4864'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '21cfd2f1-595f-480a-bbf0-e9259d46277e'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:28 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/users/nvie +{'If-None-Match': '"ded215d39a497c6d2de00dd5e5a5deb6"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 13:38:58 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4864'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'd669c122-58f7-447d-8d21-b48c619cca41'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 13:38:58 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"ded215d39a497c6d2de00dd5e5a5deb6"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:29 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/notifications/threads/8406712 +{'If-None-Match': '"848b2905eeb475bca3c72fe17bedcc0c"', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4863'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '974ec572-54e3-4f64-bcff-c203fea238da'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '4203'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('etag', '"a1285606034653c336a6b673a35733c1"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:29 GMT'), ('access-control-allow-origin', '*'), ('x-poll-interval', '60'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378482241')] +{"id":"8406712","unread":null,"reason":"subscribed","updated_at":"2013-03-15T05:43:11Z","last_read_at":null,"subject":{"title":"Feature/coveralls","url":"https://api.github.com/repos/ZIMK/fwadmin/pulls/21","latest_comment_url":"https://api.github.com/repos/ZIMK/fwadmin/issues/comments/14944813","type":"PullRequest"},"repository":{"id":8432784,"name":"fwadmin","full_name":"ZIMK/fwadmin","owner":{"login":"ZIMK","id":1187008,"avatar_url":"https://2.gravatar.com/avatar/ce407a684dac7cf642606501244dd9f0?d=https%3A%2F%2Fidenticons.github.com%2Fa8b50d6bf21d85e47ce11e1d23087af2.png","gravatar_id":"ce407a684dac7cf642606501244dd9f0","url":"https://api.github.com/users/ZIMK","html_url":"https://github.com/ZIMK","followers_url":"https://api.github.com/users/ZIMK/followers","following_url":"https://api.github.com/users/ZIMK/following{/other_user}","gists_url":"https://api.github.com/users/ZIMK/gists{/gist_id}","starred_url":"https://api.github.com/users/ZIMK/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ZIMK/subscriptions","organizations_url":"https://api.github.com/users/ZIMK/orgs","repos_url":"https://api.github.com/users/ZIMK/repos","events_url":"https://api.github.com/users/ZIMK/events{/privacy}","received_events_url":"https://api.github.com/users/ZIMK/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/ZIMK/fwadmin","description":"Django based self-service firewall config tool","fork":true,"url":"https://api.github.com/repos/ZIMK/fwadmin","forks_url":"https://api.github.com/repos/ZIMK/fwadmin/forks","keys_url":"https://api.github.com/repos/ZIMK/fwadmin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ZIMK/fwadmin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ZIMK/fwadmin/teams","hooks_url":"https://api.github.com/repos/ZIMK/fwadmin/hooks","issue_events_url":"https://api.github.com/repos/ZIMK/fwadmin/issues/events{/number}","events_url":"https://api.github.com/repos/ZIMK/fwadmin/events","assignees_url":"https://api.github.com/repos/ZIMK/fwadmin/assignees{/user}","branches_url":"https://api.github.com/repos/ZIMK/fwadmin/branches{/branch}","tags_url":"https://api.github.com/repos/ZIMK/fwadmin/tags","blobs_url":"https://api.github.com/repos/ZIMK/fwadmin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ZIMK/fwadmin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ZIMK/fwadmin/git/refs{/sha}","trees_url":"https://api.github.com/repos/ZIMK/fwadmin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ZIMK/fwadmin/statuses/{sha}","languages_url":"https://api.github.com/repos/ZIMK/fwadmin/languages","stargazers_url":"https://api.github.com/repos/ZIMK/fwadmin/stargazers","contributors_url":"https://api.github.com/repos/ZIMK/fwadmin/contributors","subscribers_url":"https://api.github.com/repos/ZIMK/fwadmin/subscribers","subscription_url":"https://api.github.com/repos/ZIMK/fwadmin/subscription","commits_url":"https://api.github.com/repos/ZIMK/fwadmin/commits{/sha}","git_commits_url":"https://api.github.com/repos/ZIMK/fwadmin/git/commits{/sha}","comments_url":"https://api.github.com/repos/ZIMK/fwadmin/comments{/number}","issue_comment_url":"https://api.github.com/repos/ZIMK/fwadmin/issues/comments/{number}","contents_url":"https://api.github.com/repos/ZIMK/fwadmin/contents/{+path}","compare_url":"https://api.github.com/repos/ZIMK/fwadmin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ZIMK/fwadmin/merges","archive_url":"https://api.github.com/repos/ZIMK/fwadmin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ZIMK/fwadmin/downloads","issues_url":"https://api.github.com/repos/ZIMK/fwadmin/issues{/number}","pulls_url":"https://api.github.com/repos/ZIMK/fwadmin/pulls{/number}","milestones_url":"https://api.github.com/repos/ZIMK/fwadmin/milestones{/number}","notifications_url":"https://api.github.com/repos/ZIMK/fwadmin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ZIMK/fwadmin/labels{/name}"},"url":"https://api.github.com/notifications/threads/8406712","subscription_url":"https://api.github.com/notifications/threads/8406712/subscription"} + +https +GET +api.github.com +None +/orgs/BeaverSoftware +{'If-None-Match': '"99d8ce990ccf1acbb3508bd20d9883e4"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Wed, 23 Jan 2013 12:15:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4863'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '2941dffb-707a-40d0-b4e7-a66e923fa01e'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 23 Jan 2013 12:15:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"99d8ce990ccf1acbb3508bd20d9883e4"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:30 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/pulls/31 +{'If-None-Match': '"654d1a29abe3a61b096e8bffbc61c162"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:51:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4863'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '70632470-ec82-4aed-9456-a63147919253'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:32 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub/pulls/comments/1580134 +{'If-None-Match': '"654d1a29abe3a61b096e8bffbc61c162"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:51:22 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4863'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '2ca3f96b-7771-41a5-9aba-d8dedc12e465'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:51:22 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"654d1a29abe3a61b096e8bffbc61c162"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:35 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/repos/jacquev6/PyGithub +{'If-None-Match': '"feb5059cac897bdd13fd1205785f865c"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Fri, 06 Sep 2013 12:41:05 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4863'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'beb42a35-9e06-4b99-9abc-5b7e4e71fa85'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Fri, 06 Sep 2013 12:41:05 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"feb5059cac897bdd13fd1205785f865c"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:36 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + +https +GET +api.github.com +None +/teams/141487 +{'If-None-Match': '"a4af9b5fe3ebc7d9ec2ecd4a637a4863"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Sat, 20 Oct 2007 11:24:19 GMT'} +null +304 +[('status', '304 Not Modified'), ('x-ratelimit-remaining', '4863'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', 'd65865d1-e84d-418b-8465-54b9c8034ead'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('last-modified', 'Sat, 20 Oct 2007 11:24:19 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"a4af9b5fe3ebc7d9ec2ecd4a637a4863"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Fri, 06 Sep 2013 15:06:37 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1378482241')] + + diff --git a/github/tests/ReplayData/Gist.testFork.txt b/github/tests/ReplayData/Gist.testFork.txt index 48f011ec..0589aa6c 100644 --- a/github/tests/ReplayData/Gist.testFork.txt +++ b/github/tests/ReplayData/Gist.testFork.txt @@ -2,32 +2,32 @@ https GET api.github.com None -/gists/2729818 +/gists/6296553 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} null 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4970'), ('content-length', '2576'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"fda4eb92e9b9a245bccf9efd47857766"'), ('date', 'Sat, 19 May 2012 07:25:30 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"git_push_url":"git@gist.github.com:2729818.git","updated_at":"2012-05-19T07:06:08Z","forks":[],"url":"https://api.github.com/gists/2729818","comments":0,"public":true,"files":{"ror.markdown":{"type":"text/plain","raw_url":"https://gist.github.com/raw/2729818/1284e70f4c16550ef32a26aa4f5f0c78edaa7008/ror.markdown","size":1076,"filename":"ror.markdown","content":"## create user\n\nsudo useradd -m username\nvisudo\n\n## delete default user\n\nsudo userdel ubuntu\nsudo rm -Rf ubuntu\n\n## setup ssh\n\nmkdir ~/.ssh\nvi /etc/ssh/authorized_keys\nsudo vi /etc/ssh/sshd_config\n\n\n## install packages\n\nsudo apt-get update\n\nsudo apt-get install sysv-rc-init git-core apache2-utils wget vim\nsudo apt-get install mysql-client mysql-server libmysqld-dev\nsudo apt-get install g++ openssl zlib1g readline-common libyaml-dev libssl-dev zlib1g-dev libxml2-dev libxslt1-dev libjson0-dev libgcc1 libreadline-dev\n\n\n## install nginx\n\nwget http://nginx.org/keys/nginx_signing.key\nsudo apt-key add nginx_signing.key\n\n### add /etc/sources.list\n> \"deb http://nginx.org/packages/ubuntu/ lucid nginx\ndeb-src http://nginx.org/packages/ubuntu/ lucid nginx\"\n\napt-get update\napt-get install nginx\n\n\n## setup system\n\nsudo sysv-rc-init\n\n\n## install ruby\n\ncd /usr/local/src\nsudo wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz\nsudo tar zxvf ruby-1.9.3-p194.tar.gz\ncd ruby-1.9.3-p194\nsudo ./configure\nsudo make && make install\n\n\n## install RoR\n\nsudo gem install rails","language":"Markdown"}},"html_url":"https://gist.github.com/2729818","user":{"url":"https://api.github.com/users/Kechol","gravatar_id":"f2a6400b393749ccd9ad3f24d4995f77","login":"Kechol","avatar_url":"https://secure.gravatar.com/avatar/f2a6400b393749ccd9ad3f24d4995f77?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":625489},"description":"RoR setup in AWS EC2(Ubuntu 12.04 LTS)","created_at":"2012-05-19T07:06:08Z","git_pull_url":"git://gist.github.com/2729818.git","id":"2729818","history":[{"url":"https://api.github.com/gists/2729818/a655d19a12233e5e5615deb714eae95c433eed57","version":"a655d19a12233e5e5615deb714eae95c433eed57","change_status":{"deletions":0,"additions":57,"total":57},"committed_at":"2012-05-19T07:06:08Z","user":{"url":"https://api.github.com/users/Kechol","gravatar_id":"f2a6400b393749ccd9ad3f24d4995f77","login":"Kechol","avatar_url":"https://secure.gravatar.com/avatar/f2a6400b393749ccd9ad3f24d4995f77?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":625489}}]} +[('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '25285'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:26:50 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"b96b3895f5da8f5e9533f0db72748a49"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 21 Aug 2013 16:28:20 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377104997')] +{"url":"https://api.github.com/gists/6296553","forks_url":"https://api.github.com/gists/6296553/forks","commits_url":"https://api.github.com/gists/6296553/commits","id":"6296553","git_pull_url":"https://gist.github.com/6296553.git","git_push_url":"https://gist.github.com/6296553.git","html_url":"https://gist.github.com/6296553","files":{"GithubAPI.lua":{"filename":"GithubAPI.lua","type":"text/plain","language":"Lua","raw_url":"https://gist.github.com/raw/6296553/88aafa25fb28e17013054a117354a37f0d78963c/GithubAPI.lua","size":21229,"content":"-- GithubAPI\n-- @Author : Hyro Vitaly Protago\n-- @Version : 1.0.0\n\n--[[\n\nINFOS :\n - Cannot delete an anonymous gist\n]]--\n\nGithubAPI = {\n\tlocation = \"https://api.github.com/\",\n\ttoken = nil,\n\tOAuth = {\n\t\tauthorizations = {}\n\t},\n\tgist = {\n\t\tlist = {},\n\t\tcomment = {}\n\t},\n\tgithub = {}\n}\n\n----------------------------------------------------------------------------\n------------------------------ Github API ----------------------------------\n----------------------------------------------------------------------------\n\n--- Authentication ---\n\n--[[ Scopes --\n\nScopes let you specify exactly what type of access you need. Scopes limit access for OAuth tokens.\nThey do not grant any additional permission beyond that which the user already has.\n\nFor the web flow, requested scopes will be displayed to the user on the authorize form.\n\nCheck headers to see what OAuth scopes you have, and what the API action accepts.\n\n~~~\n$ curl -H \"Authorization: token OAUTH-TOKEN\" https://api.github.com/users/technoweenie -I\nHTTP/1.1 200 OK\nX-OAuth-Scopes: repo, user\nX-Accepted-OAuth-Scopes: user\nX-OAuth-Scopes lists the scopes your token has authorized. X-Accepted-OAuth-Scopes lists the scopes that the action checks for.\n~~~\n\n- (no scope)\npublic read-only access (includes public user profile info, public repo info, and gists).\n- user\nRead/write access to profile info only. Note: this scope includes user:email and user:follow.\n- user:email\nRead access to a user’s email addresses.\n- user:follow\nAccess to follow or unfollow other users.\n- public_repo\nRead/write access to public repos and organizations.\n- repo\nRead/write access to public and private repos and organizations.\n- repo:status\nRead/write access to public and private repository commit statuses.\nThis scope is only necessary to grant other users or services access to private repository commit statuses without granting access to the code.\nThe repo and public_repo scopes already include access to commit status for private and public repositories respectively.\n- delete_repo\nDelete access to adminable repositories.\n- notifications\nRead access to a user’s notifications. repo is accepted too.\n- gist\nWrite access to gists.\n\nNOTE: Your application can request the scopes in the initial redirection. You can specify multiple scopes by separating them by a comma.\n~~~\nhttps://github.com/login/oauth/authorize?\n client_id=...&\n scope=user,public_repo\n~~~\n]]--\n\n-- Redirect users to request GitHub access --\nfunction GithubAPI.OAuth.getToken(client_id, scope, callback)\n\tGithubAPI.http_request(\"https://github.com/login/oauth/authorize?client_id=\"..client_id..\"&scope=\"..scope, function(data, status, headers)\n\t\tGithubAPI.OAuth._getToken(client_id, client_secret, data, callback)\n\tend, nil, true)\nend\n-- GitHub redirects back to your site --\nfunction GithubAPI.OAuth._getToken(client_id, client_secret, code, callback)\n\tGithubAPI.http_request(\"https://github.com/login/oauth/access_token\", callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tclient_id = client_id,\n\t\t\tclient_secret = client_secret,\n\t\t\tcode = code\n\t\t}\n\t}, true)\nend\n\n-- List your authorizations --\nfunction GithubAPI.OAuth.authorizations.list(callback)\n\tGithubAPI.http_request(\"authorizations\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nLink: ; rel=\"next\",\n ; rel=\"last\"\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n }\n]\n]]--\n\n-- Get a single authorization --\nfunction GithubAPI.OAuth.authorizations.get(id, callback)\n\tGithubAPI.http_request(\"authorizations/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n}\n]]--\n\n-- Create a new authorization --\nfunction GithubAPI.OAuth.authorizations.create(callback, scopes, note, note_url, client_id, client_secret)\n\tGithubAPI.http_request(\"authorizations/\", callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tscopes = scopes,\n\t\t\tnote = note,\n\t\t\tnote_url = note_url,\n\t\t\tclient_id = client_id,\n\t\t\tclient_secret = client_secret\n\t\t}\n\t})\nend\n\n--[[ Input --\nscopes\nOptional array - A list of scopes that this authorization is in.\n\nnote\nOptional string - A note to remind you what the OAuth token is for.\n\nnote_url\nOptional string - A URL to remind you what app the OAuth token is for.\n\nclient_id\nOptional String - The 20 character OAuth app client key for which to create the token.\n\nclient_secret\nOptional String - The 40 character OAuth app client secret for which to create the token.\n~~~\n{\n \"scopes\": [\n \"public_repo\"\n ],\n \"note\": \"admin script\"\n}\n~~~\n]]--\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/authorizations/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n}\n]]--\n\n-- TODO\n-- Update\n-- Check\n-- Delete\n\n--- GISTS ---\n\n-- List gists --\nfunction GithubAPI.gist.list.user(user, callback)\n\tGithubAPI.http_request(\"users/\"..user..\"/gists\", callback)\nend\nfunction GithubAPI.gist.list.all(callback) -- return all public gists if called anonymously\n\tGithubAPI.http_request(\"gists\", callback)\nend\nfunction GithubAPI.gist.list.allPublic(callback)\n\tGithubAPI.http_request(\"gists/public\", callback)\nend\nfunction GithubAPI.gist.list.starred(callback)\n\tGithubAPI.http_request(\"gists/starred\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nLink: ; rel=\"next\",\n ; rel=\"last\"\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\"\n }\n]\n]]--\n\n-- Get a single gist --\nfunction GithubAPI.gist.get(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Create a gist --\nfunction GithubAPI.gist.create(public, files, callback ,description)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tpublic = public,\n\t\t\tfiles = files,\n\t\t\tdescription = description\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"description\": \"the description for this gist\",\n \"public\": true,\n \"files\": {\n \"file1.txt\": {\n \"content\": \"String file contents\"\n }\n }\n}\n]]--\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Edit a gist --\nfunction GithubAPI.gist.edit(id, files, callback, description)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {\n\t\tmethod = \"PATCH\",\n\t\tdata = {\n\t\t\tid = id,\n\t\t\tfiles = files,\n\t\t\tdescription = description\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"description\": \"the description for this gist\",\n \"files\": {\n \"file1.txt\": {\n \"content\": \"updated file contents\"\n },\n \"old_name.txt\": {\n \"filename\": \"new_name.txt\",\n \"content\": \"modified contents\"\n },\n \"new_file.txt\": {\n \"content\": \"a new file\"\n },\n \"delete_this_file.txt\": null\n }\n}\n]]--\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Star a gist --\nfunction GithubAPI.gist.star(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback, {method=\"PUT\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Unstar a gist --\nfunction GithubAPI.gist.unstar(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback, {method=\"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Check if a gist is starred --\nfunction GithubAPI.gist.checkStar(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback)\nend\n\n--[[\n-- Response if gist is starred --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n\n-- Response if gist is not starred --\nStatus: 404 Not Found\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Fork a gist --\nfunction GithubAPI.gist.fork(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/forks\", callback, {method=\"POST\"})\nend\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/2\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\"\n}\n]]--\n\n-- Delete a gist --\nfunction GithubAPI.gist.delete(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {method=\"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n--- GISTS COMMENTS ---\n\n-- List comments on a gist --\nfunction GithubAPI.gist.comment.list(gist_id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n }\n]\n]]--\n\n-- Get a single comment --\nfunction GithubAPI.gist.comment.get(gist_id, id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Create a comment --\nfunction GithubAPI.gist.comment.create(gist_id, body, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tbody = body\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"body\": \"Just commenting for the sake of commenting\"\n}\n]]--\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/comments/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Edit a comment --\nfunction GithubAPI.gist.comment.edit(gist_id, id, body, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {\n\t\tmethod = \"PATCH\",\n\t\tdata = {\n\t\t\tbody = body\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"body\": \"Just commenting for the sake of commenting\"\n}\n]]--\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Delete a comment --\nfunction GithubAPI.gist.comment.delete(gist_id, id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {method = \"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n----------------------------------------------------------------------------\n-------------------------------- TOOLS -------------------------------------\n----------------------------------------------------------------------------\n\nfunction GithubAPI.http_request(url, callback, opts, fullUrl)\n\topts = opts or {}\n\t-- if GithubAPI.token then opts.headers = TOKEN BEARER\n\tif opts.data then opts.data = json.encode(opts.data) end\n\n\tlocal _url\n\tif (fullUrl) then _url = url else _url = GithubAPI.location .. url end\n\n\thttp.request(_url, function(data, status, headers)\n\t\tif (status == 500) then error(\"Github: Internal Server Error ...\") end\n\t\tdata = json.decode(data)\n\t\tcallback(data, status, headers)\n\tend, alert, opts)\nend\n\nfunction GithubAPI.explode(div,str) -- credit: http://richard.warburton.it\n if (div=='') then return false end\n local pos,arr = 0,{}\n for st,sp in function() return string.find(str,div,pos,true) end do\n table.insert(arr,string.sub(str,pos,st-1))\n pos = sp + 1\n end\n table.insert(arr,string.sub(str,pos))\n return arr\nend\n\n-- GITHUB TIMESTAMP (YYYY-MM-DDTHH:MM:SSZ) to os.time\nfunction GithubAPI.gtimestamp(githubTime)\n\tgithubTime = githubTime:sub(1, #githubTime-1) -- remove Z\n\tgithubTime = GithubAPI.explode(\"T\", githubTime)\n\tgithubTime[1] = GithubAPI.explode(\"-\", githubTime[1])\n\tgithubTime[2] = GithubAPI.explode(\":\", githubTime[2])\n\treturn os.time({\n\t\tyear = tonumber(githubTime[1][1]),\n\t\tmonth = tonumber(githubTime[1][2]),\n\t\tday = tonumber(githubTime[1][3]),\n\t\thour = tonumber(githubTime[2][1]),\n\t\tmin = tonumber(githubTime[2][2]),\n\t\tsec = tonumber(githubTime[2][3])\n\t})\nend"}},"public":true,"created_at":"2013-08-21T16:12:27Z","updated_at":"2013-08-21T16:26:50Z","description":"Github API","comments":0,"user":{"login":"HyroVitalyProtago","id":3470988,"avatar_url":"https://2.gravatar.com/avatar/ed59562b231a649345f38703948f76f4?d=https%3A%2F%2Fidenticons.github.com%2F6582cb986b7a730b12f7c18dfcc865f0.png","gravatar_id":"ed59562b231a649345f38703948f76f4","url":"https://api.github.com/users/HyroVitalyProtago","html_url":"https://github.com/HyroVitalyProtago","followers_url":"https://api.github.com/users/HyroVitalyProtago/followers","following_url":"https://api.github.com/users/HyroVitalyProtago/following{/other_user}","gists_url":"https://api.github.com/users/HyroVitalyProtago/gists{/gist_id}","starred_url":"https://api.github.com/users/HyroVitalyProtago/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HyroVitalyProtago/subscriptions","organizations_url":"https://api.github.com/users/HyroVitalyProtago/orgs","repos_url":"https://api.github.com/users/HyroVitalyProtago/repos","events_url":"https://api.github.com/users/HyroVitalyProtago/events{/privacy}","received_events_url":"https://api.github.com/users/HyroVitalyProtago/received_events","type":"User"},"comments_url":"https://api.github.com/gists/6296553/comments","forks":[],"history":[{"user":null,"version":"c464aecd7fea16684e935607eeea7ae4f8caa0e2","committed_at":"2013-08-21T16:12:27Z","change_status":{"total":793,"additions":793,"deletions":0},"url":"https://api.github.com/gists/6296553/c464aecd7fea16684e935607eeea7ae4f8caa0e2"}]} https POST api.github.com None -/gists/2729818/fork +/gists/6296553/forks {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} null 201 -[('status', '201 Created'), ('x-ratelimit-remaining', '4969'), ('content-length', '873'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"502531cd2afdff81b572c8565b17f601"'), ('date', 'Sat, 19 May 2012 07:25:30 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/gists/2729865')] -{"updated_at":"2012-05-19T07:25:30Z","url":"https://api.github.com/gists/2729865","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2729865.git","files":{"ror.markdown":{"raw_url":"https://gist.github.com/raw/2729865/1284e70f4c16550ef32a26aa4f5f0c78edaa7008/ror.markdown","type":"text/plain","size":1076,"filename":"ror.markdown","language":"Markdown"}},"html_url":"https://gist.github.com/2729865","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","login":"jacquev6","id":327146},"description":"RoR setup in AWS EC2(Ubuntu 12.04 LTS)","created_at":"2012-05-19T07:25:30Z","git_push_url":"git@gist.github.com:2729865.git","id":"2729865"} +[('status', '201 Created'), ('x-ratelimit-remaining', '4965'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('cache-control', 'max-age=0, private, must-revalidate'), ('content-length', '1510'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('location', 'https://api.github.com/gists/6296732'), ('access-control-allow-credentials', 'true'), ('date', 'Wed, 21 Aug 2013 16:28:24 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('etag', '"ceb086d4f395719d1124cade5cedbfd4"'), ('x-ratelimit-reset', '1377104997')] +{"url":"https://api.github.com/gists/6296732","forks_url":"https://api.github.com/gists/6296732/forks","commits_url":"https://api.github.com/gists/6296732/commits","id":"6296732","git_pull_url":"https://gist.github.com/6296732.git","git_push_url":"https://gist.github.com/6296732.git","html_url":"https://gist.github.com/6296732","files":{},"public":true,"created_at":"2013-08-21T16:28:24Z","updated_at":"2013-08-21T16:28:24Z","description":"Github API","comments":0,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://1.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"comments_url":"https://api.github.com/gists/6296732/comments"} https GET api.github.com None -/gists/2729865 +/gists/6296732 {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} null 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4966'), ('content-length', '3460'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"e829012f18db493a69740de762186eb5"'), ('date', 'Sat, 19 May 2012 07:26:54 GMT'), ('content-type', 'application/json; charset=utf-8')] -{"user":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"description":"RoR setup in AWS EC2(Ubuntu 12.04 LTS)","comments":0,"updated_at":"2012-05-19T07:25:30Z","public":true,"git_pull_url":"git://gist.github.com/2729865.git","history":[{"user":{"url":"https://api.github.com/users/Kechol","avatar_url":"https://secure.gravatar.com/avatar/f2a6400b393749ccd9ad3f24d4995f77?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"f2a6400b393749ccd9ad3f24d4995f77","login":"Kechol","id":625489},"change_status":{"total":57,"deletions":0,"additions":57},"committed_at":"2012-05-19T07:06:08Z","version":"a655d19a12233e5e5615deb714eae95c433eed57","url":"https://api.github.com/gists/2729865/a655d19a12233e5e5615deb714eae95c433eed57"}],"git_push_url":"git@gist.github.com:2729865.git","url":"https://api.github.com/gists/2729865","fork_of":{"user":{"url":"https://api.github.com/users/Kechol","avatar_url":"https://secure.gravatar.com/avatar/f2a6400b393749ccd9ad3f24d4995f77?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"f2a6400b393749ccd9ad3f24d4995f77","login":"Kechol","id":625489},"description":"RoR setup in AWS EC2(Ubuntu 12.04 LTS)","comments":0,"updated_at":"2012-05-19T07:06:08Z","public":true,"git_pull_url":"git://gist.github.com/2729818.git","git_push_url":"git@gist.github.com:2729818.git","url":"https://api.github.com/gists/2729818","html_url":"https://gist.github.com/2729818","id":"2729818","created_at":"2012-05-19T07:06:08Z","files":{"ror.markdown":{"type":"text/plain","size":1076,"filename":"ror.markdown","raw_url":"https://gist.github.com/raw/2729818/1284e70f4c16550ef32a26aa4f5f0c78edaa7008/ror.markdown","language":"Markdown"}}},"html_url":"https://gist.github.com/2729865","id":"2729865","forks":[],"created_at":"2012-05-19T07:25:30Z","files":{"ror.markdown":{"content":"## create user\n\nsudo useradd -m username\nvisudo\n\n## delete default user\n\nsudo userdel ubuntu\nsudo rm -Rf ubuntu\n\n## setup ssh\n\nmkdir ~/.ssh\nvi /etc/ssh/authorized_keys\nsudo vi /etc/ssh/sshd_config\n\n\n## install packages\n\nsudo apt-get update\n\nsudo apt-get install sysv-rc-init git-core apache2-utils wget vim\nsudo apt-get install mysql-client mysql-server libmysqld-dev\nsudo apt-get install g++ openssl zlib1g readline-common libyaml-dev libssl-dev zlib1g-dev libxml2-dev libxslt1-dev libjson0-dev libgcc1 libreadline-dev\n\n\n## install nginx\n\nwget http://nginx.org/keys/nginx_signing.key\nsudo apt-key add nginx_signing.key\n\n### add /etc/sources.list\n> \"deb http://nginx.org/packages/ubuntu/ lucid nginx\ndeb-src http://nginx.org/packages/ubuntu/ lucid nginx\"\n\napt-get update\napt-get install nginx\n\n\n## setup system\n\nsudo sysv-rc-init\n\n\n## install ruby\n\ncd /usr/local/src\nsudo wget ftp://ftp.ruby-lang.org/pub/ruby/1.9/ruby-1.9.3-p194.tar.gz\nsudo tar zxvf ruby-1.9.3-p194.tar.gz\ncd ruby-1.9.3-p194\nsudo ./configure\nsudo make && make install\n\n\n## install RoR\n\nsudo gem install rails","type":"text/plain","size":1076,"filename":"ror.markdown","raw_url":"https://gist.github.com/raw/2729865/1284e70f4c16550ef32a26aa4f5f0c78edaa7008/ror.markdown","language":"Markdown"}}} +[('status', '200 OK'), ('x-ratelimit-remaining', '4964'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '26806'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:28:24 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"f2916c23435522156274bed022a322e7"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 21 Aug 2013 16:28:25 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377104997')] +{"url":"https://api.github.com/gists/6296732","forks_url":"https://api.github.com/gists/6296732/forks","commits_url":"https://api.github.com/gists/6296732/commits","id":"6296732","git_pull_url":"https://gist.github.com/6296732.git","git_push_url":"https://gist.github.com/6296732.git","html_url":"https://gist.github.com/6296732","files":{"GithubAPI.lua":{"filename":"GithubAPI.lua","type":"text/plain","language":"Lua","raw_url":"https://gist.github.com/raw/6296732/88aafa25fb28e17013054a117354a37f0d78963c/GithubAPI.lua","size":21229,"content":"-- GithubAPI\n-- @Author : Hyro Vitaly Protago\n-- @Version : 1.0.0\n\n--[[\n\nINFOS :\n - Cannot delete an anonymous gist\n]]--\n\nGithubAPI = {\n\tlocation = \"https://api.github.com/\",\n\ttoken = nil,\n\tOAuth = {\n\t\tauthorizations = {}\n\t},\n\tgist = {\n\t\tlist = {},\n\t\tcomment = {}\n\t},\n\tgithub = {}\n}\n\n----------------------------------------------------------------------------\n------------------------------ Github API ----------------------------------\n----------------------------------------------------------------------------\n\n--- Authentication ---\n\n--[[ Scopes --\n\nScopes let you specify exactly what type of access you need. Scopes limit access for OAuth tokens.\nThey do not grant any additional permission beyond that which the user already has.\n\nFor the web flow, requested scopes will be displayed to the user on the authorize form.\n\nCheck headers to see what OAuth scopes you have, and what the API action accepts.\n\n~~~\n$ curl -H \"Authorization: token OAUTH-TOKEN\" https://api.github.com/users/technoweenie -I\nHTTP/1.1 200 OK\nX-OAuth-Scopes: repo, user\nX-Accepted-OAuth-Scopes: user\nX-OAuth-Scopes lists the scopes your token has authorized. X-Accepted-OAuth-Scopes lists the scopes that the action checks for.\n~~~\n\n- (no scope)\npublic read-only access (includes public user profile info, public repo info, and gists).\n- user\nRead/write access to profile info only. Note: this scope includes user:email and user:follow.\n- user:email\nRead access to a user’s email addresses.\n- user:follow\nAccess to follow or unfollow other users.\n- public_repo\nRead/write access to public repos and organizations.\n- repo\nRead/write access to public and private repos and organizations.\n- repo:status\nRead/write access to public and private repository commit statuses.\nThis scope is only necessary to grant other users or services access to private repository commit statuses without granting access to the code.\nThe repo and public_repo scopes already include access to commit status for private and public repositories respectively.\n- delete_repo\nDelete access to adminable repositories.\n- notifications\nRead access to a user’s notifications. repo is accepted too.\n- gist\nWrite access to gists.\n\nNOTE: Your application can request the scopes in the initial redirection. You can specify multiple scopes by separating them by a comma.\n~~~\nhttps://github.com/login/oauth/authorize?\n client_id=...&\n scope=user,public_repo\n~~~\n]]--\n\n-- Redirect users to request GitHub access --\nfunction GithubAPI.OAuth.getToken(client_id, scope, callback)\n\tGithubAPI.http_request(\"https://github.com/login/oauth/authorize?client_id=\"..client_id..\"&scope=\"..scope, function(data, status, headers)\n\t\tGithubAPI.OAuth._getToken(client_id, client_secret, data, callback)\n\tend, nil, true)\nend\n-- GitHub redirects back to your site --\nfunction GithubAPI.OAuth._getToken(client_id, client_secret, code, callback)\n\tGithubAPI.http_request(\"https://github.com/login/oauth/access_token\", callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tclient_id = client_id,\n\t\t\tclient_secret = client_secret,\n\t\t\tcode = code\n\t\t}\n\t}, true)\nend\n\n-- List your authorizations --\nfunction GithubAPI.OAuth.authorizations.list(callback)\n\tGithubAPI.http_request(\"authorizations\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nLink: ; rel=\"next\",\n ; rel=\"last\"\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n }\n]\n]]--\n\n-- Get a single authorization --\nfunction GithubAPI.OAuth.authorizations.get(id, callback)\n\tGithubAPI.http_request(\"authorizations/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n}\n]]--\n\n-- Create a new authorization --\nfunction GithubAPI.OAuth.authorizations.create(callback, scopes, note, note_url, client_id, client_secret)\n\tGithubAPI.http_request(\"authorizations/\", callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tscopes = scopes,\n\t\t\tnote = note,\n\t\t\tnote_url = note_url,\n\t\t\tclient_id = client_id,\n\t\t\tclient_secret = client_secret\n\t\t}\n\t})\nend\n\n--[[ Input --\nscopes\nOptional array - A list of scopes that this authorization is in.\n\nnote\nOptional string - A note to remind you what the OAuth token is for.\n\nnote_url\nOptional string - A URL to remind you what app the OAuth token is for.\n\nclient_id\nOptional String - The 20 character OAuth app client key for which to create the token.\n\nclient_secret\nOptional String - The 40 character OAuth app client secret for which to create the token.\n~~~\n{\n \"scopes\": [\n \"public_repo\"\n ],\n \"note\": \"admin script\"\n}\n~~~\n]]--\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/authorizations/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/authorizations/1\",\n \"scopes\": [\n \"public_repo\"\n ],\n \"token\": \"abc123\",\n \"app\": {\n \"url\": \"http://my-github-app.com\",\n \"name\": \"my github app\",\n \"client_id\": \"abcde12345fghij67890\"\n },\n \"note\": \"optional note\",\n \"note_url\": \"http://optional/note/url\",\n \"updated_at\": \"2011-09-06T20:39:23Z\",\n \"created_at\": \"2011-09-06T17:26:27Z\"\n}\n]]--\n\n-- TODO\n-- Update\n-- Check\n-- Delete\n\n--- GISTS ---\n\n-- List gists --\nfunction GithubAPI.gist.list.user(user, callback)\n\tGithubAPI.http_request(\"users/\"..user..\"/gists\", callback)\nend\nfunction GithubAPI.gist.list.all(callback) -- return all public gists if called anonymously\n\tGithubAPI.http_request(\"gists\", callback)\nend\nfunction GithubAPI.gist.list.allPublic(callback)\n\tGithubAPI.http_request(\"gists/public\", callback)\nend\nfunction GithubAPI.gist.list.starred(callback)\n\tGithubAPI.http_request(\"gists/starred\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nLink: ; rel=\"next\",\n ; rel=\"last\"\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\"\n }\n]\n]]--\n\n-- Get a single gist --\nfunction GithubAPI.gist.get(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Create a gist --\nfunction GithubAPI.gist.create(public, files, callback ,description)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tpublic = public,\n\t\t\tfiles = files,\n\t\t\tdescription = description\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"description\": \"the description for this gist\",\n \"public\": true,\n \"files\": {\n \"file1.txt\": {\n \"content\": \"String file contents\"\n }\n }\n}\n]]--\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Edit a gist --\nfunction GithubAPI.gist.edit(id, files, callback, description)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {\n\t\tmethod = \"PATCH\",\n\t\tdata = {\n\t\t\tid = id,\n\t\t\tfiles = files,\n\t\t\tdescription = description\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"description\": \"the description for this gist\",\n \"files\": {\n \"file1.txt\": {\n \"content\": \"updated file contents\"\n },\n \"old_name.txt\": {\n \"filename\": \"new_name.txt\",\n \"content\": \"modified contents\"\n },\n \"new_file.txt\": {\n \"content\": \"a new file\"\n },\n \"delete_this_file.txt\": null\n }\n}\n]]--\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\",\n \"forks\": [\n {\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"url\": \"https://api.github.com/gists/add0d71b065f55c46f60\",\n \"created_at\": \"2011-04-14T16:00:49Z\"\n }\n ],\n \"history\": [\n {\n \"url\": \"https://api.github.com/gists/80bdb0d081c447600e18\",\n \"version\": \"57a7f021a713b1c5a6a199b54cc514735d2d462f\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"change_status\": {\n \"deletions\": 0,\n \"additions\": 180,\n \"total\": 180\n },\n \"committed_at\": \"2010-04-14T02:15:15Z\"\n }\n ]\n}\n]]--\n\n-- Star a gist --\nfunction GithubAPI.gist.star(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback, {method=\"PUT\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Unstar a gist --\nfunction GithubAPI.gist.unstar(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback, {method=\"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Check if a gist is starred --\nfunction GithubAPI.gist.checkStar(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/star\", callback)\nend\n\n--[[\n-- Response if gist is starred --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n\n-- Response if gist is not starred --\nStatus: 404 Not Found\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n-- Fork a gist --\nfunction GithubAPI.gist.fork(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id..\"/forks\", callback, {method=\"POST\"})\nend\n\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/2\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"url\": \"https://api.github.com/gists/88a3112be74ba6ad701e\",\n \"id\": \"1\",\n \"description\": \"description of gist\",\n \"public\": true,\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"files\": {\n \"ring.erl\": {\n \"size\": 932,\n \"filename\": \"ring.erl\",\n \"raw_url\": \"https://gist.github.com/raw/365370/8c4d2d43d178df44f4c03a7f2ac0ff512853564e/ring.erl\"\n }\n },\n \"comments\": 0,\n \"comments_url\": \"https://api.github.com/gists/8438e99468ee9a4ab10e/comments/\",\n \"html_url\": \"https://gist.github.com/1\",\n \"git_pull_url\": \"git://gist.github.com/1.git\",\n \"git_push_url\": \"git@gist.github.com:1.git\",\n \"created_at\": \"2010-04-14T02:15:15Z\"\n}\n]]--\n\n-- Delete a gist --\nfunction GithubAPI.gist.delete(id, callback)\n\tGithubAPI.http_request(\"gists/\"..id, callback, {method=\"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n--- GISTS COMMENTS ---\n\n-- List comments on a gist --\nfunction GithubAPI.gist.comment.list(gist_id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments\", callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n[\n {\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n }\n]\n]]--\n\n-- Get a single comment --\nfunction GithubAPI.gist.comment.get(gist_id, id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback)\nend\n\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Create a comment --\nfunction GithubAPI.gist.comment.create(gist_id, body, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {\n\t\tmethod = \"POST\",\n\t\tdata = {\n\t\t\tbody = body\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"body\": \"Just commenting for the sake of commenting\"\n}\n]]--\n--[[ Response --\nStatus: 201 Created\nLocation: https://api.github.com/gists/comments/1\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Edit a comment --\nfunction GithubAPI.gist.comment.edit(gist_id, id, body, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {\n\t\tmethod = \"PATCH\",\n\t\tdata = {\n\t\t\tbody = body\n\t\t}\n\t})\nend\n\n--[[ Input --\n{\n \"body\": \"Just commenting for the sake of commenting\"\n}\n]]--\n--[[ Response --\nStatus: 200 OK\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n{\n \"id\": 1,\n \"url\": \"https://api.github.com/gists/ae709e9cf889e485e65f/comments/1\",\n \"body\": \"Just commenting for the sake of commenting\",\n \"user\": {\n \"login\": \"octocat\",\n \"id\": 1,\n \"avatar_url\": \"https://github.com/images/error/octocat_happy.gif\",\n \"gravatar_id\": \"somehexcode\",\n \"url\": \"https://api.github.com/users/octocat\"\n },\n \"created_at\": \"2011-04-18T23:23:56Z\"\n}\n]]--\n\n-- Delete a comment --\nfunction GithubAPI.gist.comment.delete(gist_id, id, callback)\n\tGithubAPI.http_request(\"gists/..\"gist_id\"../comments/\"..id, callback, {method = \"DELETE\"})\nend\n\n--[[ Response --\nStatus: 204 No Content\nX-RateLimit-Limit: 5000\nX-RateLimit-Remaining: 4999\n]]--\n\n----------------------------------------------------------------------------\n-------------------------------- TOOLS -------------------------------------\n----------------------------------------------------------------------------\n\nfunction GithubAPI.http_request(url, callback, opts, fullUrl)\n\topts = opts or {}\n\t-- if GithubAPI.token then opts.headers = TOKEN BEARER\n\tif opts.data then opts.data = json.encode(opts.data) end\n\n\tlocal _url\n\tif (fullUrl) then _url = url else _url = GithubAPI.location .. url end\n\n\thttp.request(_url, function(data, status, headers)\n\t\tif (status == 500) then error(\"Github: Internal Server Error ...\") end\n\t\tdata = json.decode(data)\n\t\tcallback(data, status, headers)\n\tend, alert, opts)\nend\n\nfunction GithubAPI.explode(div,str) -- credit: http://richard.warburton.it\n if (div=='') then return false end\n local pos,arr = 0,{}\n for st,sp in function() return string.find(str,div,pos,true) end do\n table.insert(arr,string.sub(str,pos,st-1))\n pos = sp + 1\n end\n table.insert(arr,string.sub(str,pos))\n return arr\nend\n\n-- GITHUB TIMESTAMP (YYYY-MM-DDTHH:MM:SSZ) to os.time\nfunction GithubAPI.gtimestamp(githubTime)\n\tgithubTime = githubTime:sub(1, #githubTime-1) -- remove Z\n\tgithubTime = GithubAPI.explode(\"T\", githubTime)\n\tgithubTime[1] = GithubAPI.explode(\"-\", githubTime[1])\n\tgithubTime[2] = GithubAPI.explode(\":\", githubTime[2])\n\treturn os.time({\n\t\tyear = tonumber(githubTime[1][1]),\n\t\tmonth = tonumber(githubTime[1][2]),\n\t\tday = tonumber(githubTime[1][3]),\n\t\thour = tonumber(githubTime[2][1]),\n\t\tmin = tonumber(githubTime[2][2]),\n\t\tsec = tonumber(githubTime[2][3])\n\t})\nend"}},"public":true,"created_at":"2013-08-21T16:28:24Z","updated_at":"2013-08-21T16:28:24Z","description":"Github API","comments":0,"user":{"login":"jacquev6","id":327146,"avatar_url":"https://2.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"comments_url":"https://api.github.com/gists/6296732/comments","forks":[],"history":[{"user":null,"version":"c464aecd7fea16684e935607eeea7ae4f8caa0e2","committed_at":"2013-08-21T16:12:27Z","change_status":{"total":793,"additions":793,"deletions":0},"url":"https://api.github.com/gists/6296732/c464aecd7fea16684e935607eeea7ae4f8caa0e2"}],"fork_of":{"url":"https://api.github.com/gists/6296553","forks_url":"https://api.github.com/gists/6296553/forks","commits_url":"https://api.github.com/gists/6296553/commits","id":"6296553","git_pull_url":"https://gist.github.com/6296553.git","git_push_url":"https://gist.github.com/6296553.git","html_url":"https://gist.github.com/6296553","files":{},"public":true,"created_at":"2013-08-21T16:12:27Z","updated_at":"2013-08-21T16:28:24Z","description":"Github API","comments":0,"user":{"login":"HyroVitalyProtago","id":3470988,"avatar_url":"https://1.gravatar.com/avatar/ed59562b231a649345f38703948f76f4?d=https%3A%2F%2Fidenticons.github.com%2F6582cb986b7a730b12f7c18dfcc865f0.png","gravatar_id":"ed59562b231a649345f38703948f76f4","url":"https://api.github.com/users/HyroVitalyProtago","html_url":"https://github.com/HyroVitalyProtago","followers_url":"https://api.github.com/users/HyroVitalyProtago/followers","following_url":"https://api.github.com/users/HyroVitalyProtago/following{/other_user}","gists_url":"https://api.github.com/users/HyroVitalyProtago/gists{/gist_id}","starred_url":"https://api.github.com/users/HyroVitalyProtago/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HyroVitalyProtago/subscriptions","organizations_url":"https://api.github.com/users/HyroVitalyProtago/orgs","repos_url":"https://api.github.com/users/HyroVitalyProtago/repos","events_url":"https://api.github.com/users/HyroVitalyProtago/events{/privacy}","received_events_url":"https://api.github.com/users/HyroVitalyProtago/received_events","type":"User"},"comments_url":"https://api.github.com/gists/6296553/comments"}} diff --git a/github/tests/ReplayData/Github.testGetRepos.txt b/github/tests/ReplayData/Github.testGetRepos.txt new file mode 100644 index 00000000..7d335ffc --- /dev/null +++ b/github/tests/ReplayData/Github.testGetRepos.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repositories +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4999'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('cache-control', 'max-age=0, private, must-revalidate'), ('vary', 'Accept-Encoding'), ('content-length', '404193'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"ce99e4ff5256ec5157ddea4a067b40b5"'), ('access-control-allow-credentials', 'true'), ('date', 'Wed, 21 Aug 2013 19:37:39 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377117459')] +[{"id":1,"name":"grit","full_name":"mojombo/grit","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/grit","description":"Grit gives you object oriented read/write access to Git repositories via Ruby.","fork":false,"url":"https://api.github.com/repos/mojombo/grit","forks_url":"https://api.github.com/repos/mojombo/grit/forks","keys_url":"https://api.github.com/repos/mojombo/grit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/grit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/grit/teams","hooks_url":"https://api.github.com/repos/mojombo/grit/hooks","issue_events_url":"https://api.github.com/repos/mojombo/grit/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/grit/events","assignees_url":"https://api.github.com/repos/mojombo/grit/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/grit/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/grit/tags","blobs_url":"https://api.github.com/repos/mojombo/grit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/grit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/grit/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/grit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/grit/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/grit/languages","stargazers_url":"https://api.github.com/repos/mojombo/grit/stargazers","contributors_url":"https://api.github.com/repos/mojombo/grit/contributors","subscribers_url":"https://api.github.com/repos/mojombo/grit/subscribers","subscription_url":"https://api.github.com/repos/mojombo/grit/subscription","commits_url":"https://api.github.com/repos/mojombo/grit/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/grit/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/grit/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/grit/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/grit/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/grit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/grit/merges","archive_url":"https://api.github.com/repos/mojombo/grit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/grit/downloads","issues_url":"https://api.github.com/repos/mojombo/grit/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/grit/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/grit/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/grit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/grit/labels{/name}"},{"id":26,"name":"merb-core","full_name":"wycats/merb-core","owner":{"login":"wycats","id":4,"avatar_url":"https://2.gravatar.com/avatar/428167a3ec72235ba971162924492609?d=https%3A%2F%2Fidenticons.github.com%2Fa87ff679a2f3e71d9181a67b7542122c.png","gravatar_id":"428167a3ec72235ba971162924492609","url":"https://api.github.com/users/wycats","html_url":"https://github.com/wycats","followers_url":"https://api.github.com/users/wycats/followers","following_url":"https://api.github.com/users/wycats/following{/other_user}","gists_url":"https://api.github.com/users/wycats/gists{/gist_id}","starred_url":"https://api.github.com/users/wycats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wycats/subscriptions","organizations_url":"https://api.github.com/users/wycats/orgs","repos_url":"https://api.github.com/users/wycats/repos","events_url":"https://api.github.com/users/wycats/events{/privacy}","received_events_url":"https://api.github.com/users/wycats/received_events","type":"User"},"private":false,"html_url":"https://github.com/wycats/merb-core","description":"Merb Core: All you need. None you don't.","fork":false,"url":"https://api.github.com/repos/wycats/merb-core","forks_url":"https://api.github.com/repos/wycats/merb-core/forks","keys_url":"https://api.github.com/repos/wycats/merb-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wycats/merb-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wycats/merb-core/teams","hooks_url":"https://api.github.com/repos/wycats/merb-core/hooks","issue_events_url":"https://api.github.com/repos/wycats/merb-core/issues/events{/number}","events_url":"https://api.github.com/repos/wycats/merb-core/events","assignees_url":"https://api.github.com/repos/wycats/merb-core/assignees{/user}","branches_url":"https://api.github.com/repos/wycats/merb-core/branches{/branch}","tags_url":"https://api.github.com/repos/wycats/merb-core/tags","blobs_url":"https://api.github.com/repos/wycats/merb-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wycats/merb-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wycats/merb-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/wycats/merb-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wycats/merb-core/statuses/{sha}","languages_url":"https://api.github.com/repos/wycats/merb-core/languages","stargazers_url":"https://api.github.com/repos/wycats/merb-core/stargazers","contributors_url":"https://api.github.com/repos/wycats/merb-core/contributors","subscribers_url":"https://api.github.com/repos/wycats/merb-core/subscribers","subscription_url":"https://api.github.com/repos/wycats/merb-core/subscription","commits_url":"https://api.github.com/repos/wycats/merb-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/wycats/merb-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/wycats/merb-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/wycats/merb-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/wycats/merb-core/contents/{+path}","compare_url":"https://api.github.com/repos/wycats/merb-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wycats/merb-core/merges","archive_url":"https://api.github.com/repos/wycats/merb-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wycats/merb-core/downloads","issues_url":"https://api.github.com/repos/wycats/merb-core/issues{/number}","pulls_url":"https://api.github.com/repos/wycats/merb-core/pulls{/number}","milestones_url":"https://api.github.com/repos/wycats/merb-core/milestones{/number}","notifications_url":"https://api.github.com/repos/wycats/merb-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wycats/merb-core/labels{/name}"},{"id":27,"name":"rubinius","full_name":"rubinius/rubinius","owner":{"login":"rubinius","id":317747,"avatar_url":"https://0.gravatar.com/avatar/8a664b7c5ca834af3e7e49d3a6160082?d=https%3A%2F%2Fidenticons.github.com%2F8a2a02b12e404a00b49c0154892fd9c0.png","gravatar_id":"8a664b7c5ca834af3e7e49d3a6160082","url":"https://api.github.com/users/rubinius","html_url":"https://github.com/rubinius","followers_url":"https://api.github.com/users/rubinius/followers","following_url":"https://api.github.com/users/rubinius/following{/other_user}","gists_url":"https://api.github.com/users/rubinius/gists{/gist_id}","starred_url":"https://api.github.com/users/rubinius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rubinius/subscriptions","organizations_url":"https://api.github.com/users/rubinius/orgs","repos_url":"https://api.github.com/users/rubinius/repos","events_url":"https://api.github.com/users/rubinius/events{/privacy}","received_events_url":"https://api.github.com/users/rubinius/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/rubinius/rubinius","description":"Rubinius, the Ruby Environment","fork":false,"url":"https://api.github.com/repos/rubinius/rubinius","forks_url":"https://api.github.com/repos/rubinius/rubinius/forks","keys_url":"https://api.github.com/repos/rubinius/rubinius/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rubinius/rubinius/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rubinius/rubinius/teams","hooks_url":"https://api.github.com/repos/rubinius/rubinius/hooks","issue_events_url":"https://api.github.com/repos/rubinius/rubinius/issues/events{/number}","events_url":"https://api.github.com/repos/rubinius/rubinius/events","assignees_url":"https://api.github.com/repos/rubinius/rubinius/assignees{/user}","branches_url":"https://api.github.com/repos/rubinius/rubinius/branches{/branch}","tags_url":"https://api.github.com/repos/rubinius/rubinius/tags","blobs_url":"https://api.github.com/repos/rubinius/rubinius/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rubinius/rubinius/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rubinius/rubinius/git/refs{/sha}","trees_url":"https://api.github.com/repos/rubinius/rubinius/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rubinius/rubinius/statuses/{sha}","languages_url":"https://api.github.com/repos/rubinius/rubinius/languages","stargazers_url":"https://api.github.com/repos/rubinius/rubinius/stargazers","contributors_url":"https://api.github.com/repos/rubinius/rubinius/contributors","subscribers_url":"https://api.github.com/repos/rubinius/rubinius/subscribers","subscription_url":"https://api.github.com/repos/rubinius/rubinius/subscription","commits_url":"https://api.github.com/repos/rubinius/rubinius/commits{/sha}","git_commits_url":"https://api.github.com/repos/rubinius/rubinius/git/commits{/sha}","comments_url":"https://api.github.com/repos/rubinius/rubinius/comments{/number}","issue_comment_url":"https://api.github.com/repos/rubinius/rubinius/issues/comments/{number}","contents_url":"https://api.github.com/repos/rubinius/rubinius/contents/{+path}","compare_url":"https://api.github.com/repos/rubinius/rubinius/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rubinius/rubinius/merges","archive_url":"https://api.github.com/repos/rubinius/rubinius/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rubinius/rubinius/downloads","issues_url":"https://api.github.com/repos/rubinius/rubinius/issues{/number}","pulls_url":"https://api.github.com/repos/rubinius/rubinius/pulls{/number}","milestones_url":"https://api.github.com/repos/rubinius/rubinius/milestones{/number}","notifications_url":"https://api.github.com/repos/rubinius/rubinius/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rubinius/rubinius/labels{/name}"},{"id":28,"name":"god","full_name":"mojombo/god","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/god","description":"Ruby process monitor","fork":false,"url":"https://api.github.com/repos/mojombo/god","forks_url":"https://api.github.com/repos/mojombo/god/forks","keys_url":"https://api.github.com/repos/mojombo/god/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/god/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/god/teams","hooks_url":"https://api.github.com/repos/mojombo/god/hooks","issue_events_url":"https://api.github.com/repos/mojombo/god/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/god/events","assignees_url":"https://api.github.com/repos/mojombo/god/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/god/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/god/tags","blobs_url":"https://api.github.com/repos/mojombo/god/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/god/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/god/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/god/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/god/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/god/languages","stargazers_url":"https://api.github.com/repos/mojombo/god/stargazers","contributors_url":"https://api.github.com/repos/mojombo/god/contributors","subscribers_url":"https://api.github.com/repos/mojombo/god/subscribers","subscription_url":"https://api.github.com/repos/mojombo/god/subscription","commits_url":"https://api.github.com/repos/mojombo/god/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/god/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/god/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/god/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/god/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/god/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/god/merges","archive_url":"https://api.github.com/repos/mojombo/god/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/god/downloads","issues_url":"https://api.github.com/repos/mojombo/god/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/god/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/god/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/god/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/god/labels{/name}"},{"id":29,"name":"jsawesome","full_name":"vanpelt/jsawesome","owner":{"login":"vanpelt","id":17,"avatar_url":"https://1.gravatar.com/avatar/1da36d4c1f34454de6c07855098675f6?d=https%3A%2F%2Fidenticons.github.com%2F70efdf2ec9b086079795c442636b55fb.png","gravatar_id":"1da36d4c1f34454de6c07855098675f6","url":"https://api.github.com/users/vanpelt","html_url":"https://github.com/vanpelt","followers_url":"https://api.github.com/users/vanpelt/followers","following_url":"https://api.github.com/users/vanpelt/following{/other_user}","gists_url":"https://api.github.com/users/vanpelt/gists{/gist_id}","starred_url":"https://api.github.com/users/vanpelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanpelt/subscriptions","organizations_url":"https://api.github.com/users/vanpelt/orgs","repos_url":"https://api.github.com/users/vanpelt/repos","events_url":"https://api.github.com/users/vanpelt/events{/privacy}","received_events_url":"https://api.github.com/users/vanpelt/received_events","type":"User"},"private":false,"html_url":"https://github.com/vanpelt/jsawesome","description":"Awesome JSON","fork":false,"url":"https://api.github.com/repos/vanpelt/jsawesome","forks_url":"https://api.github.com/repos/vanpelt/jsawesome/forks","keys_url":"https://api.github.com/repos/vanpelt/jsawesome/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vanpelt/jsawesome/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vanpelt/jsawesome/teams","hooks_url":"https://api.github.com/repos/vanpelt/jsawesome/hooks","issue_events_url":"https://api.github.com/repos/vanpelt/jsawesome/issues/events{/number}","events_url":"https://api.github.com/repos/vanpelt/jsawesome/events","assignees_url":"https://api.github.com/repos/vanpelt/jsawesome/assignees{/user}","branches_url":"https://api.github.com/repos/vanpelt/jsawesome/branches{/branch}","tags_url":"https://api.github.com/repos/vanpelt/jsawesome/tags","blobs_url":"https://api.github.com/repos/vanpelt/jsawesome/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vanpelt/jsawesome/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vanpelt/jsawesome/git/refs{/sha}","trees_url":"https://api.github.com/repos/vanpelt/jsawesome/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vanpelt/jsawesome/statuses/{sha}","languages_url":"https://api.github.com/repos/vanpelt/jsawesome/languages","stargazers_url":"https://api.github.com/repos/vanpelt/jsawesome/stargazers","contributors_url":"https://api.github.com/repos/vanpelt/jsawesome/contributors","subscribers_url":"https://api.github.com/repos/vanpelt/jsawesome/subscribers","subscription_url":"https://api.github.com/repos/vanpelt/jsawesome/subscription","commits_url":"https://api.github.com/repos/vanpelt/jsawesome/commits{/sha}","git_commits_url":"https://api.github.com/repos/vanpelt/jsawesome/git/commits{/sha}","comments_url":"https://api.github.com/repos/vanpelt/jsawesome/comments{/number}","issue_comment_url":"https://api.github.com/repos/vanpelt/jsawesome/issues/comments/{number}","contents_url":"https://api.github.com/repos/vanpelt/jsawesome/contents/{+path}","compare_url":"https://api.github.com/repos/vanpelt/jsawesome/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vanpelt/jsawesome/merges","archive_url":"https://api.github.com/repos/vanpelt/jsawesome/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vanpelt/jsawesome/downloads","issues_url":"https://api.github.com/repos/vanpelt/jsawesome/issues{/number}","pulls_url":"https://api.github.com/repos/vanpelt/jsawesome/pulls{/number}","milestones_url":"https://api.github.com/repos/vanpelt/jsawesome/milestones{/number}","notifications_url":"https://api.github.com/repos/vanpelt/jsawesome/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vanpelt/jsawesome/labels{/name}"},{"id":31,"name":"jspec","full_name":"wycats/jspec","owner":{"login":"wycats","id":4,"avatar_url":"https://2.gravatar.com/avatar/428167a3ec72235ba971162924492609?d=https%3A%2F%2Fidenticons.github.com%2Fa87ff679a2f3e71d9181a67b7542122c.png","gravatar_id":"428167a3ec72235ba971162924492609","url":"https://api.github.com/users/wycats","html_url":"https://github.com/wycats","followers_url":"https://api.github.com/users/wycats/followers","following_url":"https://api.github.com/users/wycats/following{/other_user}","gists_url":"https://api.github.com/users/wycats/gists{/gist_id}","starred_url":"https://api.github.com/users/wycats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wycats/subscriptions","organizations_url":"https://api.github.com/users/wycats/orgs","repos_url":"https://api.github.com/users/wycats/repos","events_url":"https://api.github.com/users/wycats/events{/privacy}","received_events_url":"https://api.github.com/users/wycats/received_events","type":"User"},"private":false,"html_url":"https://github.com/wycats/jspec","description":"A JavaScript BDD Testing Library","fork":false,"url":"https://api.github.com/repos/wycats/jspec","forks_url":"https://api.github.com/repos/wycats/jspec/forks","keys_url":"https://api.github.com/repos/wycats/jspec/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wycats/jspec/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wycats/jspec/teams","hooks_url":"https://api.github.com/repos/wycats/jspec/hooks","issue_events_url":"https://api.github.com/repos/wycats/jspec/issues/events{/number}","events_url":"https://api.github.com/repos/wycats/jspec/events","assignees_url":"https://api.github.com/repos/wycats/jspec/assignees{/user}","branches_url":"https://api.github.com/repos/wycats/jspec/branches{/branch}","tags_url":"https://api.github.com/repos/wycats/jspec/tags","blobs_url":"https://api.github.com/repos/wycats/jspec/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wycats/jspec/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wycats/jspec/git/refs{/sha}","trees_url":"https://api.github.com/repos/wycats/jspec/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wycats/jspec/statuses/{sha}","languages_url":"https://api.github.com/repos/wycats/jspec/languages","stargazers_url":"https://api.github.com/repos/wycats/jspec/stargazers","contributors_url":"https://api.github.com/repos/wycats/jspec/contributors","subscribers_url":"https://api.github.com/repos/wycats/jspec/subscribers","subscription_url":"https://api.github.com/repos/wycats/jspec/subscription","commits_url":"https://api.github.com/repos/wycats/jspec/commits{/sha}","git_commits_url":"https://api.github.com/repos/wycats/jspec/git/commits{/sha}","comments_url":"https://api.github.com/repos/wycats/jspec/comments{/number}","issue_comment_url":"https://api.github.com/repos/wycats/jspec/issues/comments/{number}","contents_url":"https://api.github.com/repos/wycats/jspec/contents/{+path}","compare_url":"https://api.github.com/repos/wycats/jspec/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wycats/jspec/merges","archive_url":"https://api.github.com/repos/wycats/jspec/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wycats/jspec/downloads","issues_url":"https://api.github.com/repos/wycats/jspec/issues{/number}","pulls_url":"https://api.github.com/repos/wycats/jspec/pulls{/number}","milestones_url":"https://api.github.com/repos/wycats/jspec/milestones{/number}","notifications_url":"https://api.github.com/repos/wycats/jspec/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wycats/jspec/labels{/name}"},{"id":35,"name":"exception_logger","full_name":"defunkt/exception_logger","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/exception_logger","description":"Unmaintained. Sorry.","fork":false,"url":"https://api.github.com/repos/defunkt/exception_logger","forks_url":"https://api.github.com/repos/defunkt/exception_logger/forks","keys_url":"https://api.github.com/repos/defunkt/exception_logger/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/exception_logger/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/exception_logger/teams","hooks_url":"https://api.github.com/repos/defunkt/exception_logger/hooks","issue_events_url":"https://api.github.com/repos/defunkt/exception_logger/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/exception_logger/events","assignees_url":"https://api.github.com/repos/defunkt/exception_logger/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/exception_logger/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/exception_logger/tags","blobs_url":"https://api.github.com/repos/defunkt/exception_logger/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/exception_logger/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/exception_logger/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/exception_logger/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/exception_logger/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/exception_logger/languages","stargazers_url":"https://api.github.com/repos/defunkt/exception_logger/stargazers","contributors_url":"https://api.github.com/repos/defunkt/exception_logger/contributors","subscribers_url":"https://api.github.com/repos/defunkt/exception_logger/subscribers","subscription_url":"https://api.github.com/repos/defunkt/exception_logger/subscription","commits_url":"https://api.github.com/repos/defunkt/exception_logger/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/exception_logger/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/exception_logger/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/exception_logger/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/exception_logger/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/exception_logger/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/exception_logger/merges","archive_url":"https://api.github.com/repos/defunkt/exception_logger/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/exception_logger/downloads","issues_url":"https://api.github.com/repos/defunkt/exception_logger/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/exception_logger/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/exception_logger/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/exception_logger/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/exception_logger/labels{/name}"},{"id":36,"name":"ambition","full_name":"defunkt/ambition","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/ambition","description":"include Enumerable — Unmaintained","fork":false,"url":"https://api.github.com/repos/defunkt/ambition","forks_url":"https://api.github.com/repos/defunkt/ambition/forks","keys_url":"https://api.github.com/repos/defunkt/ambition/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/ambition/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/ambition/teams","hooks_url":"https://api.github.com/repos/defunkt/ambition/hooks","issue_events_url":"https://api.github.com/repos/defunkt/ambition/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/ambition/events","assignees_url":"https://api.github.com/repos/defunkt/ambition/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/ambition/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/ambition/tags","blobs_url":"https://api.github.com/repos/defunkt/ambition/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/ambition/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/ambition/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/ambition/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/ambition/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/ambition/languages","stargazers_url":"https://api.github.com/repos/defunkt/ambition/stargazers","contributors_url":"https://api.github.com/repos/defunkt/ambition/contributors","subscribers_url":"https://api.github.com/repos/defunkt/ambition/subscribers","subscription_url":"https://api.github.com/repos/defunkt/ambition/subscription","commits_url":"https://api.github.com/repos/defunkt/ambition/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/ambition/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/ambition/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/ambition/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/ambition/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/ambition/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/ambition/merges","archive_url":"https://api.github.com/repos/defunkt/ambition/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/ambition/downloads","issues_url":"https://api.github.com/repos/defunkt/ambition/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/ambition/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/ambition/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/ambition/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/ambition/labels{/name}"},{"id":42,"name":"restful-authentication","full_name":"technoweenie/restful-authentication","owner":{"login":"technoweenie","id":21,"avatar_url":"https://1.gravatar.com/avatar/821395fe70906c8290df7f18ac4ac6cf?d=https%3A%2F%2Fidenticons.github.com%2F3c59dc048e8850243be8079a5c74d079.png","gravatar_id":"821395fe70906c8290df7f18ac4ac6cf","url":"https://api.github.com/users/technoweenie","html_url":"https://github.com/technoweenie","followers_url":"https://api.github.com/users/technoweenie/followers","following_url":"https://api.github.com/users/technoweenie/following{/other_user}","gists_url":"https://api.github.com/users/technoweenie/gists{/gist_id}","starred_url":"https://api.github.com/users/technoweenie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoweenie/subscriptions","organizations_url":"https://api.github.com/users/technoweenie/orgs","repos_url":"https://api.github.com/users/technoweenie/repos","events_url":"https://api.github.com/users/technoweenie/events{/privacy}","received_events_url":"https://api.github.com/users/technoweenie/received_events","type":"User"},"private":false,"html_url":"https://github.com/technoweenie/restful-authentication","description":"Generates common user authentication code for Rails/Merb, with a full test/unit and rspec suite and optional Acts as State Machine support built-in.","fork":false,"url":"https://api.github.com/repos/technoweenie/restful-authentication","forks_url":"https://api.github.com/repos/technoweenie/restful-authentication/forks","keys_url":"https://api.github.com/repos/technoweenie/restful-authentication/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technoweenie/restful-authentication/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technoweenie/restful-authentication/teams","hooks_url":"https://api.github.com/repos/technoweenie/restful-authentication/hooks","issue_events_url":"https://api.github.com/repos/technoweenie/restful-authentication/issues/events{/number}","events_url":"https://api.github.com/repos/technoweenie/restful-authentication/events","assignees_url":"https://api.github.com/repos/technoweenie/restful-authentication/assignees{/user}","branches_url":"https://api.github.com/repos/technoweenie/restful-authentication/branches{/branch}","tags_url":"https://api.github.com/repos/technoweenie/restful-authentication/tags","blobs_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/refs{/sha}","trees_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technoweenie/restful-authentication/statuses/{sha}","languages_url":"https://api.github.com/repos/technoweenie/restful-authentication/languages","stargazers_url":"https://api.github.com/repos/technoweenie/restful-authentication/stargazers","contributors_url":"https://api.github.com/repos/technoweenie/restful-authentication/contributors","subscribers_url":"https://api.github.com/repos/technoweenie/restful-authentication/subscribers","subscription_url":"https://api.github.com/repos/technoweenie/restful-authentication/subscription","commits_url":"https://api.github.com/repos/technoweenie/restful-authentication/commits{/sha}","git_commits_url":"https://api.github.com/repos/technoweenie/restful-authentication/git/commits{/sha}","comments_url":"https://api.github.com/repos/technoweenie/restful-authentication/comments{/number}","issue_comment_url":"https://api.github.com/repos/technoweenie/restful-authentication/issues/comments/{number}","contents_url":"https://api.github.com/repos/technoweenie/restful-authentication/contents/{+path}","compare_url":"https://api.github.com/repos/technoweenie/restful-authentication/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technoweenie/restful-authentication/merges","archive_url":"https://api.github.com/repos/technoweenie/restful-authentication/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technoweenie/restful-authentication/downloads","issues_url":"https://api.github.com/repos/technoweenie/restful-authentication/issues{/number}","pulls_url":"https://api.github.com/repos/technoweenie/restful-authentication/pulls{/number}","milestones_url":"https://api.github.com/repos/technoweenie/restful-authentication/milestones{/number}","notifications_url":"https://api.github.com/repos/technoweenie/restful-authentication/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technoweenie/restful-authentication/labels{/name}"},{"id":43,"name":"attachment_fu","full_name":"technoweenie/attachment_fu","owner":{"login":"technoweenie","id":21,"avatar_url":"https://1.gravatar.com/avatar/821395fe70906c8290df7f18ac4ac6cf?d=https%3A%2F%2Fidenticons.github.com%2F3c59dc048e8850243be8079a5c74d079.png","gravatar_id":"821395fe70906c8290df7f18ac4ac6cf","url":"https://api.github.com/users/technoweenie","html_url":"https://github.com/technoweenie","followers_url":"https://api.github.com/users/technoweenie/followers","following_url":"https://api.github.com/users/technoweenie/following{/other_user}","gists_url":"https://api.github.com/users/technoweenie/gists{/gist_id}","starred_url":"https://api.github.com/users/technoweenie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoweenie/subscriptions","organizations_url":"https://api.github.com/users/technoweenie/orgs","repos_url":"https://api.github.com/users/technoweenie/repos","events_url":"https://api.github.com/users/technoweenie/events{/privacy}","received_events_url":"https://api.github.com/users/technoweenie/received_events","type":"User"},"private":false,"html_url":"https://github.com/technoweenie/attachment_fu","description":"Treat an ActiveRecord model as a file attachment, storing its patch, size, content type, etc.","fork":false,"url":"https://api.github.com/repos/technoweenie/attachment_fu","forks_url":"https://api.github.com/repos/technoweenie/attachment_fu/forks","keys_url":"https://api.github.com/repos/technoweenie/attachment_fu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technoweenie/attachment_fu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technoweenie/attachment_fu/teams","hooks_url":"https://api.github.com/repos/technoweenie/attachment_fu/hooks","issue_events_url":"https://api.github.com/repos/technoweenie/attachment_fu/issues/events{/number}","events_url":"https://api.github.com/repos/technoweenie/attachment_fu/events","assignees_url":"https://api.github.com/repos/technoweenie/attachment_fu/assignees{/user}","branches_url":"https://api.github.com/repos/technoweenie/attachment_fu/branches{/branch}","tags_url":"https://api.github.com/repos/technoweenie/attachment_fu/tags","blobs_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/refs{/sha}","trees_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technoweenie/attachment_fu/statuses/{sha}","languages_url":"https://api.github.com/repos/technoweenie/attachment_fu/languages","stargazers_url":"https://api.github.com/repos/technoweenie/attachment_fu/stargazers","contributors_url":"https://api.github.com/repos/technoweenie/attachment_fu/contributors","subscribers_url":"https://api.github.com/repos/technoweenie/attachment_fu/subscribers","subscription_url":"https://api.github.com/repos/technoweenie/attachment_fu/subscription","commits_url":"https://api.github.com/repos/technoweenie/attachment_fu/commits{/sha}","git_commits_url":"https://api.github.com/repos/technoweenie/attachment_fu/git/commits{/sha}","comments_url":"https://api.github.com/repos/technoweenie/attachment_fu/comments{/number}","issue_comment_url":"https://api.github.com/repos/technoweenie/attachment_fu/issues/comments/{number}","contents_url":"https://api.github.com/repos/technoweenie/attachment_fu/contents/{+path}","compare_url":"https://api.github.com/repos/technoweenie/attachment_fu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technoweenie/attachment_fu/merges","archive_url":"https://api.github.com/repos/technoweenie/attachment_fu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technoweenie/attachment_fu/downloads","issues_url":"https://api.github.com/repos/technoweenie/attachment_fu/issues{/number}","pulls_url":"https://api.github.com/repos/technoweenie/attachment_fu/pulls{/number}","milestones_url":"https://api.github.com/repos/technoweenie/attachment_fu/milestones{/number}","notifications_url":"https://api.github.com/repos/technoweenie/attachment_fu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technoweenie/attachment_fu/labels{/name}"},{"id":47,"name":"bong","full_name":"topfunky/bong","owner":{"login":"topfunky","id":26,"avatar_url":"https://2.gravatar.com/avatar/a9d024f5032b8de04d7c74528beb77ab?d=https%3A%2F%2Fidenticons.github.com%2F4e732ced3463d06de0ca9a15b6153677.png","gravatar_id":"a9d024f5032b8de04d7c74528beb77ab","url":"https://api.github.com/users/topfunky","html_url":"https://github.com/topfunky","followers_url":"https://api.github.com/users/topfunky/followers","following_url":"https://api.github.com/users/topfunky/following{/other_user}","gists_url":"https://api.github.com/users/topfunky/gists{/gist_id}","starred_url":"https://api.github.com/users/topfunky/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/topfunky/subscriptions","organizations_url":"https://api.github.com/users/topfunky/orgs","repos_url":"https://api.github.com/users/topfunky/repos","events_url":"https://api.github.com/users/topfunky/events{/privacy}","received_events_url":"https://api.github.com/users/topfunky/received_events","type":"User"},"private":false,"html_url":"https://github.com/topfunky/bong","description":"A benchmarking helper for httperf.","fork":false,"url":"https://api.github.com/repos/topfunky/bong","forks_url":"https://api.github.com/repos/topfunky/bong/forks","keys_url":"https://api.github.com/repos/topfunky/bong/keys{/key_id}","collaborators_url":"https://api.github.com/repos/topfunky/bong/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/topfunky/bong/teams","hooks_url":"https://api.github.com/repos/topfunky/bong/hooks","issue_events_url":"https://api.github.com/repos/topfunky/bong/issues/events{/number}","events_url":"https://api.github.com/repos/topfunky/bong/events","assignees_url":"https://api.github.com/repos/topfunky/bong/assignees{/user}","branches_url":"https://api.github.com/repos/topfunky/bong/branches{/branch}","tags_url":"https://api.github.com/repos/topfunky/bong/tags","blobs_url":"https://api.github.com/repos/topfunky/bong/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/topfunky/bong/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/topfunky/bong/git/refs{/sha}","trees_url":"https://api.github.com/repos/topfunky/bong/git/trees{/sha}","statuses_url":"https://api.github.com/repos/topfunky/bong/statuses/{sha}","languages_url":"https://api.github.com/repos/topfunky/bong/languages","stargazers_url":"https://api.github.com/repos/topfunky/bong/stargazers","contributors_url":"https://api.github.com/repos/topfunky/bong/contributors","subscribers_url":"https://api.github.com/repos/topfunky/bong/subscribers","subscription_url":"https://api.github.com/repos/topfunky/bong/subscription","commits_url":"https://api.github.com/repos/topfunky/bong/commits{/sha}","git_commits_url":"https://api.github.com/repos/topfunky/bong/git/commits{/sha}","comments_url":"https://api.github.com/repos/topfunky/bong/comments{/number}","issue_comment_url":"https://api.github.com/repos/topfunky/bong/issues/comments/{number}","contents_url":"https://api.github.com/repos/topfunky/bong/contents/{+path}","compare_url":"https://api.github.com/repos/topfunky/bong/compare/{base}...{head}","merges_url":"https://api.github.com/repos/topfunky/bong/merges","archive_url":"https://api.github.com/repos/topfunky/bong/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/topfunky/bong/downloads","issues_url":"https://api.github.com/repos/topfunky/bong/issues{/number}","pulls_url":"https://api.github.com/repos/topfunky/bong/pulls{/number}","milestones_url":"https://api.github.com/repos/topfunky/bong/milestones{/number}","notifications_url":"https://api.github.com/repos/topfunky/bong/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/topfunky/bong/labels{/name}"},{"id":48,"name":"microsis","full_name":"Caged/microsis","owner":{"login":"Caged","id":25,"avatar_url":"https://2.gravatar.com/avatar/97c3a8eea9b7eaa9e1e93ea3cd47399f?d=https%3A%2F%2Fidenticons.github.com%2F8e296a067a37563370ded05f5a3bf3ec.png","gravatar_id":"97c3a8eea9b7eaa9e1e93ea3cd47399f","url":"https://api.github.com/users/Caged","html_url":"https://github.com/Caged","followers_url":"https://api.github.com/users/Caged/followers","following_url":"https://api.github.com/users/Caged/following{/other_user}","gists_url":"https://api.github.com/users/Caged/gists{/gist_id}","starred_url":"https://api.github.com/users/Caged/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Caged/subscriptions","organizations_url":"https://api.github.com/users/Caged/orgs","repos_url":"https://api.github.com/users/Caged/repos","events_url":"https://api.github.com/users/Caged/events{/privacy}","received_events_url":"https://api.github.com/users/Caged/received_events","type":"User"},"private":false,"html_url":"https://github.com/Caged/microsis","description":"SUPER OLD STUFF","fork":false,"url":"https://api.github.com/repos/Caged/microsis","forks_url":"https://api.github.com/repos/Caged/microsis/forks","keys_url":"https://api.github.com/repos/Caged/microsis/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Caged/microsis/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Caged/microsis/teams","hooks_url":"https://api.github.com/repos/Caged/microsis/hooks","issue_events_url":"https://api.github.com/repos/Caged/microsis/issues/events{/number}","events_url":"https://api.github.com/repos/Caged/microsis/events","assignees_url":"https://api.github.com/repos/Caged/microsis/assignees{/user}","branches_url":"https://api.github.com/repos/Caged/microsis/branches{/branch}","tags_url":"https://api.github.com/repos/Caged/microsis/tags","blobs_url":"https://api.github.com/repos/Caged/microsis/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Caged/microsis/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Caged/microsis/git/refs{/sha}","trees_url":"https://api.github.com/repos/Caged/microsis/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Caged/microsis/statuses/{sha}","languages_url":"https://api.github.com/repos/Caged/microsis/languages","stargazers_url":"https://api.github.com/repos/Caged/microsis/stargazers","contributors_url":"https://api.github.com/repos/Caged/microsis/contributors","subscribers_url":"https://api.github.com/repos/Caged/microsis/subscribers","subscription_url":"https://api.github.com/repos/Caged/microsis/subscription","commits_url":"https://api.github.com/repos/Caged/microsis/commits{/sha}","git_commits_url":"https://api.github.com/repos/Caged/microsis/git/commits{/sha}","comments_url":"https://api.github.com/repos/Caged/microsis/comments{/number}","issue_comment_url":"https://api.github.com/repos/Caged/microsis/issues/comments/{number}","contents_url":"https://api.github.com/repos/Caged/microsis/contents/{+path}","compare_url":"https://api.github.com/repos/Caged/microsis/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Caged/microsis/merges","archive_url":"https://api.github.com/repos/Caged/microsis/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Caged/microsis/downloads","issues_url":"https://api.github.com/repos/Caged/microsis/issues{/number}","pulls_url":"https://api.github.com/repos/Caged/microsis/pulls{/number}","milestones_url":"https://api.github.com/repos/Caged/microsis/milestones{/number}","notifications_url":"https://api.github.com/repos/Caged/microsis/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Caged/microsis/labels{/name}"},{"id":52,"name":"s3","full_name":"anotherjesse/s3","owner":{"login":"anotherjesse","id":27,"avatar_url":"https://2.gravatar.com/avatar/50d10a8864accf0b2522c326381a4702?d=https%3A%2F%2Fidenticons.github.com%2F02e74f10e0327ad868d138f2b4fdd6f0.png","gravatar_id":"50d10a8864accf0b2522c326381a4702","url":"https://api.github.com/users/anotherjesse","html_url":"https://github.com/anotherjesse","followers_url":"https://api.github.com/users/anotherjesse/followers","following_url":"https://api.github.com/users/anotherjesse/following{/other_user}","gists_url":"https://api.github.com/users/anotherjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/anotherjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anotherjesse/subscriptions","organizations_url":"https://api.github.com/users/anotherjesse/orgs","repos_url":"https://api.github.com/users/anotherjesse/repos","events_url":"https://api.github.com/users/anotherjesse/events{/privacy}","received_events_url":"https://api.github.com/users/anotherjesse/received_events","type":"User"},"private":false,"html_url":"https://github.com/anotherjesse/s3","description":"psuedo s3 protocol for mozilla browsers","fork":false,"url":"https://api.github.com/repos/anotherjesse/s3","forks_url":"https://api.github.com/repos/anotherjesse/s3/forks","keys_url":"https://api.github.com/repos/anotherjesse/s3/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anotherjesse/s3/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anotherjesse/s3/teams","hooks_url":"https://api.github.com/repos/anotherjesse/s3/hooks","issue_events_url":"https://api.github.com/repos/anotherjesse/s3/issues/events{/number}","events_url":"https://api.github.com/repos/anotherjesse/s3/events","assignees_url":"https://api.github.com/repos/anotherjesse/s3/assignees{/user}","branches_url":"https://api.github.com/repos/anotherjesse/s3/branches{/branch}","tags_url":"https://api.github.com/repos/anotherjesse/s3/tags","blobs_url":"https://api.github.com/repos/anotherjesse/s3/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anotherjesse/s3/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anotherjesse/s3/git/refs{/sha}","trees_url":"https://api.github.com/repos/anotherjesse/s3/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anotherjesse/s3/statuses/{sha}","languages_url":"https://api.github.com/repos/anotherjesse/s3/languages","stargazers_url":"https://api.github.com/repos/anotherjesse/s3/stargazers","contributors_url":"https://api.github.com/repos/anotherjesse/s3/contributors","subscribers_url":"https://api.github.com/repos/anotherjesse/s3/subscribers","subscription_url":"https://api.github.com/repos/anotherjesse/s3/subscription","commits_url":"https://api.github.com/repos/anotherjesse/s3/commits{/sha}","git_commits_url":"https://api.github.com/repos/anotherjesse/s3/git/commits{/sha}","comments_url":"https://api.github.com/repos/anotherjesse/s3/comments{/number}","issue_comment_url":"https://api.github.com/repos/anotherjesse/s3/issues/comments/{number}","contents_url":"https://api.github.com/repos/anotherjesse/s3/contents/{+path}","compare_url":"https://api.github.com/repos/anotherjesse/s3/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anotherjesse/s3/merges","archive_url":"https://api.github.com/repos/anotherjesse/s3/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anotherjesse/s3/downloads","issues_url":"https://api.github.com/repos/anotherjesse/s3/issues{/number}","pulls_url":"https://api.github.com/repos/anotherjesse/s3/pulls{/number}","milestones_url":"https://api.github.com/repos/anotherjesse/s3/milestones{/number}","notifications_url":"https://api.github.com/repos/anotherjesse/s3/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anotherjesse/s3/labels{/name}"},{"id":53,"name":"taboo","full_name":"anotherjesse/taboo","owner":{"login":"anotherjesse","id":27,"avatar_url":"https://2.gravatar.com/avatar/50d10a8864accf0b2522c326381a4702?d=https%3A%2F%2Fidenticons.github.com%2F02e74f10e0327ad868d138f2b4fdd6f0.png","gravatar_id":"50d10a8864accf0b2522c326381a4702","url":"https://api.github.com/users/anotherjesse","html_url":"https://github.com/anotherjesse","followers_url":"https://api.github.com/users/anotherjesse/followers","following_url":"https://api.github.com/users/anotherjesse/following{/other_user}","gists_url":"https://api.github.com/users/anotherjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/anotherjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anotherjesse/subscriptions","organizations_url":"https://api.github.com/users/anotherjesse/orgs","repos_url":"https://api.github.com/users/anotherjesse/repos","events_url":"https://api.github.com/users/anotherjesse/events{/privacy}","received_events_url":"https://api.github.com/users/anotherjesse/received_events","type":"User"},"private":false,"html_url":"https://github.com/anotherjesse/taboo","description":"The solution for tabitus of the browser ","fork":false,"url":"https://api.github.com/repos/anotherjesse/taboo","forks_url":"https://api.github.com/repos/anotherjesse/taboo/forks","keys_url":"https://api.github.com/repos/anotherjesse/taboo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anotherjesse/taboo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anotherjesse/taboo/teams","hooks_url":"https://api.github.com/repos/anotherjesse/taboo/hooks","issue_events_url":"https://api.github.com/repos/anotherjesse/taboo/issues/events{/number}","events_url":"https://api.github.com/repos/anotherjesse/taboo/events","assignees_url":"https://api.github.com/repos/anotherjesse/taboo/assignees{/user}","branches_url":"https://api.github.com/repos/anotherjesse/taboo/branches{/branch}","tags_url":"https://api.github.com/repos/anotherjesse/taboo/tags","blobs_url":"https://api.github.com/repos/anotherjesse/taboo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anotherjesse/taboo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anotherjesse/taboo/git/refs{/sha}","trees_url":"https://api.github.com/repos/anotherjesse/taboo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anotherjesse/taboo/statuses/{sha}","languages_url":"https://api.github.com/repos/anotherjesse/taboo/languages","stargazers_url":"https://api.github.com/repos/anotherjesse/taboo/stargazers","contributors_url":"https://api.github.com/repos/anotherjesse/taboo/contributors","subscribers_url":"https://api.github.com/repos/anotherjesse/taboo/subscribers","subscription_url":"https://api.github.com/repos/anotherjesse/taboo/subscription","commits_url":"https://api.github.com/repos/anotherjesse/taboo/commits{/sha}","git_commits_url":"https://api.github.com/repos/anotherjesse/taboo/git/commits{/sha}","comments_url":"https://api.github.com/repos/anotherjesse/taboo/comments{/number}","issue_comment_url":"https://api.github.com/repos/anotherjesse/taboo/issues/comments/{number}","contents_url":"https://api.github.com/repos/anotherjesse/taboo/contents/{+path}","compare_url":"https://api.github.com/repos/anotherjesse/taboo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anotherjesse/taboo/merges","archive_url":"https://api.github.com/repos/anotherjesse/taboo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anotherjesse/taboo/downloads","issues_url":"https://api.github.com/repos/anotherjesse/taboo/issues{/number}","pulls_url":"https://api.github.com/repos/anotherjesse/taboo/pulls{/number}","milestones_url":"https://api.github.com/repos/anotherjesse/taboo/milestones{/number}","notifications_url":"https://api.github.com/repos/anotherjesse/taboo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anotherjesse/taboo/labels{/name}"},{"id":54,"name":"foxtracs","full_name":"anotherjesse/foxtracs","owner":{"login":"anotherjesse","id":27,"avatar_url":"https://2.gravatar.com/avatar/50d10a8864accf0b2522c326381a4702?d=https%3A%2F%2Fidenticons.github.com%2F02e74f10e0327ad868d138f2b4fdd6f0.png","gravatar_id":"50d10a8864accf0b2522c326381a4702","url":"https://api.github.com/users/anotherjesse","html_url":"https://github.com/anotherjesse","followers_url":"https://api.github.com/users/anotherjesse/followers","following_url":"https://api.github.com/users/anotherjesse/following{/other_user}","gists_url":"https://api.github.com/users/anotherjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/anotherjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anotherjesse/subscriptions","organizations_url":"https://api.github.com/users/anotherjesse/orgs","repos_url":"https://api.github.com/users/anotherjesse/repos","events_url":"https://api.github.com/users/anotherjesse/events{/privacy}","received_events_url":"https://api.github.com/users/anotherjesse/received_events","type":"User"},"private":false,"html_url":"https://github.com/anotherjesse/foxtracs","description":"firefox trac integration","fork":false,"url":"https://api.github.com/repos/anotherjesse/foxtracs","forks_url":"https://api.github.com/repos/anotherjesse/foxtracs/forks","keys_url":"https://api.github.com/repos/anotherjesse/foxtracs/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anotherjesse/foxtracs/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anotherjesse/foxtracs/teams","hooks_url":"https://api.github.com/repos/anotherjesse/foxtracs/hooks","issue_events_url":"https://api.github.com/repos/anotherjesse/foxtracs/issues/events{/number}","events_url":"https://api.github.com/repos/anotherjesse/foxtracs/events","assignees_url":"https://api.github.com/repos/anotherjesse/foxtracs/assignees{/user}","branches_url":"https://api.github.com/repos/anotherjesse/foxtracs/branches{/branch}","tags_url":"https://api.github.com/repos/anotherjesse/foxtracs/tags","blobs_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/refs{/sha}","trees_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anotherjesse/foxtracs/statuses/{sha}","languages_url":"https://api.github.com/repos/anotherjesse/foxtracs/languages","stargazers_url":"https://api.github.com/repos/anotherjesse/foxtracs/stargazers","contributors_url":"https://api.github.com/repos/anotherjesse/foxtracs/contributors","subscribers_url":"https://api.github.com/repos/anotherjesse/foxtracs/subscribers","subscription_url":"https://api.github.com/repos/anotherjesse/foxtracs/subscription","commits_url":"https://api.github.com/repos/anotherjesse/foxtracs/commits{/sha}","git_commits_url":"https://api.github.com/repos/anotherjesse/foxtracs/git/commits{/sha}","comments_url":"https://api.github.com/repos/anotherjesse/foxtracs/comments{/number}","issue_comment_url":"https://api.github.com/repos/anotherjesse/foxtracs/issues/comments/{number}","contents_url":"https://api.github.com/repos/anotherjesse/foxtracs/contents/{+path}","compare_url":"https://api.github.com/repos/anotherjesse/foxtracs/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anotherjesse/foxtracs/merges","archive_url":"https://api.github.com/repos/anotherjesse/foxtracs/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anotherjesse/foxtracs/downloads","issues_url":"https://api.github.com/repos/anotherjesse/foxtracs/issues{/number}","pulls_url":"https://api.github.com/repos/anotherjesse/foxtracs/pulls{/number}","milestones_url":"https://api.github.com/repos/anotherjesse/foxtracs/milestones{/number}","notifications_url":"https://api.github.com/repos/anotherjesse/foxtracs/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anotherjesse/foxtracs/labels{/name}"},{"id":56,"name":"fotomatic","full_name":"anotherjesse/fotomatic","owner":{"login":"anotherjesse","id":27,"avatar_url":"https://2.gravatar.com/avatar/50d10a8864accf0b2522c326381a4702?d=https%3A%2F%2Fidenticons.github.com%2F02e74f10e0327ad868d138f2b4fdd6f0.png","gravatar_id":"50d10a8864accf0b2522c326381a4702","url":"https://api.github.com/users/anotherjesse","html_url":"https://github.com/anotherjesse","followers_url":"https://api.github.com/users/anotherjesse/followers","following_url":"https://api.github.com/users/anotherjesse/following{/other_user}","gists_url":"https://api.github.com/users/anotherjesse/gists{/gist_id}","starred_url":"https://api.github.com/users/anotherjesse/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anotherjesse/subscriptions","organizations_url":"https://api.github.com/users/anotherjesse/orgs","repos_url":"https://api.github.com/users/anotherjesse/repos","events_url":"https://api.github.com/users/anotherjesse/events{/privacy}","received_events_url":"https://api.github.com/users/anotherjesse/received_events","type":"User"},"private":false,"html_url":"https://github.com/anotherjesse/fotomatic","description":"Flash photo widget prototype - hacked at last SHDH of 2007","fork":false,"url":"https://api.github.com/repos/anotherjesse/fotomatic","forks_url":"https://api.github.com/repos/anotherjesse/fotomatic/forks","keys_url":"https://api.github.com/repos/anotherjesse/fotomatic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anotherjesse/fotomatic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anotherjesse/fotomatic/teams","hooks_url":"https://api.github.com/repos/anotherjesse/fotomatic/hooks","issue_events_url":"https://api.github.com/repos/anotherjesse/fotomatic/issues/events{/number}","events_url":"https://api.github.com/repos/anotherjesse/fotomatic/events","assignees_url":"https://api.github.com/repos/anotherjesse/fotomatic/assignees{/user}","branches_url":"https://api.github.com/repos/anotherjesse/fotomatic/branches{/branch}","tags_url":"https://api.github.com/repos/anotherjesse/fotomatic/tags","blobs_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/refs{/sha}","trees_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anotherjesse/fotomatic/statuses/{sha}","languages_url":"https://api.github.com/repos/anotherjesse/fotomatic/languages","stargazers_url":"https://api.github.com/repos/anotherjesse/fotomatic/stargazers","contributors_url":"https://api.github.com/repos/anotherjesse/fotomatic/contributors","subscribers_url":"https://api.github.com/repos/anotherjesse/fotomatic/subscribers","subscription_url":"https://api.github.com/repos/anotherjesse/fotomatic/subscription","commits_url":"https://api.github.com/repos/anotherjesse/fotomatic/commits{/sha}","git_commits_url":"https://api.github.com/repos/anotherjesse/fotomatic/git/commits{/sha}","comments_url":"https://api.github.com/repos/anotherjesse/fotomatic/comments{/number}","issue_comment_url":"https://api.github.com/repos/anotherjesse/fotomatic/issues/comments/{number}","contents_url":"https://api.github.com/repos/anotherjesse/fotomatic/contents/{+path}","compare_url":"https://api.github.com/repos/anotherjesse/fotomatic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anotherjesse/fotomatic/merges","archive_url":"https://api.github.com/repos/anotherjesse/fotomatic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anotherjesse/fotomatic/downloads","issues_url":"https://api.github.com/repos/anotherjesse/fotomatic/issues{/number}","pulls_url":"https://api.github.com/repos/anotherjesse/fotomatic/pulls{/number}","milestones_url":"https://api.github.com/repos/anotherjesse/fotomatic/milestones{/number}","notifications_url":"https://api.github.com/repos/anotherjesse/fotomatic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anotherjesse/fotomatic/labels{/name}"},{"id":61,"name":"glowstick","full_name":"mojombo/glowstick","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/glowstick","description":"A realtime, OpenGL graphing library for Ruby","fork":false,"url":"https://api.github.com/repos/mojombo/glowstick","forks_url":"https://api.github.com/repos/mojombo/glowstick/forks","keys_url":"https://api.github.com/repos/mojombo/glowstick/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/glowstick/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/glowstick/teams","hooks_url":"https://api.github.com/repos/mojombo/glowstick/hooks","issue_events_url":"https://api.github.com/repos/mojombo/glowstick/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/glowstick/events","assignees_url":"https://api.github.com/repos/mojombo/glowstick/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/glowstick/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/glowstick/tags","blobs_url":"https://api.github.com/repos/mojombo/glowstick/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/glowstick/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/glowstick/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/glowstick/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/glowstick/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/glowstick/languages","stargazers_url":"https://api.github.com/repos/mojombo/glowstick/stargazers","contributors_url":"https://api.github.com/repos/mojombo/glowstick/contributors","subscribers_url":"https://api.github.com/repos/mojombo/glowstick/subscribers","subscription_url":"https://api.github.com/repos/mojombo/glowstick/subscription","commits_url":"https://api.github.com/repos/mojombo/glowstick/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/glowstick/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/glowstick/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/glowstick/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/glowstick/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/glowstick/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/glowstick/merges","archive_url":"https://api.github.com/repos/mojombo/glowstick/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/glowstick/downloads","issues_url":"https://api.github.com/repos/mojombo/glowstick/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/glowstick/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/glowstick/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/glowstick/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/glowstick/labels{/name}"},{"id":63,"name":"starling","full_name":"defunkt/starling","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/starling","description":"","fork":false,"url":"https://api.github.com/repos/defunkt/starling","forks_url":"https://api.github.com/repos/defunkt/starling/forks","keys_url":"https://api.github.com/repos/defunkt/starling/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/starling/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/starling/teams","hooks_url":"https://api.github.com/repos/defunkt/starling/hooks","issue_events_url":"https://api.github.com/repos/defunkt/starling/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/starling/events","assignees_url":"https://api.github.com/repos/defunkt/starling/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/starling/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/starling/tags","blobs_url":"https://api.github.com/repos/defunkt/starling/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/starling/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/starling/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/starling/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/starling/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/starling/languages","stargazers_url":"https://api.github.com/repos/defunkt/starling/stargazers","contributors_url":"https://api.github.com/repos/defunkt/starling/contributors","subscribers_url":"https://api.github.com/repos/defunkt/starling/subscribers","subscription_url":"https://api.github.com/repos/defunkt/starling/subscription","commits_url":"https://api.github.com/repos/defunkt/starling/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/starling/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/starling/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/starling/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/starling/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/starling/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/starling/merges","archive_url":"https://api.github.com/repos/defunkt/starling/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/starling/downloads","issues_url":"https://api.github.com/repos/defunkt/starling/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/starling/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/starling/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/starling/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/starling/labels{/name}"},{"id":65,"name":"merb-more","full_name":"wycats/merb-more","owner":{"login":"wycats","id":4,"avatar_url":"https://2.gravatar.com/avatar/428167a3ec72235ba971162924492609?d=https%3A%2F%2Fidenticons.github.com%2Fa87ff679a2f3e71d9181a67b7542122c.png","gravatar_id":"428167a3ec72235ba971162924492609","url":"https://api.github.com/users/wycats","html_url":"https://github.com/wycats","followers_url":"https://api.github.com/users/wycats/followers","following_url":"https://api.github.com/users/wycats/following{/other_user}","gists_url":"https://api.github.com/users/wycats/gists{/gist_id}","starred_url":"https://api.github.com/users/wycats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wycats/subscriptions","organizations_url":"https://api.github.com/users/wycats/orgs","repos_url":"https://api.github.com/users/wycats/repos","events_url":"https://api.github.com/users/wycats/events{/privacy}","received_events_url":"https://api.github.com/users/wycats/received_events","type":"User"},"private":false,"html_url":"https://github.com/wycats/merb-more","description":"Merb More: The Full Stack. Take what you need; leave what you don't.","fork":false,"url":"https://api.github.com/repos/wycats/merb-more","forks_url":"https://api.github.com/repos/wycats/merb-more/forks","keys_url":"https://api.github.com/repos/wycats/merb-more/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wycats/merb-more/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wycats/merb-more/teams","hooks_url":"https://api.github.com/repos/wycats/merb-more/hooks","issue_events_url":"https://api.github.com/repos/wycats/merb-more/issues/events{/number}","events_url":"https://api.github.com/repos/wycats/merb-more/events","assignees_url":"https://api.github.com/repos/wycats/merb-more/assignees{/user}","branches_url":"https://api.github.com/repos/wycats/merb-more/branches{/branch}","tags_url":"https://api.github.com/repos/wycats/merb-more/tags","blobs_url":"https://api.github.com/repos/wycats/merb-more/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wycats/merb-more/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wycats/merb-more/git/refs{/sha}","trees_url":"https://api.github.com/repos/wycats/merb-more/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wycats/merb-more/statuses/{sha}","languages_url":"https://api.github.com/repos/wycats/merb-more/languages","stargazers_url":"https://api.github.com/repos/wycats/merb-more/stargazers","contributors_url":"https://api.github.com/repos/wycats/merb-more/contributors","subscribers_url":"https://api.github.com/repos/wycats/merb-more/subscribers","subscription_url":"https://api.github.com/repos/wycats/merb-more/subscription","commits_url":"https://api.github.com/repos/wycats/merb-more/commits{/sha}","git_commits_url":"https://api.github.com/repos/wycats/merb-more/git/commits{/sha}","comments_url":"https://api.github.com/repos/wycats/merb-more/comments{/number}","issue_comment_url":"https://api.github.com/repos/wycats/merb-more/issues/comments/{number}","contents_url":"https://api.github.com/repos/wycats/merb-more/contents/{+path}","compare_url":"https://api.github.com/repos/wycats/merb-more/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wycats/merb-more/merges","archive_url":"https://api.github.com/repos/wycats/merb-more/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wycats/merb-more/downloads","issues_url":"https://api.github.com/repos/wycats/merb-more/issues{/number}","pulls_url":"https://api.github.com/repos/wycats/merb-more/pulls{/number}","milestones_url":"https://api.github.com/repos/wycats/merb-more/milestones{/number}","notifications_url":"https://api.github.com/repos/wycats/merb-more/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wycats/merb-more/labels{/name}"},{"id":68,"name":"thin","full_name":"macournoyer/thin","owner":{"login":"macournoyer","id":22,"avatar_url":"https://0.gravatar.com/avatar/0d949b795e64e062c4c001c6f5a6f3f3?d=https%3A%2F%2Fidenticons.github.com%2Fb6d767d2f8ed5d21a44b0e5886680cb9.png","gravatar_id":"0d949b795e64e062c4c001c6f5a6f3f3","url":"https://api.github.com/users/macournoyer","html_url":"https://github.com/macournoyer","followers_url":"https://api.github.com/users/macournoyer/followers","following_url":"https://api.github.com/users/macournoyer/following{/other_user}","gists_url":"https://api.github.com/users/macournoyer/gists{/gist_id}","starred_url":"https://api.github.com/users/macournoyer/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/macournoyer/subscriptions","organizations_url":"https://api.github.com/users/macournoyer/orgs","repos_url":"https://api.github.com/users/macournoyer/repos","events_url":"https://api.github.com/users/macournoyer/events{/privacy}","received_events_url":"https://api.github.com/users/macournoyer/received_events","type":"User"},"private":false,"html_url":"https://github.com/macournoyer/thin","description":"A very fast & simple Ruby web server","fork":false,"url":"https://api.github.com/repos/macournoyer/thin","forks_url":"https://api.github.com/repos/macournoyer/thin/forks","keys_url":"https://api.github.com/repos/macournoyer/thin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/macournoyer/thin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/macournoyer/thin/teams","hooks_url":"https://api.github.com/repos/macournoyer/thin/hooks","issue_events_url":"https://api.github.com/repos/macournoyer/thin/issues/events{/number}","events_url":"https://api.github.com/repos/macournoyer/thin/events","assignees_url":"https://api.github.com/repos/macournoyer/thin/assignees{/user}","branches_url":"https://api.github.com/repos/macournoyer/thin/branches{/branch}","tags_url":"https://api.github.com/repos/macournoyer/thin/tags","blobs_url":"https://api.github.com/repos/macournoyer/thin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/macournoyer/thin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/macournoyer/thin/git/refs{/sha}","trees_url":"https://api.github.com/repos/macournoyer/thin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/macournoyer/thin/statuses/{sha}","languages_url":"https://api.github.com/repos/macournoyer/thin/languages","stargazers_url":"https://api.github.com/repos/macournoyer/thin/stargazers","contributors_url":"https://api.github.com/repos/macournoyer/thin/contributors","subscribers_url":"https://api.github.com/repos/macournoyer/thin/subscribers","subscription_url":"https://api.github.com/repos/macournoyer/thin/subscription","commits_url":"https://api.github.com/repos/macournoyer/thin/commits{/sha}","git_commits_url":"https://api.github.com/repos/macournoyer/thin/git/commits{/sha}","comments_url":"https://api.github.com/repos/macournoyer/thin/comments{/number}","issue_comment_url":"https://api.github.com/repos/macournoyer/thin/issues/comments/{number}","contents_url":"https://api.github.com/repos/macournoyer/thin/contents/{+path}","compare_url":"https://api.github.com/repos/macournoyer/thin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/macournoyer/thin/merges","archive_url":"https://api.github.com/repos/macournoyer/thin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/macournoyer/thin/downloads","issues_url":"https://api.github.com/repos/macournoyer/thin/issues{/number}","pulls_url":"https://api.github.com/repos/macournoyer/thin/pulls{/number}","milestones_url":"https://api.github.com/repos/macournoyer/thin/milestones{/number}","notifications_url":"https://api.github.com/repos/macournoyer/thin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/macournoyer/thin/labels{/name}"},{"id":71,"name":"resource_controller","full_name":"jamesgolick/resource_controller","owner":{"login":"jamesgolick","id":37,"avatar_url":"https://2.gravatar.com/avatar/f6eddf2f983d23c2d031e407852625e9?d=https%3A%2F%2Fidenticons.github.com%2Fa5bfc9e07964f8dddeb95fc584cd965d.png","gravatar_id":"f6eddf2f983d23c2d031e407852625e9","url":"https://api.github.com/users/jamesgolick","html_url":"https://github.com/jamesgolick","followers_url":"https://api.github.com/users/jamesgolick/followers","following_url":"https://api.github.com/users/jamesgolick/following{/other_user}","gists_url":"https://api.github.com/users/jamesgolick/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesgolick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesgolick/subscriptions","organizations_url":"https://api.github.com/users/jamesgolick/orgs","repos_url":"https://api.github.com/users/jamesgolick/repos","events_url":"https://api.github.com/users/jamesgolick/events{/privacy}","received_events_url":"https://api.github.com/users/jamesgolick/received_events","type":"User"},"private":false,"html_url":"https://github.com/jamesgolick/resource_controller","description":"Rails RESTful controller abstraction plugin.","fork":false,"url":"https://api.github.com/repos/jamesgolick/resource_controller","forks_url":"https://api.github.com/repos/jamesgolick/resource_controller/forks","keys_url":"https://api.github.com/repos/jamesgolick/resource_controller/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jamesgolick/resource_controller/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jamesgolick/resource_controller/teams","hooks_url":"https://api.github.com/repos/jamesgolick/resource_controller/hooks","issue_events_url":"https://api.github.com/repos/jamesgolick/resource_controller/issues/events{/number}","events_url":"https://api.github.com/repos/jamesgolick/resource_controller/events","assignees_url":"https://api.github.com/repos/jamesgolick/resource_controller/assignees{/user}","branches_url":"https://api.github.com/repos/jamesgolick/resource_controller/branches{/branch}","tags_url":"https://api.github.com/repos/jamesgolick/resource_controller/tags","blobs_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/refs{/sha}","trees_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jamesgolick/resource_controller/statuses/{sha}","languages_url":"https://api.github.com/repos/jamesgolick/resource_controller/languages","stargazers_url":"https://api.github.com/repos/jamesgolick/resource_controller/stargazers","contributors_url":"https://api.github.com/repos/jamesgolick/resource_controller/contributors","subscribers_url":"https://api.github.com/repos/jamesgolick/resource_controller/subscribers","subscription_url":"https://api.github.com/repos/jamesgolick/resource_controller/subscription","commits_url":"https://api.github.com/repos/jamesgolick/resource_controller/commits{/sha}","git_commits_url":"https://api.github.com/repos/jamesgolick/resource_controller/git/commits{/sha}","comments_url":"https://api.github.com/repos/jamesgolick/resource_controller/comments{/number}","issue_comment_url":"https://api.github.com/repos/jamesgolick/resource_controller/issues/comments/{number}","contents_url":"https://api.github.com/repos/jamesgolick/resource_controller/contents/{+path}","compare_url":"https://api.github.com/repos/jamesgolick/resource_controller/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jamesgolick/resource_controller/merges","archive_url":"https://api.github.com/repos/jamesgolick/resource_controller/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jamesgolick/resource_controller/downloads","issues_url":"https://api.github.com/repos/jamesgolick/resource_controller/issues{/number}","pulls_url":"https://api.github.com/repos/jamesgolick/resource_controller/pulls{/number}","milestones_url":"https://api.github.com/repos/jamesgolick/resource_controller/milestones{/number}","notifications_url":"https://api.github.com/repos/jamesgolick/resource_controller/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jamesgolick/resource_controller/labels{/name}"},{"id":73,"name":"markaby","full_name":"jamesgolick/markaby","owner":{"login":"jamesgolick","id":37,"avatar_url":"https://2.gravatar.com/avatar/f6eddf2f983d23c2d031e407852625e9?d=https%3A%2F%2Fidenticons.github.com%2Fa5bfc9e07964f8dddeb95fc584cd965d.png","gravatar_id":"f6eddf2f983d23c2d031e407852625e9","url":"https://api.github.com/users/jamesgolick","html_url":"https://github.com/jamesgolick","followers_url":"https://api.github.com/users/jamesgolick/followers","following_url":"https://api.github.com/users/jamesgolick/following{/other_user}","gists_url":"https://api.github.com/users/jamesgolick/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesgolick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesgolick/subscriptions","organizations_url":"https://api.github.com/users/jamesgolick/orgs","repos_url":"https://api.github.com/users/jamesgolick/repos","events_url":"https://api.github.com/users/jamesgolick/events{/privacy}","received_events_url":"https://api.github.com/users/jamesgolick/received_events","type":"User"},"private":false,"html_url":"https://github.com/jamesgolick/markaby","description":"Markaby patched to run on rails 2.0.2","fork":false,"url":"https://api.github.com/repos/jamesgolick/markaby","forks_url":"https://api.github.com/repos/jamesgolick/markaby/forks","keys_url":"https://api.github.com/repos/jamesgolick/markaby/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jamesgolick/markaby/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jamesgolick/markaby/teams","hooks_url":"https://api.github.com/repos/jamesgolick/markaby/hooks","issue_events_url":"https://api.github.com/repos/jamesgolick/markaby/issues/events{/number}","events_url":"https://api.github.com/repos/jamesgolick/markaby/events","assignees_url":"https://api.github.com/repos/jamesgolick/markaby/assignees{/user}","branches_url":"https://api.github.com/repos/jamesgolick/markaby/branches{/branch}","tags_url":"https://api.github.com/repos/jamesgolick/markaby/tags","blobs_url":"https://api.github.com/repos/jamesgolick/markaby/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jamesgolick/markaby/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jamesgolick/markaby/git/refs{/sha}","trees_url":"https://api.github.com/repos/jamesgolick/markaby/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jamesgolick/markaby/statuses/{sha}","languages_url":"https://api.github.com/repos/jamesgolick/markaby/languages","stargazers_url":"https://api.github.com/repos/jamesgolick/markaby/stargazers","contributors_url":"https://api.github.com/repos/jamesgolick/markaby/contributors","subscribers_url":"https://api.github.com/repos/jamesgolick/markaby/subscribers","subscription_url":"https://api.github.com/repos/jamesgolick/markaby/subscription","commits_url":"https://api.github.com/repos/jamesgolick/markaby/commits{/sha}","git_commits_url":"https://api.github.com/repos/jamesgolick/markaby/git/commits{/sha}","comments_url":"https://api.github.com/repos/jamesgolick/markaby/comments{/number}","issue_comment_url":"https://api.github.com/repos/jamesgolick/markaby/issues/comments/{number}","contents_url":"https://api.github.com/repos/jamesgolick/markaby/contents/{+path}","compare_url":"https://api.github.com/repos/jamesgolick/markaby/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jamesgolick/markaby/merges","archive_url":"https://api.github.com/repos/jamesgolick/markaby/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jamesgolick/markaby/downloads","issues_url":"https://api.github.com/repos/jamesgolick/markaby/issues{/number}","pulls_url":"https://api.github.com/repos/jamesgolick/markaby/pulls{/number}","milestones_url":"https://api.github.com/repos/jamesgolick/markaby/milestones{/number}","notifications_url":"https://api.github.com/repos/jamesgolick/markaby/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jamesgolick/markaby/labels{/name}"},{"id":74,"name":"enum_field","full_name":"jamesgolick/enum_field","owner":{"login":"jamesgolick","id":37,"avatar_url":"https://2.gravatar.com/avatar/f6eddf2f983d23c2d031e407852625e9?d=https%3A%2F%2Fidenticons.github.com%2Fa5bfc9e07964f8dddeb95fc584cd965d.png","gravatar_id":"f6eddf2f983d23c2d031e407852625e9","url":"https://api.github.com/users/jamesgolick","html_url":"https://github.com/jamesgolick","followers_url":"https://api.github.com/users/jamesgolick/followers","following_url":"https://api.github.com/users/jamesgolick/following{/other_user}","gists_url":"https://api.github.com/users/jamesgolick/gists{/gist_id}","starred_url":"https://api.github.com/users/jamesgolick/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jamesgolick/subscriptions","organizations_url":"https://api.github.com/users/jamesgolick/orgs","repos_url":"https://api.github.com/users/jamesgolick/repos","events_url":"https://api.github.com/users/jamesgolick/events{/privacy}","received_events_url":"https://api.github.com/users/jamesgolick/received_events","type":"User"},"private":false,"html_url":"https://github.com/jamesgolick/enum_field","description":"","fork":false,"url":"https://api.github.com/repos/jamesgolick/enum_field","forks_url":"https://api.github.com/repos/jamesgolick/enum_field/forks","keys_url":"https://api.github.com/repos/jamesgolick/enum_field/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jamesgolick/enum_field/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jamesgolick/enum_field/teams","hooks_url":"https://api.github.com/repos/jamesgolick/enum_field/hooks","issue_events_url":"https://api.github.com/repos/jamesgolick/enum_field/issues/events{/number}","events_url":"https://api.github.com/repos/jamesgolick/enum_field/events","assignees_url":"https://api.github.com/repos/jamesgolick/enum_field/assignees{/user}","branches_url":"https://api.github.com/repos/jamesgolick/enum_field/branches{/branch}","tags_url":"https://api.github.com/repos/jamesgolick/enum_field/tags","blobs_url":"https://api.github.com/repos/jamesgolick/enum_field/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jamesgolick/enum_field/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jamesgolick/enum_field/git/refs{/sha}","trees_url":"https://api.github.com/repos/jamesgolick/enum_field/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jamesgolick/enum_field/statuses/{sha}","languages_url":"https://api.github.com/repos/jamesgolick/enum_field/languages","stargazers_url":"https://api.github.com/repos/jamesgolick/enum_field/stargazers","contributors_url":"https://api.github.com/repos/jamesgolick/enum_field/contributors","subscribers_url":"https://api.github.com/repos/jamesgolick/enum_field/subscribers","subscription_url":"https://api.github.com/repos/jamesgolick/enum_field/subscription","commits_url":"https://api.github.com/repos/jamesgolick/enum_field/commits{/sha}","git_commits_url":"https://api.github.com/repos/jamesgolick/enum_field/git/commits{/sha}","comments_url":"https://api.github.com/repos/jamesgolick/enum_field/comments{/number}","issue_comment_url":"https://api.github.com/repos/jamesgolick/enum_field/issues/comments/{number}","contents_url":"https://api.github.com/repos/jamesgolick/enum_field/contents/{+path}","compare_url":"https://api.github.com/repos/jamesgolick/enum_field/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jamesgolick/enum_field/merges","archive_url":"https://api.github.com/repos/jamesgolick/enum_field/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jamesgolick/enum_field/downloads","issues_url":"https://api.github.com/repos/jamesgolick/enum_field/issues{/number}","pulls_url":"https://api.github.com/repos/jamesgolick/enum_field/pulls{/number}","milestones_url":"https://api.github.com/repos/jamesgolick/enum_field/milestones{/number}","notifications_url":"https://api.github.com/repos/jamesgolick/enum_field/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jamesgolick/enum_field/labels{/name}"},{"id":75,"name":"subtlety","full_name":"defunkt/subtlety","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/subtlety","description":"Subtlety: SVN => RSS, hAtom => Atom","fork":false,"url":"https://api.github.com/repos/defunkt/subtlety","forks_url":"https://api.github.com/repos/defunkt/subtlety/forks","keys_url":"https://api.github.com/repos/defunkt/subtlety/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/subtlety/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/subtlety/teams","hooks_url":"https://api.github.com/repos/defunkt/subtlety/hooks","issue_events_url":"https://api.github.com/repos/defunkt/subtlety/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/subtlety/events","assignees_url":"https://api.github.com/repos/defunkt/subtlety/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/subtlety/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/subtlety/tags","blobs_url":"https://api.github.com/repos/defunkt/subtlety/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/subtlety/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/subtlety/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/subtlety/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/subtlety/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/subtlety/languages","stargazers_url":"https://api.github.com/repos/defunkt/subtlety/stargazers","contributors_url":"https://api.github.com/repos/defunkt/subtlety/contributors","subscribers_url":"https://api.github.com/repos/defunkt/subtlety/subscribers","subscription_url":"https://api.github.com/repos/defunkt/subtlety/subscription","commits_url":"https://api.github.com/repos/defunkt/subtlety/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/subtlety/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/subtlety/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/subtlety/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/subtlety/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/subtlety/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/subtlety/merges","archive_url":"https://api.github.com/repos/defunkt/subtlety/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/subtlety/downloads","issues_url":"https://api.github.com/repos/defunkt/subtlety/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/subtlety/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/subtlety/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/subtlety/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/subtlety/labels{/name}"},{"id":92,"name":"zippy","full_name":"defunkt/zippy","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/zippy","description":"Zippy lil’ zipcode lib.","fork":false,"url":"https://api.github.com/repos/defunkt/zippy","forks_url":"https://api.github.com/repos/defunkt/zippy/forks","keys_url":"https://api.github.com/repos/defunkt/zippy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/zippy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/zippy/teams","hooks_url":"https://api.github.com/repos/defunkt/zippy/hooks","issue_events_url":"https://api.github.com/repos/defunkt/zippy/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/zippy/events","assignees_url":"https://api.github.com/repos/defunkt/zippy/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/zippy/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/zippy/tags","blobs_url":"https://api.github.com/repos/defunkt/zippy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/zippy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/zippy/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/zippy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/zippy/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/zippy/languages","stargazers_url":"https://api.github.com/repos/defunkt/zippy/stargazers","contributors_url":"https://api.github.com/repos/defunkt/zippy/contributors","subscribers_url":"https://api.github.com/repos/defunkt/zippy/subscribers","subscription_url":"https://api.github.com/repos/defunkt/zippy/subscription","commits_url":"https://api.github.com/repos/defunkt/zippy/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/zippy/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/zippy/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/zippy/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/zippy/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/zippy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/zippy/merges","archive_url":"https://api.github.com/repos/defunkt/zippy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/zippy/downloads","issues_url":"https://api.github.com/repos/defunkt/zippy/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/zippy/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/zippy/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/zippy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/zippy/labels{/name}"},{"id":93,"name":"cache_fu","full_name":"defunkt/cache_fu","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/cache_fu","description":"Ghost from Christmas past. Unmaintained.","fork":false,"url":"https://api.github.com/repos/defunkt/cache_fu","forks_url":"https://api.github.com/repos/defunkt/cache_fu/forks","keys_url":"https://api.github.com/repos/defunkt/cache_fu/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/cache_fu/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/cache_fu/teams","hooks_url":"https://api.github.com/repos/defunkt/cache_fu/hooks","issue_events_url":"https://api.github.com/repos/defunkt/cache_fu/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/cache_fu/events","assignees_url":"https://api.github.com/repos/defunkt/cache_fu/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/cache_fu/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/cache_fu/tags","blobs_url":"https://api.github.com/repos/defunkt/cache_fu/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/cache_fu/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/cache_fu/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/cache_fu/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/cache_fu/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/cache_fu/languages","stargazers_url":"https://api.github.com/repos/defunkt/cache_fu/stargazers","contributors_url":"https://api.github.com/repos/defunkt/cache_fu/contributors","subscribers_url":"https://api.github.com/repos/defunkt/cache_fu/subscribers","subscription_url":"https://api.github.com/repos/defunkt/cache_fu/subscription","commits_url":"https://api.github.com/repos/defunkt/cache_fu/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/cache_fu/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/cache_fu/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/cache_fu/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/cache_fu/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/cache_fu/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/cache_fu/merges","archive_url":"https://api.github.com/repos/defunkt/cache_fu/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/cache_fu/downloads","issues_url":"https://api.github.com/repos/defunkt/cache_fu/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/cache_fu/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/cache_fu/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/cache_fu/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/cache_fu/labels{/name}"},{"id":95,"name":"phosphor","full_name":"KirinDave/phosphor","owner":{"login":"KirinDave","id":36,"avatar_url":"https://2.gravatar.com/avatar/d4fabd6c08ac228a3ff846d9d0d1580e?d=https%3A%2F%2Fidenticons.github.com%2F19ca14e7ea6328a42e0eb13d585e4c22.png","gravatar_id":"d4fabd6c08ac228a3ff846d9d0d1580e","url":"https://api.github.com/users/KirinDave","html_url":"https://github.com/KirinDave","followers_url":"https://api.github.com/users/KirinDave/followers","following_url":"https://api.github.com/users/KirinDave/following{/other_user}","gists_url":"https://api.github.com/users/KirinDave/gists{/gist_id}","starred_url":"https://api.github.com/users/KirinDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KirinDave/subscriptions","organizations_url":"https://api.github.com/users/KirinDave/orgs","repos_url":"https://api.github.com/users/KirinDave/repos","events_url":"https://api.github.com/users/KirinDave/events{/privacy}","received_events_url":"https://api.github.com/users/KirinDave/received_events","type":"User"},"private":false,"html_url":"https://github.com/KirinDave/phosphor","description":" A ruby library to inexpensively emit runtime events via Dtrace","fork":false,"url":"https://api.github.com/repos/KirinDave/phosphor","forks_url":"https://api.github.com/repos/KirinDave/phosphor/forks","keys_url":"https://api.github.com/repos/KirinDave/phosphor/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KirinDave/phosphor/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KirinDave/phosphor/teams","hooks_url":"https://api.github.com/repos/KirinDave/phosphor/hooks","issue_events_url":"https://api.github.com/repos/KirinDave/phosphor/issues/events{/number}","events_url":"https://api.github.com/repos/KirinDave/phosphor/events","assignees_url":"https://api.github.com/repos/KirinDave/phosphor/assignees{/user}","branches_url":"https://api.github.com/repos/KirinDave/phosphor/branches{/branch}","tags_url":"https://api.github.com/repos/KirinDave/phosphor/tags","blobs_url":"https://api.github.com/repos/KirinDave/phosphor/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KirinDave/phosphor/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KirinDave/phosphor/git/refs{/sha}","trees_url":"https://api.github.com/repos/KirinDave/phosphor/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KirinDave/phosphor/statuses/{sha}","languages_url":"https://api.github.com/repos/KirinDave/phosphor/languages","stargazers_url":"https://api.github.com/repos/KirinDave/phosphor/stargazers","contributors_url":"https://api.github.com/repos/KirinDave/phosphor/contributors","subscribers_url":"https://api.github.com/repos/KirinDave/phosphor/subscribers","subscription_url":"https://api.github.com/repos/KirinDave/phosphor/subscription","commits_url":"https://api.github.com/repos/KirinDave/phosphor/commits{/sha}","git_commits_url":"https://api.github.com/repos/KirinDave/phosphor/git/commits{/sha}","comments_url":"https://api.github.com/repos/KirinDave/phosphor/comments{/number}","issue_comment_url":"https://api.github.com/repos/KirinDave/phosphor/issues/comments/{number}","contents_url":"https://api.github.com/repos/KirinDave/phosphor/contents/{+path}","compare_url":"https://api.github.com/repos/KirinDave/phosphor/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KirinDave/phosphor/merges","archive_url":"https://api.github.com/repos/KirinDave/phosphor/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KirinDave/phosphor/downloads","issues_url":"https://api.github.com/repos/KirinDave/phosphor/issues{/number}","pulls_url":"https://api.github.com/repos/KirinDave/phosphor/pulls{/number}","milestones_url":"https://api.github.com/repos/KirinDave/phosphor/milestones{/number}","notifications_url":"https://api.github.com/repos/KirinDave/phosphor/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KirinDave/phosphor/labels{/name}"},{"id":98,"name":"sinatra","full_name":"bmizerany/sinatra","owner":{"login":"bmizerany","id":46,"avatar_url":"https://2.gravatar.com/avatar/1a250566b475961b9b36abf359950c76?d=https%3A%2F%2Fidenticons.github.com%2Fd9d4f495e875a2e075a1a4a6e1b9770f.png","gravatar_id":"1a250566b475961b9b36abf359950c76","url":"https://api.github.com/users/bmizerany","html_url":"https://github.com/bmizerany","followers_url":"https://api.github.com/users/bmizerany/followers","following_url":"https://api.github.com/users/bmizerany/following{/other_user}","gists_url":"https://api.github.com/users/bmizerany/gists{/gist_id}","starred_url":"https://api.github.com/users/bmizerany/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmizerany/subscriptions","organizations_url":"https://api.github.com/users/bmizerany/orgs","repos_url":"https://api.github.com/users/bmizerany/repos","events_url":"https://api.github.com/users/bmizerany/events{/privacy}","received_events_url":"https://api.github.com/users/bmizerany/received_events","type":"User"},"private":false,"html_url":"https://github.com/bmizerany/sinatra","description":"(offically at github.com/sinatra/sinatra) Classy web-development dressed in a DSL","fork":false,"url":"https://api.github.com/repos/bmizerany/sinatra","forks_url":"https://api.github.com/repos/bmizerany/sinatra/forks","keys_url":"https://api.github.com/repos/bmizerany/sinatra/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bmizerany/sinatra/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bmizerany/sinatra/teams","hooks_url":"https://api.github.com/repos/bmizerany/sinatra/hooks","issue_events_url":"https://api.github.com/repos/bmizerany/sinatra/issues/events{/number}","events_url":"https://api.github.com/repos/bmizerany/sinatra/events","assignees_url":"https://api.github.com/repos/bmizerany/sinatra/assignees{/user}","branches_url":"https://api.github.com/repos/bmizerany/sinatra/branches{/branch}","tags_url":"https://api.github.com/repos/bmizerany/sinatra/tags","blobs_url":"https://api.github.com/repos/bmizerany/sinatra/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bmizerany/sinatra/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bmizerany/sinatra/git/refs{/sha}","trees_url":"https://api.github.com/repos/bmizerany/sinatra/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bmizerany/sinatra/statuses/{sha}","languages_url":"https://api.github.com/repos/bmizerany/sinatra/languages","stargazers_url":"https://api.github.com/repos/bmizerany/sinatra/stargazers","contributors_url":"https://api.github.com/repos/bmizerany/sinatra/contributors","subscribers_url":"https://api.github.com/repos/bmizerany/sinatra/subscribers","subscription_url":"https://api.github.com/repos/bmizerany/sinatra/subscription","commits_url":"https://api.github.com/repos/bmizerany/sinatra/commits{/sha}","git_commits_url":"https://api.github.com/repos/bmizerany/sinatra/git/commits{/sha}","comments_url":"https://api.github.com/repos/bmizerany/sinatra/comments{/number}","issue_comment_url":"https://api.github.com/repos/bmizerany/sinatra/issues/comments/{number}","contents_url":"https://api.github.com/repos/bmizerany/sinatra/contents/{+path}","compare_url":"https://api.github.com/repos/bmizerany/sinatra/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bmizerany/sinatra/merges","archive_url":"https://api.github.com/repos/bmizerany/sinatra/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bmizerany/sinatra/downloads","issues_url":"https://api.github.com/repos/bmizerany/sinatra/issues{/number}","pulls_url":"https://api.github.com/repos/bmizerany/sinatra/pulls{/number}","milestones_url":"https://api.github.com/repos/bmizerany/sinatra/milestones{/number}","notifications_url":"https://api.github.com/repos/bmizerany/sinatra/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bmizerany/sinatra/labels{/name}"},{"id":102,"name":"gsa-prototype","full_name":"jnewland/gsa-prototype","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/gsa-prototype","description":"Prototype/Javascript wrapper for the Google Search Appliance Search Protocol. Fancy cross-domain JSON support included.","fork":false,"url":"https://api.github.com/repos/jnewland/gsa-prototype","forks_url":"https://api.github.com/repos/jnewland/gsa-prototype/forks","keys_url":"https://api.github.com/repos/jnewland/gsa-prototype/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/gsa-prototype/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/gsa-prototype/teams","hooks_url":"https://api.github.com/repos/jnewland/gsa-prototype/hooks","issue_events_url":"https://api.github.com/repos/jnewland/gsa-prototype/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/gsa-prototype/events","assignees_url":"https://api.github.com/repos/jnewland/gsa-prototype/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/gsa-prototype/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/gsa-prototype/tags","blobs_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/gsa-prototype/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/gsa-prototype/languages","stargazers_url":"https://api.github.com/repos/jnewland/gsa-prototype/stargazers","contributors_url":"https://api.github.com/repos/jnewland/gsa-prototype/contributors","subscribers_url":"https://api.github.com/repos/jnewland/gsa-prototype/subscribers","subscription_url":"https://api.github.com/repos/jnewland/gsa-prototype/subscription","commits_url":"https://api.github.com/repos/jnewland/gsa-prototype/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/gsa-prototype/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/gsa-prototype/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/gsa-prototype/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/gsa-prototype/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/gsa-prototype/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/gsa-prototype/merges","archive_url":"https://api.github.com/repos/jnewland/gsa-prototype/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/gsa-prototype/downloads","issues_url":"https://api.github.com/repos/jnewland/gsa-prototype/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/gsa-prototype/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/gsa-prototype/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/gsa-prototype/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/gsa-prototype/labels{/name}"},{"id":105,"name":"duplikate","full_name":"technoweenie/duplikate","owner":{"login":"technoweenie","id":21,"avatar_url":"https://1.gravatar.com/avatar/821395fe70906c8290df7f18ac4ac6cf?d=https%3A%2F%2Fidenticons.github.com%2F3c59dc048e8850243be8079a5c74d079.png","gravatar_id":"821395fe70906c8290df7f18ac4ac6cf","url":"https://api.github.com/users/technoweenie","html_url":"https://github.com/technoweenie","followers_url":"https://api.github.com/users/technoweenie/followers","following_url":"https://api.github.com/users/technoweenie/following{/other_user}","gists_url":"https://api.github.com/users/technoweenie/gists{/gist_id}","starred_url":"https://api.github.com/users/technoweenie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technoweenie/subscriptions","organizations_url":"https://api.github.com/users/technoweenie/orgs","repos_url":"https://api.github.com/users/technoweenie/repos","events_url":"https://api.github.com/users/technoweenie/events{/privacy}","received_events_url":"https://api.github.com/users/technoweenie/received_events","type":"User"},"private":false,"html_url":"https://github.com/technoweenie/duplikate","description":"Syncs one directory to another (example: a git project to an svn repo)","fork":false,"url":"https://api.github.com/repos/technoweenie/duplikate","forks_url":"https://api.github.com/repos/technoweenie/duplikate/forks","keys_url":"https://api.github.com/repos/technoweenie/duplikate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technoweenie/duplikate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technoweenie/duplikate/teams","hooks_url":"https://api.github.com/repos/technoweenie/duplikate/hooks","issue_events_url":"https://api.github.com/repos/technoweenie/duplikate/issues/events{/number}","events_url":"https://api.github.com/repos/technoweenie/duplikate/events","assignees_url":"https://api.github.com/repos/technoweenie/duplikate/assignees{/user}","branches_url":"https://api.github.com/repos/technoweenie/duplikate/branches{/branch}","tags_url":"https://api.github.com/repos/technoweenie/duplikate/tags","blobs_url":"https://api.github.com/repos/technoweenie/duplikate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technoweenie/duplikate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technoweenie/duplikate/git/refs{/sha}","trees_url":"https://api.github.com/repos/technoweenie/duplikate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technoweenie/duplikate/statuses/{sha}","languages_url":"https://api.github.com/repos/technoweenie/duplikate/languages","stargazers_url":"https://api.github.com/repos/technoweenie/duplikate/stargazers","contributors_url":"https://api.github.com/repos/technoweenie/duplikate/contributors","subscribers_url":"https://api.github.com/repos/technoweenie/duplikate/subscribers","subscription_url":"https://api.github.com/repos/technoweenie/duplikate/subscription","commits_url":"https://api.github.com/repos/technoweenie/duplikate/commits{/sha}","git_commits_url":"https://api.github.com/repos/technoweenie/duplikate/git/commits{/sha}","comments_url":"https://api.github.com/repos/technoweenie/duplikate/comments{/number}","issue_comment_url":"https://api.github.com/repos/technoweenie/duplikate/issues/comments/{number}","contents_url":"https://api.github.com/repos/technoweenie/duplikate/contents/{+path}","compare_url":"https://api.github.com/repos/technoweenie/duplikate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technoweenie/duplikate/merges","archive_url":"https://api.github.com/repos/technoweenie/duplikate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technoweenie/duplikate/downloads","issues_url":"https://api.github.com/repos/technoweenie/duplikate/issues{/number}","pulls_url":"https://api.github.com/repos/technoweenie/duplikate/pulls{/number}","milestones_url":"https://api.github.com/repos/technoweenie/duplikate/milestones{/number}","notifications_url":"https://api.github.com/repos/technoweenie/duplikate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technoweenie/duplikate/labels{/name}"},{"id":118,"name":"lazy_record","full_name":"jnewland/lazy_record","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/lazy_record","description":"Proof of concept Lazy-Loading for ActiveRecord. Inspired by the 'kickers' of Ambition.","fork":false,"url":"https://api.github.com/repos/jnewland/lazy_record","forks_url":"https://api.github.com/repos/jnewland/lazy_record/forks","keys_url":"https://api.github.com/repos/jnewland/lazy_record/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/lazy_record/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/lazy_record/teams","hooks_url":"https://api.github.com/repos/jnewland/lazy_record/hooks","issue_events_url":"https://api.github.com/repos/jnewland/lazy_record/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/lazy_record/events","assignees_url":"https://api.github.com/repos/jnewland/lazy_record/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/lazy_record/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/lazy_record/tags","blobs_url":"https://api.github.com/repos/jnewland/lazy_record/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/lazy_record/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/lazy_record/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/lazy_record/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/lazy_record/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/lazy_record/languages","stargazers_url":"https://api.github.com/repos/jnewland/lazy_record/stargazers","contributors_url":"https://api.github.com/repos/jnewland/lazy_record/contributors","subscribers_url":"https://api.github.com/repos/jnewland/lazy_record/subscribers","subscription_url":"https://api.github.com/repos/jnewland/lazy_record/subscription","commits_url":"https://api.github.com/repos/jnewland/lazy_record/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/lazy_record/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/lazy_record/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/lazy_record/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/lazy_record/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/lazy_record/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/lazy_record/merges","archive_url":"https://api.github.com/repos/jnewland/lazy_record/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/lazy_record/downloads","issues_url":"https://api.github.com/repos/jnewland/lazy_record/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/lazy_record/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/lazy_record/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/lazy_record/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/lazy_record/labels{/name}"},{"id":119,"name":"gsa-feeds","full_name":"jnewland/gsa-feeds","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/gsa-feeds","description":"A Ruby wrapper for the Google Search Appliance Feeds Protocol","fork":false,"url":"https://api.github.com/repos/jnewland/gsa-feeds","forks_url":"https://api.github.com/repos/jnewland/gsa-feeds/forks","keys_url":"https://api.github.com/repos/jnewland/gsa-feeds/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/gsa-feeds/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/gsa-feeds/teams","hooks_url":"https://api.github.com/repos/jnewland/gsa-feeds/hooks","issue_events_url":"https://api.github.com/repos/jnewland/gsa-feeds/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/gsa-feeds/events","assignees_url":"https://api.github.com/repos/jnewland/gsa-feeds/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/gsa-feeds/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/gsa-feeds/tags","blobs_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/gsa-feeds/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/gsa-feeds/languages","stargazers_url":"https://api.github.com/repos/jnewland/gsa-feeds/stargazers","contributors_url":"https://api.github.com/repos/jnewland/gsa-feeds/contributors","subscribers_url":"https://api.github.com/repos/jnewland/gsa-feeds/subscribers","subscription_url":"https://api.github.com/repos/jnewland/gsa-feeds/subscription","commits_url":"https://api.github.com/repos/jnewland/gsa-feeds/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/gsa-feeds/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/gsa-feeds/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/gsa-feeds/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/gsa-feeds/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/gsa-feeds/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/gsa-feeds/merges","archive_url":"https://api.github.com/repos/jnewland/gsa-feeds/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/gsa-feeds/downloads","issues_url":"https://api.github.com/repos/jnewland/gsa-feeds/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/gsa-feeds/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/gsa-feeds/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/gsa-feeds/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/gsa-feeds/labels{/name}"},{"id":120,"name":"votigoto","full_name":"jnewland/votigoto","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/votigoto","description":"Ruby API wrapper for the TiVoToGo protocol. Use it to access a list of recorded shows and programs on your Tivo.","fork":false,"url":"https://api.github.com/repos/jnewland/votigoto","forks_url":"https://api.github.com/repos/jnewland/votigoto/forks","keys_url":"https://api.github.com/repos/jnewland/votigoto/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/votigoto/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/votigoto/teams","hooks_url":"https://api.github.com/repos/jnewland/votigoto/hooks","issue_events_url":"https://api.github.com/repos/jnewland/votigoto/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/votigoto/events","assignees_url":"https://api.github.com/repos/jnewland/votigoto/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/votigoto/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/votigoto/tags","blobs_url":"https://api.github.com/repos/jnewland/votigoto/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/votigoto/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/votigoto/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/votigoto/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/votigoto/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/votigoto/languages","stargazers_url":"https://api.github.com/repos/jnewland/votigoto/stargazers","contributors_url":"https://api.github.com/repos/jnewland/votigoto/contributors","subscribers_url":"https://api.github.com/repos/jnewland/votigoto/subscribers","subscription_url":"https://api.github.com/repos/jnewland/votigoto/subscription","commits_url":"https://api.github.com/repos/jnewland/votigoto/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/votigoto/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/votigoto/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/votigoto/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/votigoto/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/votigoto/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/votigoto/merges","archive_url":"https://api.github.com/repos/jnewland/votigoto/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/votigoto/downloads","issues_url":"https://api.github.com/repos/jnewland/votigoto/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/votigoto/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/votigoto/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/votigoto/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/votigoto/labels{/name}"},{"id":127,"name":"mofo","full_name":"defunkt/mofo","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/mofo","description":"Mofo was a fast and simple microformat parser, based on a concise DSL and Hpricot. No longer maintained.","fork":false,"url":"https://api.github.com/repos/defunkt/mofo","forks_url":"https://api.github.com/repos/defunkt/mofo/forks","keys_url":"https://api.github.com/repos/defunkt/mofo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/mofo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/mofo/teams","hooks_url":"https://api.github.com/repos/defunkt/mofo/hooks","issue_events_url":"https://api.github.com/repos/defunkt/mofo/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/mofo/events","assignees_url":"https://api.github.com/repos/defunkt/mofo/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/mofo/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/mofo/tags","blobs_url":"https://api.github.com/repos/defunkt/mofo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/mofo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/mofo/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/mofo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/mofo/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/mofo/languages","stargazers_url":"https://api.github.com/repos/defunkt/mofo/stargazers","contributors_url":"https://api.github.com/repos/defunkt/mofo/contributors","subscribers_url":"https://api.github.com/repos/defunkt/mofo/subscribers","subscription_url":"https://api.github.com/repos/defunkt/mofo/subscription","commits_url":"https://api.github.com/repos/defunkt/mofo/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/mofo/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/mofo/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/mofo/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/mofo/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/mofo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/mofo/merges","archive_url":"https://api.github.com/repos/defunkt/mofo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/mofo/downloads","issues_url":"https://api.github.com/repos/defunkt/mofo/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/mofo/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/mofo/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/mofo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/mofo/labels{/name}"},{"id":129,"name":"xhtmlize","full_name":"jnewland/xhtmlize","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/xhtmlize","description":"Rails helper to XHTML-ize chunks of user submitted HTML. For the standardista in all of us","fork":false,"url":"https://api.github.com/repos/jnewland/xhtmlize","forks_url":"https://api.github.com/repos/jnewland/xhtmlize/forks","keys_url":"https://api.github.com/repos/jnewland/xhtmlize/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/xhtmlize/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/xhtmlize/teams","hooks_url":"https://api.github.com/repos/jnewland/xhtmlize/hooks","issue_events_url":"https://api.github.com/repos/jnewland/xhtmlize/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/xhtmlize/events","assignees_url":"https://api.github.com/repos/jnewland/xhtmlize/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/xhtmlize/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/xhtmlize/tags","blobs_url":"https://api.github.com/repos/jnewland/xhtmlize/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/xhtmlize/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/xhtmlize/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/xhtmlize/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/xhtmlize/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/xhtmlize/languages","stargazers_url":"https://api.github.com/repos/jnewland/xhtmlize/stargazers","contributors_url":"https://api.github.com/repos/jnewland/xhtmlize/contributors","subscribers_url":"https://api.github.com/repos/jnewland/xhtmlize/subscribers","subscription_url":"https://api.github.com/repos/jnewland/xhtmlize/subscription","commits_url":"https://api.github.com/repos/jnewland/xhtmlize/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/xhtmlize/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/xhtmlize/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/xhtmlize/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/xhtmlize/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/xhtmlize/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/xhtmlize/merges","archive_url":"https://api.github.com/repos/jnewland/xhtmlize/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/xhtmlize/downloads","issues_url":"https://api.github.com/repos/jnewland/xhtmlize/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/xhtmlize/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/xhtmlize/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/xhtmlize/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/xhtmlize/labels{/name}"},{"id":130,"name":"ruby-git","full_name":"schacon/ruby-git","owner":{"login":"schacon","id":70,"avatar_url":"https://2.gravatar.com/avatar/9375a9529679f1b42b567a640d775e7d?d=https%3A%2F%2Fidenticons.github.com%2F7cbbc409ec990f19c78c75bd1e06f215.png","gravatar_id":"9375a9529679f1b42b567a640d775e7d","url":"https://api.github.com/users/schacon","html_url":"https://github.com/schacon","followers_url":"https://api.github.com/users/schacon/followers","following_url":"https://api.github.com/users/schacon/following{/other_user}","gists_url":"https://api.github.com/users/schacon/gists{/gist_id}","starred_url":"https://api.github.com/users/schacon/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/schacon/subscriptions","organizations_url":"https://api.github.com/users/schacon/orgs","repos_url":"https://api.github.com/users/schacon/repos","events_url":"https://api.github.com/users/schacon/events{/privacy}","received_events_url":"https://api.github.com/users/schacon/received_events","type":"User"},"private":false,"html_url":"https://github.com/schacon/ruby-git","description":"Ruby/Git is a Ruby library that can be used to create, read and manipulate Git repositories by wrapping system calls to the git binary.","fork":false,"url":"https://api.github.com/repos/schacon/ruby-git","forks_url":"https://api.github.com/repos/schacon/ruby-git/forks","keys_url":"https://api.github.com/repos/schacon/ruby-git/keys{/key_id}","collaborators_url":"https://api.github.com/repos/schacon/ruby-git/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/schacon/ruby-git/teams","hooks_url":"https://api.github.com/repos/schacon/ruby-git/hooks","issue_events_url":"https://api.github.com/repos/schacon/ruby-git/issues/events{/number}","events_url":"https://api.github.com/repos/schacon/ruby-git/events","assignees_url":"https://api.github.com/repos/schacon/ruby-git/assignees{/user}","branches_url":"https://api.github.com/repos/schacon/ruby-git/branches{/branch}","tags_url":"https://api.github.com/repos/schacon/ruby-git/tags","blobs_url":"https://api.github.com/repos/schacon/ruby-git/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/schacon/ruby-git/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/schacon/ruby-git/git/refs{/sha}","trees_url":"https://api.github.com/repos/schacon/ruby-git/git/trees{/sha}","statuses_url":"https://api.github.com/repos/schacon/ruby-git/statuses/{sha}","languages_url":"https://api.github.com/repos/schacon/ruby-git/languages","stargazers_url":"https://api.github.com/repos/schacon/ruby-git/stargazers","contributors_url":"https://api.github.com/repos/schacon/ruby-git/contributors","subscribers_url":"https://api.github.com/repos/schacon/ruby-git/subscribers","subscription_url":"https://api.github.com/repos/schacon/ruby-git/subscription","commits_url":"https://api.github.com/repos/schacon/ruby-git/commits{/sha}","git_commits_url":"https://api.github.com/repos/schacon/ruby-git/git/commits{/sha}","comments_url":"https://api.github.com/repos/schacon/ruby-git/comments{/number}","issue_comment_url":"https://api.github.com/repos/schacon/ruby-git/issues/comments/{number}","contents_url":"https://api.github.com/repos/schacon/ruby-git/contents/{+path}","compare_url":"https://api.github.com/repos/schacon/ruby-git/compare/{base}...{head}","merges_url":"https://api.github.com/repos/schacon/ruby-git/merges","archive_url":"https://api.github.com/repos/schacon/ruby-git/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/schacon/ruby-git/downloads","issues_url":"https://api.github.com/repos/schacon/ruby-git/issues{/number}","pulls_url":"https://api.github.com/repos/schacon/ruby-git/pulls{/number}","milestones_url":"https://api.github.com/repos/schacon/ruby-git/milestones{/number}","notifications_url":"https://api.github.com/repos/schacon/ruby-git/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/schacon/ruby-git/labels{/name}"},{"id":131,"name":"bmhsearch","full_name":"ezmobius/bmhsearch","owner":{"login":"ezmobius","id":5,"avatar_url":"https://1.gravatar.com/avatar/6a3a6e3da2d97be8df476187ff151f04?d=https%3A%2F%2Fidenticons.github.com%2Fe4da3b7fbbce2345d7772b0674a318d5.png","gravatar_id":"6a3a6e3da2d97be8df476187ff151f04","url":"https://api.github.com/users/ezmobius","html_url":"https://github.com/ezmobius","followers_url":"https://api.github.com/users/ezmobius/followers","following_url":"https://api.github.com/users/ezmobius/following{/other_user}","gists_url":"https://api.github.com/users/ezmobius/gists{/gist_id}","starred_url":"https://api.github.com/users/ezmobius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ezmobius/subscriptions","organizations_url":"https://api.github.com/users/ezmobius/orgs","repos_url":"https://api.github.com/users/ezmobius/repos","events_url":"https://api.github.com/users/ezmobius/events{/privacy}","received_events_url":"https://api.github.com/users/ezmobius/received_events","type":"User"},"private":false,"html_url":"https://github.com/ezmobius/bmhsearch","description":"Fast string searcher, useful for multi-part post parsing","fork":false,"url":"https://api.github.com/repos/ezmobius/bmhsearch","forks_url":"https://api.github.com/repos/ezmobius/bmhsearch/forks","keys_url":"https://api.github.com/repos/ezmobius/bmhsearch/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ezmobius/bmhsearch/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ezmobius/bmhsearch/teams","hooks_url":"https://api.github.com/repos/ezmobius/bmhsearch/hooks","issue_events_url":"https://api.github.com/repos/ezmobius/bmhsearch/issues/events{/number}","events_url":"https://api.github.com/repos/ezmobius/bmhsearch/events","assignees_url":"https://api.github.com/repos/ezmobius/bmhsearch/assignees{/user}","branches_url":"https://api.github.com/repos/ezmobius/bmhsearch/branches{/branch}","tags_url":"https://api.github.com/repos/ezmobius/bmhsearch/tags","blobs_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/refs{/sha}","trees_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ezmobius/bmhsearch/statuses/{sha}","languages_url":"https://api.github.com/repos/ezmobius/bmhsearch/languages","stargazers_url":"https://api.github.com/repos/ezmobius/bmhsearch/stargazers","contributors_url":"https://api.github.com/repos/ezmobius/bmhsearch/contributors","subscribers_url":"https://api.github.com/repos/ezmobius/bmhsearch/subscribers","subscription_url":"https://api.github.com/repos/ezmobius/bmhsearch/subscription","commits_url":"https://api.github.com/repos/ezmobius/bmhsearch/commits{/sha}","git_commits_url":"https://api.github.com/repos/ezmobius/bmhsearch/git/commits{/sha}","comments_url":"https://api.github.com/repos/ezmobius/bmhsearch/comments{/number}","issue_comment_url":"https://api.github.com/repos/ezmobius/bmhsearch/issues/comments/{number}","contents_url":"https://api.github.com/repos/ezmobius/bmhsearch/contents/{+path}","compare_url":"https://api.github.com/repos/ezmobius/bmhsearch/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ezmobius/bmhsearch/merges","archive_url":"https://api.github.com/repos/ezmobius/bmhsearch/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ezmobius/bmhsearch/downloads","issues_url":"https://api.github.com/repos/ezmobius/bmhsearch/issues{/number}","pulls_url":"https://api.github.com/repos/ezmobius/bmhsearch/pulls{/number}","milestones_url":"https://api.github.com/repos/ezmobius/bmhsearch/milestones{/number}","notifications_url":"https://api.github.com/repos/ezmobius/bmhsearch/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ezmobius/bmhsearch/labels{/name}"},{"id":137,"name":"mofo","full_name":"uggedal/mofo","owner":{"login":"uggedal","id":71,"avatar_url":"https://1.gravatar.com/avatar/0339e3df937c32000f9e2cf1de04298d?d=https%3A%2F%2Fidenticons.github.com%2Fe2c420d928d4bf8ce0ff2ec19b371514.png","gravatar_id":"0339e3df937c32000f9e2cf1de04298d","url":"https://api.github.com/users/uggedal","html_url":"https://github.com/uggedal","followers_url":"https://api.github.com/users/uggedal/followers","following_url":"https://api.github.com/users/uggedal/following{/other_user}","gists_url":"https://api.github.com/users/uggedal/gists{/gist_id}","starred_url":"https://api.github.com/users/uggedal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/uggedal/subscriptions","organizations_url":"https://api.github.com/users/uggedal/orgs","repos_url":"https://api.github.com/users/uggedal/repos","events_url":"https://api.github.com/users/uggedal/events{/privacy}","received_events_url":"https://api.github.com/users/uggedal/received_events","type":"User"},"private":false,"html_url":"https://github.com/uggedal/mofo","description":"Mofo is a fast and simple microformat parser, based on a concise DSL and Hpricot.","fork":true,"url":"https://api.github.com/repos/uggedal/mofo","forks_url":"https://api.github.com/repos/uggedal/mofo/forks","keys_url":"https://api.github.com/repos/uggedal/mofo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/uggedal/mofo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/uggedal/mofo/teams","hooks_url":"https://api.github.com/repos/uggedal/mofo/hooks","issue_events_url":"https://api.github.com/repos/uggedal/mofo/issues/events{/number}","events_url":"https://api.github.com/repos/uggedal/mofo/events","assignees_url":"https://api.github.com/repos/uggedal/mofo/assignees{/user}","branches_url":"https://api.github.com/repos/uggedal/mofo/branches{/branch}","tags_url":"https://api.github.com/repos/uggedal/mofo/tags","blobs_url":"https://api.github.com/repos/uggedal/mofo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/uggedal/mofo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/uggedal/mofo/git/refs{/sha}","trees_url":"https://api.github.com/repos/uggedal/mofo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/uggedal/mofo/statuses/{sha}","languages_url":"https://api.github.com/repos/uggedal/mofo/languages","stargazers_url":"https://api.github.com/repos/uggedal/mofo/stargazers","contributors_url":"https://api.github.com/repos/uggedal/mofo/contributors","subscribers_url":"https://api.github.com/repos/uggedal/mofo/subscribers","subscription_url":"https://api.github.com/repos/uggedal/mofo/subscription","commits_url":"https://api.github.com/repos/uggedal/mofo/commits{/sha}","git_commits_url":"https://api.github.com/repos/uggedal/mofo/git/commits{/sha}","comments_url":"https://api.github.com/repos/uggedal/mofo/comments{/number}","issue_comment_url":"https://api.github.com/repos/uggedal/mofo/issues/comments/{number}","contents_url":"https://api.github.com/repos/uggedal/mofo/contents/{+path}","compare_url":"https://api.github.com/repos/uggedal/mofo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/uggedal/mofo/merges","archive_url":"https://api.github.com/repos/uggedal/mofo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/uggedal/mofo/downloads","issues_url":"https://api.github.com/repos/uggedal/mofo/issues{/number}","pulls_url":"https://api.github.com/repos/uggedal/mofo/pulls{/number}","milestones_url":"https://api.github.com/repos/uggedal/mofo/milestones{/number}","notifications_url":"https://api.github.com/repos/uggedal/mofo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/uggedal/mofo/labels{/name}"},{"id":139,"name":"simply_versioned","full_name":"mmower/simply_versioned","owner":{"login":"mmower","id":74,"avatar_url":"https://2.gravatar.com/avatar/9d89c1c7a998c1f6f6e3fa9ac1753d29?d=https%3A%2F%2Fidenticons.github.com%2Fad61ab143223efbc24c7d2583be69251.png","gravatar_id":"9d89c1c7a998c1f6f6e3fa9ac1753d29","url":"https://api.github.com/users/mmower","html_url":"https://github.com/mmower","followers_url":"https://api.github.com/users/mmower/followers","following_url":"https://api.github.com/users/mmower/following{/other_user}","gists_url":"https://api.github.com/users/mmower/gists{/gist_id}","starred_url":"https://api.github.com/users/mmower/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mmower/subscriptions","organizations_url":"https://api.github.com/users/mmower/orgs","repos_url":"https://api.github.com/users/mmower/repos","events_url":"https://api.github.com/users/mmower/events{/privacy}","received_events_url":"https://api.github.com/users/mmower/received_events","type":"User"},"private":false,"html_url":"https://github.com/mmower/simply_versioned","description":"A simple, non-invasive, approach to versioning ActiveRecord models","fork":false,"url":"https://api.github.com/repos/mmower/simply_versioned","forks_url":"https://api.github.com/repos/mmower/simply_versioned/forks","keys_url":"https://api.github.com/repos/mmower/simply_versioned/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mmower/simply_versioned/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mmower/simply_versioned/teams","hooks_url":"https://api.github.com/repos/mmower/simply_versioned/hooks","issue_events_url":"https://api.github.com/repos/mmower/simply_versioned/issues/events{/number}","events_url":"https://api.github.com/repos/mmower/simply_versioned/events","assignees_url":"https://api.github.com/repos/mmower/simply_versioned/assignees{/user}","branches_url":"https://api.github.com/repos/mmower/simply_versioned/branches{/branch}","tags_url":"https://api.github.com/repos/mmower/simply_versioned/tags","blobs_url":"https://api.github.com/repos/mmower/simply_versioned/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mmower/simply_versioned/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mmower/simply_versioned/git/refs{/sha}","trees_url":"https://api.github.com/repos/mmower/simply_versioned/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mmower/simply_versioned/statuses/{sha}","languages_url":"https://api.github.com/repos/mmower/simply_versioned/languages","stargazers_url":"https://api.github.com/repos/mmower/simply_versioned/stargazers","contributors_url":"https://api.github.com/repos/mmower/simply_versioned/contributors","subscribers_url":"https://api.github.com/repos/mmower/simply_versioned/subscribers","subscription_url":"https://api.github.com/repos/mmower/simply_versioned/subscription","commits_url":"https://api.github.com/repos/mmower/simply_versioned/commits{/sha}","git_commits_url":"https://api.github.com/repos/mmower/simply_versioned/git/commits{/sha}","comments_url":"https://api.github.com/repos/mmower/simply_versioned/comments{/number}","issue_comment_url":"https://api.github.com/repos/mmower/simply_versioned/issues/comments/{number}","contents_url":"https://api.github.com/repos/mmower/simply_versioned/contents/{+path}","compare_url":"https://api.github.com/repos/mmower/simply_versioned/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mmower/simply_versioned/merges","archive_url":"https://api.github.com/repos/mmower/simply_versioned/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mmower/simply_versioned/downloads","issues_url":"https://api.github.com/repos/mmower/simply_versioned/issues{/number}","pulls_url":"https://api.github.com/repos/mmower/simply_versioned/pulls{/number}","milestones_url":"https://api.github.com/repos/mmower/simply_versioned/milestones{/number}","notifications_url":"https://api.github.com/repos/mmower/simply_versioned/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mmower/simply_versioned/labels{/name}"},{"id":140,"name":"gchart","full_name":"abhay/gchart","owner":{"login":"abhay","id":75,"avatar_url":"https://1.gravatar.com/avatar/012b62cf82e7956ffe8f47086be831de?d=https%3A%2F%2Fidenticons.github.com%2Fd09bf41544a3365a46c9077ebb5e35c3.png","gravatar_id":"012b62cf82e7956ffe8f47086be831de","url":"https://api.github.com/users/abhay","html_url":"https://github.com/abhay","followers_url":"https://api.github.com/users/abhay/followers","following_url":"https://api.github.com/users/abhay/following{/other_user}","gists_url":"https://api.github.com/users/abhay/gists{/gist_id}","starred_url":"https://api.github.com/users/abhay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhay/subscriptions","organizations_url":"https://api.github.com/users/abhay/orgs","repos_url":"https://api.github.com/users/abhay/repos","events_url":"https://api.github.com/users/abhay/events{/privacy}","received_events_url":"https://api.github.com/users/abhay/received_events","type":"User"},"private":false,"html_url":"https://github.com/abhay/gchart","description":"GChart exposes the Google Chart API (http://code.google.com/apis/chart) via a friendly Ruby interface. It can generate the URL for a given chart (for webpage use), or download the generated PNG (for offline use).","fork":false,"url":"https://api.github.com/repos/abhay/gchart","forks_url":"https://api.github.com/repos/abhay/gchart/forks","keys_url":"https://api.github.com/repos/abhay/gchart/keys{/key_id}","collaborators_url":"https://api.github.com/repos/abhay/gchart/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/abhay/gchart/teams","hooks_url":"https://api.github.com/repos/abhay/gchart/hooks","issue_events_url":"https://api.github.com/repos/abhay/gchart/issues/events{/number}","events_url":"https://api.github.com/repos/abhay/gchart/events","assignees_url":"https://api.github.com/repos/abhay/gchart/assignees{/user}","branches_url":"https://api.github.com/repos/abhay/gchart/branches{/branch}","tags_url":"https://api.github.com/repos/abhay/gchart/tags","blobs_url":"https://api.github.com/repos/abhay/gchart/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/abhay/gchart/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/abhay/gchart/git/refs{/sha}","trees_url":"https://api.github.com/repos/abhay/gchart/git/trees{/sha}","statuses_url":"https://api.github.com/repos/abhay/gchart/statuses/{sha}","languages_url":"https://api.github.com/repos/abhay/gchart/languages","stargazers_url":"https://api.github.com/repos/abhay/gchart/stargazers","contributors_url":"https://api.github.com/repos/abhay/gchart/contributors","subscribers_url":"https://api.github.com/repos/abhay/gchart/subscribers","subscription_url":"https://api.github.com/repos/abhay/gchart/subscription","commits_url":"https://api.github.com/repos/abhay/gchart/commits{/sha}","git_commits_url":"https://api.github.com/repos/abhay/gchart/git/commits{/sha}","comments_url":"https://api.github.com/repos/abhay/gchart/comments{/number}","issue_comment_url":"https://api.github.com/repos/abhay/gchart/issues/comments/{number}","contents_url":"https://api.github.com/repos/abhay/gchart/contents/{+path}","compare_url":"https://api.github.com/repos/abhay/gchart/compare/{base}...{head}","merges_url":"https://api.github.com/repos/abhay/gchart/merges","archive_url":"https://api.github.com/repos/abhay/gchart/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/abhay/gchart/downloads","issues_url":"https://api.github.com/repos/abhay/gchart/issues{/number}","pulls_url":"https://api.github.com/repos/abhay/gchart/pulls{/number}","milestones_url":"https://api.github.com/repos/abhay/gchart/milestones{/number}","notifications_url":"https://api.github.com/repos/abhay/gchart/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/abhay/gchart/labels{/name}"},{"id":141,"name":"schemr","full_name":"benburkert/schemr","owner":{"login":"benburkert","id":77,"avatar_url":"https://0.gravatar.com/avatar/4d1c9dad17af98e55cb65b4efce27c42?d=https%3A%2F%2Fidenticons.github.com%2F28dd2c7955ce926456240b2ff0100bde.png","gravatar_id":"4d1c9dad17af98e55cb65b4efce27c42","url":"https://api.github.com/users/benburkert","html_url":"https://github.com/benburkert","followers_url":"https://api.github.com/users/benburkert/followers","following_url":"https://api.github.com/users/benburkert/following{/other_user}","gists_url":"https://api.github.com/users/benburkert/gists{/gist_id}","starred_url":"https://api.github.com/users/benburkert/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/benburkert/subscriptions","organizations_url":"https://api.github.com/users/benburkert/orgs","repos_url":"https://api.github.com/users/benburkert/repos","events_url":"https://api.github.com/users/benburkert/events{/privacy}","received_events_url":"https://api.github.com/users/benburkert/received_events","type":"User"},"private":false,"html_url":"https://github.com/benburkert/schemr","description":"A DSL for creating schema documents in ruby","fork":false,"url":"https://api.github.com/repos/benburkert/schemr","forks_url":"https://api.github.com/repos/benburkert/schemr/forks","keys_url":"https://api.github.com/repos/benburkert/schemr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/benburkert/schemr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/benburkert/schemr/teams","hooks_url":"https://api.github.com/repos/benburkert/schemr/hooks","issue_events_url":"https://api.github.com/repos/benburkert/schemr/issues/events{/number}","events_url":"https://api.github.com/repos/benburkert/schemr/events","assignees_url":"https://api.github.com/repos/benburkert/schemr/assignees{/user}","branches_url":"https://api.github.com/repos/benburkert/schemr/branches{/branch}","tags_url":"https://api.github.com/repos/benburkert/schemr/tags","blobs_url":"https://api.github.com/repos/benburkert/schemr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/benburkert/schemr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/benburkert/schemr/git/refs{/sha}","trees_url":"https://api.github.com/repos/benburkert/schemr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/benburkert/schemr/statuses/{sha}","languages_url":"https://api.github.com/repos/benburkert/schemr/languages","stargazers_url":"https://api.github.com/repos/benburkert/schemr/stargazers","contributors_url":"https://api.github.com/repos/benburkert/schemr/contributors","subscribers_url":"https://api.github.com/repos/benburkert/schemr/subscribers","subscription_url":"https://api.github.com/repos/benburkert/schemr/subscription","commits_url":"https://api.github.com/repos/benburkert/schemr/commits{/sha}","git_commits_url":"https://api.github.com/repos/benburkert/schemr/git/commits{/sha}","comments_url":"https://api.github.com/repos/benburkert/schemr/comments{/number}","issue_comment_url":"https://api.github.com/repos/benburkert/schemr/issues/comments/{number}","contents_url":"https://api.github.com/repos/benburkert/schemr/contents/{+path}","compare_url":"https://api.github.com/repos/benburkert/schemr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/benburkert/schemr/merges","archive_url":"https://api.github.com/repos/benburkert/schemr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/benburkert/schemr/downloads","issues_url":"https://api.github.com/repos/benburkert/schemr/issues{/number}","pulls_url":"https://api.github.com/repos/benburkert/schemr/pulls{/number}","milestones_url":"https://api.github.com/repos/benburkert/schemr/milestones{/number}","notifications_url":"https://api.github.com/repos/benburkert/schemr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/benburkert/schemr/labels{/name}"},{"id":142,"name":"calais","full_name":"abhay/calais","owner":{"login":"abhay","id":75,"avatar_url":"https://1.gravatar.com/avatar/012b62cf82e7956ffe8f47086be831de?d=https%3A%2F%2Fidenticons.github.com%2Fd09bf41544a3365a46c9077ebb5e35c3.png","gravatar_id":"012b62cf82e7956ffe8f47086be831de","url":"https://api.github.com/users/abhay","html_url":"https://github.com/abhay","followers_url":"https://api.github.com/users/abhay/followers","following_url":"https://api.github.com/users/abhay/following{/other_user}","gists_url":"https://api.github.com/users/abhay/gists{/gist_id}","starred_url":"https://api.github.com/users/abhay/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/abhay/subscriptions","organizations_url":"https://api.github.com/users/abhay/orgs","repos_url":"https://api.github.com/users/abhay/repos","events_url":"https://api.github.com/users/abhay/events{/privacy}","received_events_url":"https://api.github.com/users/abhay/received_events","type":"User"},"private":false,"html_url":"https://github.com/abhay/calais","description":"A Ruby interface to the Open Calais API (http://opencalais.com)","fork":false,"url":"https://api.github.com/repos/abhay/calais","forks_url":"https://api.github.com/repos/abhay/calais/forks","keys_url":"https://api.github.com/repos/abhay/calais/keys{/key_id}","collaborators_url":"https://api.github.com/repos/abhay/calais/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/abhay/calais/teams","hooks_url":"https://api.github.com/repos/abhay/calais/hooks","issue_events_url":"https://api.github.com/repos/abhay/calais/issues/events{/number}","events_url":"https://api.github.com/repos/abhay/calais/events","assignees_url":"https://api.github.com/repos/abhay/calais/assignees{/user}","branches_url":"https://api.github.com/repos/abhay/calais/branches{/branch}","tags_url":"https://api.github.com/repos/abhay/calais/tags","blobs_url":"https://api.github.com/repos/abhay/calais/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/abhay/calais/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/abhay/calais/git/refs{/sha}","trees_url":"https://api.github.com/repos/abhay/calais/git/trees{/sha}","statuses_url":"https://api.github.com/repos/abhay/calais/statuses/{sha}","languages_url":"https://api.github.com/repos/abhay/calais/languages","stargazers_url":"https://api.github.com/repos/abhay/calais/stargazers","contributors_url":"https://api.github.com/repos/abhay/calais/contributors","subscribers_url":"https://api.github.com/repos/abhay/calais/subscribers","subscription_url":"https://api.github.com/repos/abhay/calais/subscription","commits_url":"https://api.github.com/repos/abhay/calais/commits{/sha}","git_commits_url":"https://api.github.com/repos/abhay/calais/git/commits{/sha}","comments_url":"https://api.github.com/repos/abhay/calais/comments{/number}","issue_comment_url":"https://api.github.com/repos/abhay/calais/issues/comments/{number}","contents_url":"https://api.github.com/repos/abhay/calais/contents/{+path}","compare_url":"https://api.github.com/repos/abhay/calais/compare/{base}...{head}","merges_url":"https://api.github.com/repos/abhay/calais/merges","archive_url":"https://api.github.com/repos/abhay/calais/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/abhay/calais/downloads","issues_url":"https://api.github.com/repos/abhay/calais/issues{/number}","pulls_url":"https://api.github.com/repos/abhay/calais/pulls{/number}","milestones_url":"https://api.github.com/repos/abhay/calais/milestones{/number}","notifications_url":"https://api.github.com/repos/abhay/calais/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/abhay/calais/labels{/name}"},{"id":144,"name":"chronic","full_name":"mojombo/chronic","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/chronic","description":"Chronic is a pure Ruby natural language date parser.","fork":false,"url":"https://api.github.com/repos/mojombo/chronic","forks_url":"https://api.github.com/repos/mojombo/chronic/forks","keys_url":"https://api.github.com/repos/mojombo/chronic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/chronic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/chronic/teams","hooks_url":"https://api.github.com/repos/mojombo/chronic/hooks","issue_events_url":"https://api.github.com/repos/mojombo/chronic/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/chronic/events","assignees_url":"https://api.github.com/repos/mojombo/chronic/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/chronic/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/chronic/tags","blobs_url":"https://api.github.com/repos/mojombo/chronic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/chronic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/chronic/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/chronic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/chronic/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/chronic/languages","stargazers_url":"https://api.github.com/repos/mojombo/chronic/stargazers","contributors_url":"https://api.github.com/repos/mojombo/chronic/contributors","subscribers_url":"https://api.github.com/repos/mojombo/chronic/subscribers","subscription_url":"https://api.github.com/repos/mojombo/chronic/subscription","commits_url":"https://api.github.com/repos/mojombo/chronic/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/chronic/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/chronic/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/chronic/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/chronic/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/chronic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/chronic/merges","archive_url":"https://api.github.com/repos/mojombo/chronic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/chronic/downloads","issues_url":"https://api.github.com/repos/mojombo/chronic/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/chronic/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/chronic/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/chronic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/chronic/labels{/name}"},{"id":165,"name":"git-wiki","full_name":"sr/git-wiki","owner":{"login":"sr","id":90,"avatar_url":"https://1.gravatar.com/avatar/8e0adf6f8274375b90a180d256d73bad?d=https%3A%2F%2Fidenticons.github.com%2F8613985ec49eb8f757ae6439e879bb2a.png","gravatar_id":"8e0adf6f8274375b90a180d256d73bad","url":"https://api.github.com/users/sr","html_url":"https://github.com/sr","followers_url":"https://api.github.com/users/sr/followers","following_url":"https://api.github.com/users/sr/following{/other_user}","gists_url":"https://api.github.com/users/sr/gists{/gist_id}","starred_url":"https://api.github.com/users/sr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr/subscriptions","organizations_url":"https://api.github.com/users/sr/orgs","repos_url":"https://api.github.com/users/sr/repos","events_url":"https://api.github.com/users/sr/events{/privacy}","received_events_url":"https://api.github.com/users/sr/received_events","type":"User"},"private":false,"html_url":"https://github.com/sr/git-wiki","description":"A quick & dirty git-powered Sinatra wiki","fork":false,"url":"https://api.github.com/repos/sr/git-wiki","forks_url":"https://api.github.com/repos/sr/git-wiki/forks","keys_url":"https://api.github.com/repos/sr/git-wiki/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sr/git-wiki/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sr/git-wiki/teams","hooks_url":"https://api.github.com/repos/sr/git-wiki/hooks","issue_events_url":"https://api.github.com/repos/sr/git-wiki/issues/events{/number}","events_url":"https://api.github.com/repos/sr/git-wiki/events","assignees_url":"https://api.github.com/repos/sr/git-wiki/assignees{/user}","branches_url":"https://api.github.com/repos/sr/git-wiki/branches{/branch}","tags_url":"https://api.github.com/repos/sr/git-wiki/tags","blobs_url":"https://api.github.com/repos/sr/git-wiki/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sr/git-wiki/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sr/git-wiki/git/refs{/sha}","trees_url":"https://api.github.com/repos/sr/git-wiki/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sr/git-wiki/statuses/{sha}","languages_url":"https://api.github.com/repos/sr/git-wiki/languages","stargazers_url":"https://api.github.com/repos/sr/git-wiki/stargazers","contributors_url":"https://api.github.com/repos/sr/git-wiki/contributors","subscribers_url":"https://api.github.com/repos/sr/git-wiki/subscribers","subscription_url":"https://api.github.com/repos/sr/git-wiki/subscription","commits_url":"https://api.github.com/repos/sr/git-wiki/commits{/sha}","git_commits_url":"https://api.github.com/repos/sr/git-wiki/git/commits{/sha}","comments_url":"https://api.github.com/repos/sr/git-wiki/comments{/number}","issue_comment_url":"https://api.github.com/repos/sr/git-wiki/issues/comments/{number}","contents_url":"https://api.github.com/repos/sr/git-wiki/contents/{+path}","compare_url":"https://api.github.com/repos/sr/git-wiki/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sr/git-wiki/merges","archive_url":"https://api.github.com/repos/sr/git-wiki/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sr/git-wiki/downloads","issues_url":"https://api.github.com/repos/sr/git-wiki/issues{/number}","pulls_url":"https://api.github.com/repos/sr/git-wiki/pulls{/number}","milestones_url":"https://api.github.com/repos/sr/git-wiki/milestones{/number}","notifications_url":"https://api.github.com/repos/sr/git-wiki/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sr/git-wiki/labels{/name}"},{"id":176,"name":"ambitious_activeldap","full_name":"automatthew/ambitious_activeldap","owner":{"login":"automatthew","id":105,"avatar_url":"https://2.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?d=https%3A%2F%2Fidenticons.github.com%2F65b9eea6e1cc6bb9f0cd2a47751a186f.png","gravatar_id":"491d5a2b6e9c9346e2d67da31a633457","url":"https://api.github.com/users/automatthew","html_url":"https://github.com/automatthew","followers_url":"https://api.github.com/users/automatthew/followers","following_url":"https://api.github.com/users/automatthew/following{/other_user}","gists_url":"https://api.github.com/users/automatthew/gists{/gist_id}","starred_url":"https://api.github.com/users/automatthew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/automatthew/subscriptions","organizations_url":"https://api.github.com/users/automatthew/orgs","repos_url":"https://api.github.com/users/automatthew/repos","events_url":"https://api.github.com/users/automatthew/events{/privacy}","received_events_url":"https://api.github.com/users/automatthew/received_events","type":"User"},"private":false,"html_url":"https://github.com/automatthew/ambitious_activeldap","description":"Ambition adapter for ActiveLdap","fork":false,"url":"https://api.github.com/repos/automatthew/ambitious_activeldap","forks_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/forks","keys_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/teams","hooks_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/hooks","issue_events_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/issues/events{/number}","events_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/events","assignees_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/assignees{/user}","branches_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/branches{/branch}","tags_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/tags","blobs_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/refs{/sha}","trees_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/statuses/{sha}","languages_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/languages","stargazers_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/stargazers","contributors_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/contributors","subscribers_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/subscribers","subscription_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/subscription","commits_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/commits{/sha}","git_commits_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/git/commits{/sha}","comments_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/comments{/number}","issue_comment_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/issues/comments/{number}","contents_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/contents/{+path}","compare_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/merges","archive_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/downloads","issues_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/issues{/number}","pulls_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/pulls{/number}","milestones_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/milestones{/number}","notifications_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/automatthew/ambitious_activeldap/labels{/name}"},{"id":177,"name":"signal-wiki","full_name":"queso/signal-wiki","owner":{"login":"queso","id":106,"avatar_url":"https://2.gravatar.com/avatar/089ddf30c09022b92363dd0d8ce2bdfd?d=https%3A%2F%2Fidenticons.github.com%2Ff0935e4cd5920aa6c7c996a5ee53a70f.png","gravatar_id":"089ddf30c09022b92363dd0d8ce2bdfd","url":"https://api.github.com/users/queso","html_url":"https://github.com/queso","followers_url":"https://api.github.com/users/queso/followers","following_url":"https://api.github.com/users/queso/following{/other_user}","gists_url":"https://api.github.com/users/queso/gists{/gist_id}","starred_url":"https://api.github.com/users/queso/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/queso/subscriptions","organizations_url":"https://api.github.com/users/queso/orgs","repos_url":"https://api.github.com/users/queso/repos","events_url":"https://api.github.com/users/queso/events{/privacy}","received_events_url":"https://api.github.com/users/queso/received_events","type":"User"},"private":false,"html_url":"https://github.com/queso/signal-wiki","description":"The easy to use rails wiki","fork":false,"url":"https://api.github.com/repos/queso/signal-wiki","forks_url":"https://api.github.com/repos/queso/signal-wiki/forks","keys_url":"https://api.github.com/repos/queso/signal-wiki/keys{/key_id}","collaborators_url":"https://api.github.com/repos/queso/signal-wiki/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/queso/signal-wiki/teams","hooks_url":"https://api.github.com/repos/queso/signal-wiki/hooks","issue_events_url":"https://api.github.com/repos/queso/signal-wiki/issues/events{/number}","events_url":"https://api.github.com/repos/queso/signal-wiki/events","assignees_url":"https://api.github.com/repos/queso/signal-wiki/assignees{/user}","branches_url":"https://api.github.com/repos/queso/signal-wiki/branches{/branch}","tags_url":"https://api.github.com/repos/queso/signal-wiki/tags","blobs_url":"https://api.github.com/repos/queso/signal-wiki/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/queso/signal-wiki/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/queso/signal-wiki/git/refs{/sha}","trees_url":"https://api.github.com/repos/queso/signal-wiki/git/trees{/sha}","statuses_url":"https://api.github.com/repos/queso/signal-wiki/statuses/{sha}","languages_url":"https://api.github.com/repos/queso/signal-wiki/languages","stargazers_url":"https://api.github.com/repos/queso/signal-wiki/stargazers","contributors_url":"https://api.github.com/repos/queso/signal-wiki/contributors","subscribers_url":"https://api.github.com/repos/queso/signal-wiki/subscribers","subscription_url":"https://api.github.com/repos/queso/signal-wiki/subscription","commits_url":"https://api.github.com/repos/queso/signal-wiki/commits{/sha}","git_commits_url":"https://api.github.com/repos/queso/signal-wiki/git/commits{/sha}","comments_url":"https://api.github.com/repos/queso/signal-wiki/comments{/number}","issue_comment_url":"https://api.github.com/repos/queso/signal-wiki/issues/comments/{number}","contents_url":"https://api.github.com/repos/queso/signal-wiki/contents/{+path}","compare_url":"https://api.github.com/repos/queso/signal-wiki/compare/{base}...{head}","merges_url":"https://api.github.com/repos/queso/signal-wiki/merges","archive_url":"https://api.github.com/repos/queso/signal-wiki/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/queso/signal-wiki/downloads","issues_url":"https://api.github.com/repos/queso/signal-wiki/issues{/number}","pulls_url":"https://api.github.com/repos/queso/signal-wiki/pulls{/number}","milestones_url":"https://api.github.com/repos/queso/signal-wiki/milestones{/number}","notifications_url":"https://api.github.com/repos/queso/signal-wiki/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/queso/signal-wiki/labels{/name}"},{"id":179,"name":"ruby-on-rails-tmbundle","full_name":"drnic/ruby-on-rails-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://2.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/ruby-on-rails-tmbundle","description":"Ruby on Rails TextMate bundle [Learn it with PeepCode - http://peepcode.com/products/textmate-for-rails-2]","fork":false,"url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle","forks_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/ruby-on-rails-tmbundle/labels{/name}"},{"id":185,"name":"low-pro-for-jquery","full_name":"danwrong/low-pro-for-jquery","owner":{"login":"danwrong","id":110,"avatar_url":"https://1.gravatar.com/avatar/0727907ae68db2e8ebc1ea1b01f00d69?d=https%3A%2F%2Fidenticons.github.com%2F5f93f983524def3dca464469d2cf9f3e.png","gravatar_id":"0727907ae68db2e8ebc1ea1b01f00d69","url":"https://api.github.com/users/danwrong","html_url":"https://github.com/danwrong","followers_url":"https://api.github.com/users/danwrong/followers","following_url":"https://api.github.com/users/danwrong/following{/other_user}","gists_url":"https://api.github.com/users/danwrong/gists{/gist_id}","starred_url":"https://api.github.com/users/danwrong/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/danwrong/subscriptions","organizations_url":"https://api.github.com/users/danwrong/orgs","repos_url":"https://api.github.com/users/danwrong/repos","events_url":"https://api.github.com/users/danwrong/events{/privacy}","received_events_url":"https://api.github.com/users/danwrong/received_events","type":"User"},"private":false,"html_url":"https://github.com/danwrong/low-pro-for-jquery","description":"A jQuery plugin version of the Low Pro behavior framework.","fork":false,"url":"https://api.github.com/repos/danwrong/low-pro-for-jquery","forks_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/forks","keys_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/keys{/key_id}","collaborators_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/teams","hooks_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/hooks","issue_events_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/issues/events{/number}","events_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/events","assignees_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/assignees{/user}","branches_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/branches{/branch}","tags_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/tags","blobs_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/refs{/sha}","trees_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/trees{/sha}","statuses_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/statuses/{sha}","languages_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/languages","stargazers_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/stargazers","contributors_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/contributors","subscribers_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/subscribers","subscription_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/subscription","commits_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/commits{/sha}","git_commits_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/git/commits{/sha}","comments_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/comments{/number}","issue_comment_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/issues/comments/{number}","contents_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/contents/{+path}","compare_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/compare/{base}...{head}","merges_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/merges","archive_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/downloads","issues_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/issues{/number}","pulls_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/pulls{/number}","milestones_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/milestones{/number}","notifications_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/danwrong/low-pro-for-jquery/labels{/name}"},{"id":186,"name":"merb-core","full_name":"wayneeseguin/merb-core","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/merb-core","description":"Merb Core: All you need. None you don't.","fork":true,"url":"https://api.github.com/repos/wayneeseguin/merb-core","forks_url":"https://api.github.com/repos/wayneeseguin/merb-core/forks","keys_url":"https://api.github.com/repos/wayneeseguin/merb-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/merb-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/merb-core/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/merb-core/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/merb-core/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/merb-core/events","assignees_url":"https://api.github.com/repos/wayneeseguin/merb-core/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/merb-core/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/merb-core/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/merb-core/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/merb-core/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/merb-core/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/merb-core/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/merb-core/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/merb-core/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/merb-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/merb-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/merb-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/merb-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/merb-core/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/merb-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/merb-core/merges","archive_url":"https://api.github.com/repos/wayneeseguin/merb-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/merb-core/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/merb-core/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/merb-core/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/merb-core/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/merb-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/merb-core/labels{/name}"},{"id":190,"name":"dst","full_name":"sr/dst","owner":{"login":"sr","id":90,"avatar_url":"https://1.gravatar.com/avatar/8e0adf6f8274375b90a180d256d73bad?d=https%3A%2F%2Fidenticons.github.com%2F8613985ec49eb8f757ae6439e879bb2a.png","gravatar_id":"8e0adf6f8274375b90a180d256d73bad","url":"https://api.github.com/users/sr","html_url":"https://github.com/sr","followers_url":"https://api.github.com/users/sr/followers","following_url":"https://api.github.com/users/sr/following{/other_user}","gists_url":"https://api.github.com/users/sr/gists{/gist_id}","starred_url":"https://api.github.com/users/sr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr/subscriptions","organizations_url":"https://api.github.com/users/sr/orgs","repos_url":"https://api.github.com/users/sr/repos","events_url":"https://api.github.com/users/sr/events{/privacy}","received_events_url":"https://api.github.com/users/sr/received_events","type":"User"},"private":false,"html_url":"https://github.com/sr/dst","description":"todo-list manager I wrote back in 2008 with the help of Gregory Brown in order to learn Ruby and TDD","fork":false,"url":"https://api.github.com/repos/sr/dst","forks_url":"https://api.github.com/repos/sr/dst/forks","keys_url":"https://api.github.com/repos/sr/dst/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sr/dst/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sr/dst/teams","hooks_url":"https://api.github.com/repos/sr/dst/hooks","issue_events_url":"https://api.github.com/repos/sr/dst/issues/events{/number}","events_url":"https://api.github.com/repos/sr/dst/events","assignees_url":"https://api.github.com/repos/sr/dst/assignees{/user}","branches_url":"https://api.github.com/repos/sr/dst/branches{/branch}","tags_url":"https://api.github.com/repos/sr/dst/tags","blobs_url":"https://api.github.com/repos/sr/dst/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sr/dst/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sr/dst/git/refs{/sha}","trees_url":"https://api.github.com/repos/sr/dst/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sr/dst/statuses/{sha}","languages_url":"https://api.github.com/repos/sr/dst/languages","stargazers_url":"https://api.github.com/repos/sr/dst/stargazers","contributors_url":"https://api.github.com/repos/sr/dst/contributors","subscribers_url":"https://api.github.com/repos/sr/dst/subscribers","subscription_url":"https://api.github.com/repos/sr/dst/subscription","commits_url":"https://api.github.com/repos/sr/dst/commits{/sha}","git_commits_url":"https://api.github.com/repos/sr/dst/git/commits{/sha}","comments_url":"https://api.github.com/repos/sr/dst/comments{/number}","issue_comment_url":"https://api.github.com/repos/sr/dst/issues/comments/{number}","contents_url":"https://api.github.com/repos/sr/dst/contents/{+path}","compare_url":"https://api.github.com/repos/sr/dst/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sr/dst/merges","archive_url":"https://api.github.com/repos/sr/dst/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sr/dst/downloads","issues_url":"https://api.github.com/repos/sr/dst/issues{/number}","pulls_url":"https://api.github.com/repos/sr/dst/pulls{/number}","milestones_url":"https://api.github.com/repos/sr/dst/milestones{/number}","notifications_url":"https://api.github.com/repos/sr/dst/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sr/dst/labels{/name}"},{"id":191,"name":"yaws","full_name":"mojombo/yaws","owner":{"login":"mojombo","id":1,"avatar_url":"https://1.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/yaws","description":"YAWS is an erlang web server","fork":false,"url":"https://api.github.com/repos/mojombo/yaws","forks_url":"https://api.github.com/repos/mojombo/yaws/forks","keys_url":"https://api.github.com/repos/mojombo/yaws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/yaws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/yaws/teams","hooks_url":"https://api.github.com/repos/mojombo/yaws/hooks","issue_events_url":"https://api.github.com/repos/mojombo/yaws/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/yaws/events","assignees_url":"https://api.github.com/repos/mojombo/yaws/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/yaws/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/yaws/tags","blobs_url":"https://api.github.com/repos/mojombo/yaws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/yaws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/yaws/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/yaws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/yaws/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/yaws/languages","stargazers_url":"https://api.github.com/repos/mojombo/yaws/stargazers","contributors_url":"https://api.github.com/repos/mojombo/yaws/contributors","subscribers_url":"https://api.github.com/repos/mojombo/yaws/subscribers","subscription_url":"https://api.github.com/repos/mojombo/yaws/subscription","commits_url":"https://api.github.com/repos/mojombo/yaws/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/yaws/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/yaws/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/yaws/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/yaws/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/yaws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/yaws/merges","archive_url":"https://api.github.com/repos/mojombo/yaws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/yaws/downloads","issues_url":"https://api.github.com/repos/mojombo/yaws/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/yaws/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/yaws/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/yaws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/yaws/labels{/name}"},{"id":192,"name":"yaws","full_name":"KirinDave/yaws","owner":{"login":"KirinDave","id":36,"avatar_url":"https://2.gravatar.com/avatar/d4fabd6c08ac228a3ff846d9d0d1580e?d=https%3A%2F%2Fidenticons.github.com%2F19ca14e7ea6328a42e0eb13d585e4c22.png","gravatar_id":"d4fabd6c08ac228a3ff846d9d0d1580e","url":"https://api.github.com/users/KirinDave","html_url":"https://github.com/KirinDave","followers_url":"https://api.github.com/users/KirinDave/followers","following_url":"https://api.github.com/users/KirinDave/following{/other_user}","gists_url":"https://api.github.com/users/KirinDave/gists{/gist_id}","starred_url":"https://api.github.com/users/KirinDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KirinDave/subscriptions","organizations_url":"https://api.github.com/users/KirinDave/orgs","repos_url":"https://api.github.com/users/KirinDave/repos","events_url":"https://api.github.com/users/KirinDave/events{/privacy}","received_events_url":"https://api.github.com/users/KirinDave/received_events","type":"User"},"private":false,"html_url":"https://github.com/KirinDave/yaws","description":"YAWS is an erlang web server","fork":true,"url":"https://api.github.com/repos/KirinDave/yaws","forks_url":"https://api.github.com/repos/KirinDave/yaws/forks","keys_url":"https://api.github.com/repos/KirinDave/yaws/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KirinDave/yaws/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KirinDave/yaws/teams","hooks_url":"https://api.github.com/repos/KirinDave/yaws/hooks","issue_events_url":"https://api.github.com/repos/KirinDave/yaws/issues/events{/number}","events_url":"https://api.github.com/repos/KirinDave/yaws/events","assignees_url":"https://api.github.com/repos/KirinDave/yaws/assignees{/user}","branches_url":"https://api.github.com/repos/KirinDave/yaws/branches{/branch}","tags_url":"https://api.github.com/repos/KirinDave/yaws/tags","blobs_url":"https://api.github.com/repos/KirinDave/yaws/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KirinDave/yaws/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KirinDave/yaws/git/refs{/sha}","trees_url":"https://api.github.com/repos/KirinDave/yaws/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KirinDave/yaws/statuses/{sha}","languages_url":"https://api.github.com/repos/KirinDave/yaws/languages","stargazers_url":"https://api.github.com/repos/KirinDave/yaws/stargazers","contributors_url":"https://api.github.com/repos/KirinDave/yaws/contributors","subscribers_url":"https://api.github.com/repos/KirinDave/yaws/subscribers","subscription_url":"https://api.github.com/repos/KirinDave/yaws/subscription","commits_url":"https://api.github.com/repos/KirinDave/yaws/commits{/sha}","git_commits_url":"https://api.github.com/repos/KirinDave/yaws/git/commits{/sha}","comments_url":"https://api.github.com/repos/KirinDave/yaws/comments{/number}","issue_comment_url":"https://api.github.com/repos/KirinDave/yaws/issues/comments/{number}","contents_url":"https://api.github.com/repos/KirinDave/yaws/contents/{+path}","compare_url":"https://api.github.com/repos/KirinDave/yaws/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KirinDave/yaws/merges","archive_url":"https://api.github.com/repos/KirinDave/yaws/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KirinDave/yaws/downloads","issues_url":"https://api.github.com/repos/KirinDave/yaws/issues{/number}","pulls_url":"https://api.github.com/repos/KirinDave/yaws/pulls{/number}","milestones_url":"https://api.github.com/repos/KirinDave/yaws/milestones{/number}","notifications_url":"https://api.github.com/repos/KirinDave/yaws/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KirinDave/yaws/labels{/name}"},{"id":193,"name":"tasks","full_name":"sr/tasks","owner":{"login":"sr","id":90,"avatar_url":"https://1.gravatar.com/avatar/8e0adf6f8274375b90a180d256d73bad?d=https%3A%2F%2Fidenticons.github.com%2F8613985ec49eb8f757ae6439e879bb2a.png","gravatar_id":"8e0adf6f8274375b90a180d256d73bad","url":"https://api.github.com/users/sr","html_url":"https://github.com/sr","followers_url":"https://api.github.com/users/sr/followers","following_url":"https://api.github.com/users/sr/following{/other_user}","gists_url":"https://api.github.com/users/sr/gists{/gist_id}","starred_url":"https://api.github.com/users/sr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr/subscriptions","organizations_url":"https://api.github.com/users/sr/orgs","repos_url":"https://api.github.com/users/sr/repos","events_url":"https://api.github.com/users/sr/events{/privacy}","received_events_url":"https://api.github.com/users/sr/received_events","type":"User"},"private":false,"html_url":"https://github.com/sr/tasks","description":"Some more or less useful rake tasks. Includes tasks to work with git-cvs, convert an Atom collection to a blog, post to an AtomPub server and more.","fork":false,"url":"https://api.github.com/repos/sr/tasks","forks_url":"https://api.github.com/repos/sr/tasks/forks","keys_url":"https://api.github.com/repos/sr/tasks/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sr/tasks/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sr/tasks/teams","hooks_url":"https://api.github.com/repos/sr/tasks/hooks","issue_events_url":"https://api.github.com/repos/sr/tasks/issues/events{/number}","events_url":"https://api.github.com/repos/sr/tasks/events","assignees_url":"https://api.github.com/repos/sr/tasks/assignees{/user}","branches_url":"https://api.github.com/repos/sr/tasks/branches{/branch}","tags_url":"https://api.github.com/repos/sr/tasks/tags","blobs_url":"https://api.github.com/repos/sr/tasks/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sr/tasks/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sr/tasks/git/refs{/sha}","trees_url":"https://api.github.com/repos/sr/tasks/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sr/tasks/statuses/{sha}","languages_url":"https://api.github.com/repos/sr/tasks/languages","stargazers_url":"https://api.github.com/repos/sr/tasks/stargazers","contributors_url":"https://api.github.com/repos/sr/tasks/contributors","subscribers_url":"https://api.github.com/repos/sr/tasks/subscribers","subscription_url":"https://api.github.com/repos/sr/tasks/subscription","commits_url":"https://api.github.com/repos/sr/tasks/commits{/sha}","git_commits_url":"https://api.github.com/repos/sr/tasks/git/commits{/sha}","comments_url":"https://api.github.com/repos/sr/tasks/comments{/number}","issue_comment_url":"https://api.github.com/repos/sr/tasks/issues/comments/{number}","contents_url":"https://api.github.com/repos/sr/tasks/contents/{+path}","compare_url":"https://api.github.com/repos/sr/tasks/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sr/tasks/merges","archive_url":"https://api.github.com/repos/sr/tasks/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sr/tasks/downloads","issues_url":"https://api.github.com/repos/sr/tasks/issues{/number}","pulls_url":"https://api.github.com/repos/sr/tasks/pulls{/number}","milestones_url":"https://api.github.com/repos/sr/tasks/milestones{/number}","notifications_url":"https://api.github.com/repos/sr/tasks/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sr/tasks/labels{/name}"},{"id":195,"name":"ruby-on-rails-tmbundle","full_name":"mattetti/ruby-on-rails-tmbundle","owner":{"login":"mattetti","id":113,"avatar_url":"https://1.gravatar.com/avatar/c69521d6e22fc0bbd69337ec8b1698df?d=https%3A%2F%2Fidenticons.github.com%2F73278a4a86960eeb576a8fd4c9ec6997.png","gravatar_id":"c69521d6e22fc0bbd69337ec8b1698df","url":"https://api.github.com/users/mattetti","html_url":"https://github.com/mattetti","followers_url":"https://api.github.com/users/mattetti/followers","following_url":"https://api.github.com/users/mattetti/following{/other_user}","gists_url":"https://api.github.com/users/mattetti/gists{/gist_id}","starred_url":"https://api.github.com/users/mattetti/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mattetti/subscriptions","organizations_url":"https://api.github.com/users/mattetti/orgs","repos_url":"https://api.github.com/users/mattetti/repos","events_url":"https://api.github.com/users/mattetti/events{/privacy}","received_events_url":"https://api.github.com/users/mattetti/received_events","type":"User"},"private":false,"html_url":"https://github.com/mattetti/ruby-on-rails-tmbundle","description":"Ruby on Rails TextMate bundle [master branch is svn trunk; patches to drnicwilliams@gmail.com]","fork":true,"url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle","forks_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/forks","keys_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/teams","hooks_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/events","assignees_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/tags","blobs_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/languages","stargazers_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/subscription","commits_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/merges","archive_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/downloads","issues_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mattetti/ruby-on-rails-tmbundle/labels{/name}"},{"id":196,"name":"ruby-on-rails-tmbundle","full_name":"lawrencepit/ruby-on-rails-tmbundle","owner":{"login":"lawrencepit","id":115,"avatar_url":"https://1.gravatar.com/avatar/a31c2c26350e9e2b07fbd99fbd5ff520?d=https%3A%2F%2Fidenticons.github.com%2F2b44928ae11fb9384c4cf38708677c48.png","gravatar_id":"a31c2c26350e9e2b07fbd99fbd5ff520","url":"https://api.github.com/users/lawrencepit","html_url":"https://github.com/lawrencepit","followers_url":"https://api.github.com/users/lawrencepit/followers","following_url":"https://api.github.com/users/lawrencepit/following{/other_user}","gists_url":"https://api.github.com/users/lawrencepit/gists{/gist_id}","starred_url":"https://api.github.com/users/lawrencepit/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lawrencepit/subscriptions","organizations_url":"https://api.github.com/users/lawrencepit/orgs","repos_url":"https://api.github.com/users/lawrencepit/repos","events_url":"https://api.github.com/users/lawrencepit/events{/privacy}","received_events_url":"https://api.github.com/users/lawrencepit/received_events","type":"User"},"private":false,"html_url":"https://github.com/lawrencepit/ruby-on-rails-tmbundle","description":"Ruby on Rails TextMate bundle [master branch is svn trunk; patches to drnicwilliams@gmail.com]","fork":true,"url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle","forks_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/forks","keys_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/teams","hooks_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/events","assignees_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/tags","blobs_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/languages","stargazers_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/subscription","commits_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/merges","archive_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/downloads","issues_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lawrencepit/ruby-on-rails-tmbundle/labels{/name}"},{"id":199,"name":"amazon-ec2","full_name":"grempe/amazon-ec2","owner":{"login":"grempe","id":117,"avatar_url":"https://2.gravatar.com/avatar/126e4e797131e8bf3adc528c6a4d78ec?d=https%3A%2F%2Fidenticons.github.com%2Feb160de1de89d9058fcb0b968dbbbd68.png","gravatar_id":"126e4e797131e8bf3adc528c6a4d78ec","url":"https://api.github.com/users/grempe","html_url":"https://github.com/grempe","followers_url":"https://api.github.com/users/grempe/followers","following_url":"https://api.github.com/users/grempe/following{/other_user}","gists_url":"https://api.github.com/users/grempe/gists{/gist_id}","starred_url":"https://api.github.com/users/grempe/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grempe/subscriptions","organizations_url":"https://api.github.com/users/grempe/orgs","repos_url":"https://api.github.com/users/grempe/repos","events_url":"https://api.github.com/users/grempe/events{/privacy}","received_events_url":"https://api.github.com/users/grempe/received_events","type":"User"},"private":false,"html_url":"https://github.com/grempe/amazon-ec2","description":"A Ruby Gem that gives you full access to several of the Amazon Web Services API from your Ruby/Ruby on Rails apps","fork":false,"url":"https://api.github.com/repos/grempe/amazon-ec2","forks_url":"https://api.github.com/repos/grempe/amazon-ec2/forks","keys_url":"https://api.github.com/repos/grempe/amazon-ec2/keys{/key_id}","collaborators_url":"https://api.github.com/repos/grempe/amazon-ec2/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/grempe/amazon-ec2/teams","hooks_url":"https://api.github.com/repos/grempe/amazon-ec2/hooks","issue_events_url":"https://api.github.com/repos/grempe/amazon-ec2/issues/events{/number}","events_url":"https://api.github.com/repos/grempe/amazon-ec2/events","assignees_url":"https://api.github.com/repos/grempe/amazon-ec2/assignees{/user}","branches_url":"https://api.github.com/repos/grempe/amazon-ec2/branches{/branch}","tags_url":"https://api.github.com/repos/grempe/amazon-ec2/tags","blobs_url":"https://api.github.com/repos/grempe/amazon-ec2/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/grempe/amazon-ec2/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/grempe/amazon-ec2/git/refs{/sha}","trees_url":"https://api.github.com/repos/grempe/amazon-ec2/git/trees{/sha}","statuses_url":"https://api.github.com/repos/grempe/amazon-ec2/statuses/{sha}","languages_url":"https://api.github.com/repos/grempe/amazon-ec2/languages","stargazers_url":"https://api.github.com/repos/grempe/amazon-ec2/stargazers","contributors_url":"https://api.github.com/repos/grempe/amazon-ec2/contributors","subscribers_url":"https://api.github.com/repos/grempe/amazon-ec2/subscribers","subscription_url":"https://api.github.com/repos/grempe/amazon-ec2/subscription","commits_url":"https://api.github.com/repos/grempe/amazon-ec2/commits{/sha}","git_commits_url":"https://api.github.com/repos/grempe/amazon-ec2/git/commits{/sha}","comments_url":"https://api.github.com/repos/grempe/amazon-ec2/comments{/number}","issue_comment_url":"https://api.github.com/repos/grempe/amazon-ec2/issues/comments/{number}","contents_url":"https://api.github.com/repos/grempe/amazon-ec2/contents/{+path}","compare_url":"https://api.github.com/repos/grempe/amazon-ec2/compare/{base}...{head}","merges_url":"https://api.github.com/repos/grempe/amazon-ec2/merges","archive_url":"https://api.github.com/repos/grempe/amazon-ec2/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/grempe/amazon-ec2/downloads","issues_url":"https://api.github.com/repos/grempe/amazon-ec2/issues{/number}","pulls_url":"https://api.github.com/repos/grempe/amazon-ec2/pulls{/number}","milestones_url":"https://api.github.com/repos/grempe/amazon-ec2/milestones{/number}","notifications_url":"https://api.github.com/repos/grempe/amazon-ec2/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/grempe/amazon-ec2/labels{/name}"},{"id":203,"name":"merblogger","full_name":"wayneeseguin/merblogger","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/merblogger","description":"A Merb Blogging & Publishing Platform using Merb, DataMapper, haml and jQuery.","fork":false,"url":"https://api.github.com/repos/wayneeseguin/merblogger","forks_url":"https://api.github.com/repos/wayneeseguin/merblogger/forks","keys_url":"https://api.github.com/repos/wayneeseguin/merblogger/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/merblogger/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/merblogger/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/merblogger/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/merblogger/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/merblogger/events","assignees_url":"https://api.github.com/repos/wayneeseguin/merblogger/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/merblogger/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/merblogger/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/merblogger/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/merblogger/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/merblogger/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/merblogger/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/merblogger/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/merblogger/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/merblogger/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/merblogger/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/merblogger/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/merblogger/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/merblogger/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/merblogger/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/merblogger/merges","archive_url":"https://api.github.com/repos/wayneeseguin/merblogger/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/merblogger/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/merblogger/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/merblogger/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/merblogger/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/merblogger/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/merblogger/labels{/name}"},{"id":204,"name":"merbtastic","full_name":"wayneeseguin/merbtastic","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/merbtastic","description":"Merb + Webgen CMS system that has dynamic routing, Nginx config and static site generation with haml/sass/erb/... support.","fork":false,"url":"https://api.github.com/repos/wayneeseguin/merbtastic","forks_url":"https://api.github.com/repos/wayneeseguin/merbtastic/forks","keys_url":"https://api.github.com/repos/wayneeseguin/merbtastic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/merbtastic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/merbtastic/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/merbtastic/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/merbtastic/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/merbtastic/events","assignees_url":"https://api.github.com/repos/wayneeseguin/merbtastic/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/merbtastic/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/merbtastic/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/merbtastic/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/merbtastic/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/merbtastic/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/merbtastic/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/merbtastic/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/merbtastic/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/merbtastic/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/merbtastic/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/merbtastic/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/merbtastic/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/merbtastic/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/merbtastic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/merbtastic/merges","archive_url":"https://api.github.com/repos/wayneeseguin/merbtastic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/merbtastic/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/merbtastic/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/merbtastic/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/merbtastic/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/merbtastic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/merbtastic/labels{/name}"},{"id":205,"name":"alogr","full_name":"wayneeseguin/alogr","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/alogr","description":"AlogR is a threadsafe non-blocking asynchronous configurable logger for Ruby.","fork":false,"url":"https://api.github.com/repos/wayneeseguin/alogr","forks_url":"https://api.github.com/repos/wayneeseguin/alogr/forks","keys_url":"https://api.github.com/repos/wayneeseguin/alogr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/alogr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/alogr/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/alogr/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/alogr/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/alogr/events","assignees_url":"https://api.github.com/repos/wayneeseguin/alogr/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/alogr/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/alogr/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/alogr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/alogr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/alogr/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/alogr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/alogr/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/alogr/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/alogr/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/alogr/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/alogr/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/alogr/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/alogr/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/alogr/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/alogr/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/alogr/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/alogr/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/alogr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/alogr/merges","archive_url":"https://api.github.com/repos/wayneeseguin/alogr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/alogr/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/alogr/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/alogr/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/alogr/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/alogr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/alogr/labels{/name}"},{"id":206,"name":"autozest","full_name":"wayneeseguin/autozest","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/autozest","description":"AutoZest is an autotest addon that: * automated growl installation * generation of .autotest with growl & autozest config * generation of .autozest.yml config file * autozest.sqlite3 database file for pulling random messages based on severity","fork":false,"url":"https://api.github.com/repos/wayneeseguin/autozest","forks_url":"https://api.github.com/repos/wayneeseguin/autozest/forks","keys_url":"https://api.github.com/repos/wayneeseguin/autozest/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/autozest/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/autozest/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/autozest/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/autozest/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/autozest/events","assignees_url":"https://api.github.com/repos/wayneeseguin/autozest/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/autozest/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/autozest/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/autozest/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/autozest/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/autozest/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/autozest/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/autozest/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/autozest/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/autozest/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/autozest/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/autozest/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/autozest/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/autozest/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/autozest/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/autozest/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/autozest/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/autozest/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/autozest/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/autozest/merges","archive_url":"https://api.github.com/repos/wayneeseguin/autozest/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/autozest/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/autozest/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/autozest/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/autozest/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/autozest/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/autozest/labels{/name}"},{"id":207,"name":"rnginx","full_name":"wayneeseguin/rnginx","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/rnginx","description":"Command line utility and library for working with Nginx configuration scripts.","fork":false,"url":"https://api.github.com/repos/wayneeseguin/rnginx","forks_url":"https://api.github.com/repos/wayneeseguin/rnginx/forks","keys_url":"https://api.github.com/repos/wayneeseguin/rnginx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/rnginx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/rnginx/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/rnginx/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/rnginx/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/rnginx/events","assignees_url":"https://api.github.com/repos/wayneeseguin/rnginx/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/rnginx/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/rnginx/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/rnginx/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/rnginx/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/rnginx/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/rnginx/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/rnginx/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/rnginx/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/rnginx/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/rnginx/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/rnginx/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/rnginx/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/rnginx/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/rnginx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/rnginx/merges","archive_url":"https://api.github.com/repos/wayneeseguin/rnginx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/rnginx/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/rnginx/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/rnginx/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/rnginx/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/rnginx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/rnginx/labels{/name}"},{"id":208,"name":"sequel","full_name":"wayneeseguin/sequel","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/sequel","description":"Sequel ORM","fork":false,"url":"https://api.github.com/repos/wayneeseguin/sequel","forks_url":"https://api.github.com/repos/wayneeseguin/sequel/forks","keys_url":"https://api.github.com/repos/wayneeseguin/sequel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/sequel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/sequel/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/sequel/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/sequel/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/sequel/events","assignees_url":"https://api.github.com/repos/wayneeseguin/sequel/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/sequel/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/sequel/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/sequel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/sequel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/sequel/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/sequel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/sequel/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/sequel/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/sequel/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/sequel/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/sequel/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/sequel/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/sequel/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/sequel/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/sequel/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/sequel/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/sequel/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/sequel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/sequel/merges","archive_url":"https://api.github.com/repos/wayneeseguin/sequel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/sequel/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/sequel/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/sequel/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/sequel/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/sequel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/sequel/labels{/name}"},{"id":211,"name":"simply_versioned","full_name":"bmizerany/simply_versioned","owner":{"login":"bmizerany","id":46,"avatar_url":"https://2.gravatar.com/avatar/1a250566b475961b9b36abf359950c76?d=https%3A%2F%2Fidenticons.github.com%2Fd9d4f495e875a2e075a1a4a6e1b9770f.png","gravatar_id":"1a250566b475961b9b36abf359950c76","url":"https://api.github.com/users/bmizerany","html_url":"https://github.com/bmizerany","followers_url":"https://api.github.com/users/bmizerany/followers","following_url":"https://api.github.com/users/bmizerany/following{/other_user}","gists_url":"https://api.github.com/users/bmizerany/gists{/gist_id}","starred_url":"https://api.github.com/users/bmizerany/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bmizerany/subscriptions","organizations_url":"https://api.github.com/users/bmizerany/orgs","repos_url":"https://api.github.com/users/bmizerany/repos","events_url":"https://api.github.com/users/bmizerany/events{/privacy}","received_events_url":"https://api.github.com/users/bmizerany/received_events","type":"User"},"private":false,"html_url":"https://github.com/bmizerany/simply_versioned","description":"A simple, non-invasive, approach to versioning ActiveRecord models","fork":true,"url":"https://api.github.com/repos/bmizerany/simply_versioned","forks_url":"https://api.github.com/repos/bmizerany/simply_versioned/forks","keys_url":"https://api.github.com/repos/bmizerany/simply_versioned/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bmizerany/simply_versioned/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bmizerany/simply_versioned/teams","hooks_url":"https://api.github.com/repos/bmizerany/simply_versioned/hooks","issue_events_url":"https://api.github.com/repos/bmizerany/simply_versioned/issues/events{/number}","events_url":"https://api.github.com/repos/bmizerany/simply_versioned/events","assignees_url":"https://api.github.com/repos/bmizerany/simply_versioned/assignees{/user}","branches_url":"https://api.github.com/repos/bmizerany/simply_versioned/branches{/branch}","tags_url":"https://api.github.com/repos/bmizerany/simply_versioned/tags","blobs_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/refs{/sha}","trees_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bmizerany/simply_versioned/statuses/{sha}","languages_url":"https://api.github.com/repos/bmizerany/simply_versioned/languages","stargazers_url":"https://api.github.com/repos/bmizerany/simply_versioned/stargazers","contributors_url":"https://api.github.com/repos/bmizerany/simply_versioned/contributors","subscribers_url":"https://api.github.com/repos/bmizerany/simply_versioned/subscribers","subscription_url":"https://api.github.com/repos/bmizerany/simply_versioned/subscription","commits_url":"https://api.github.com/repos/bmizerany/simply_versioned/commits{/sha}","git_commits_url":"https://api.github.com/repos/bmizerany/simply_versioned/git/commits{/sha}","comments_url":"https://api.github.com/repos/bmizerany/simply_versioned/comments{/number}","issue_comment_url":"https://api.github.com/repos/bmizerany/simply_versioned/issues/comments/{number}","contents_url":"https://api.github.com/repos/bmizerany/simply_versioned/contents/{+path}","compare_url":"https://api.github.com/repos/bmizerany/simply_versioned/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bmizerany/simply_versioned/merges","archive_url":"https://api.github.com/repos/bmizerany/simply_versioned/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bmizerany/simply_versioned/downloads","issues_url":"https://api.github.com/repos/bmizerany/simply_versioned/issues{/number}","pulls_url":"https://api.github.com/repos/bmizerany/simply_versioned/pulls{/number}","milestones_url":"https://api.github.com/repos/bmizerany/simply_versioned/milestones{/number}","notifications_url":"https://api.github.com/repos/bmizerany/simply_versioned/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bmizerany/simply_versioned/labels{/name}"},{"id":212,"name":"switchpipe","full_name":"peterc/switchpipe","owner":{"login":"peterc","id":118,"avatar_url":"https://1.gravatar.com/avatar/6268c7528d855f1cef5696a00d159909?d=https%3A%2F%2Fidenticons.github.com%2F5ef059938ba799aaa845e1c2e8a762bd.png","gravatar_id":"6268c7528d855f1cef5696a00d159909","url":"https://api.github.com/users/peterc","html_url":"https://github.com/peterc","followers_url":"https://api.github.com/users/peterc/followers","following_url":"https://api.github.com/users/peterc/following{/other_user}","gists_url":"https://api.github.com/users/peterc/gists{/gist_id}","starred_url":"https://api.github.com/users/peterc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/peterc/subscriptions","organizations_url":"https://api.github.com/users/peterc/orgs","repos_url":"https://api.github.com/users/peterc/repos","events_url":"https://api.github.com/users/peterc/events{/privacy}","received_events_url":"https://api.github.com/users/peterc/received_events","type":"User"},"private":false,"html_url":"https://github.com/peterc/switchpipe","description":"SwitchPipe is a backend process manager and HTTP proxy that makes (especially Ruby) web app deployment simple. NOW OBSOLETE. DO NOT USE.","fork":false,"url":"https://api.github.com/repos/peterc/switchpipe","forks_url":"https://api.github.com/repos/peterc/switchpipe/forks","keys_url":"https://api.github.com/repos/peterc/switchpipe/keys{/key_id}","collaborators_url":"https://api.github.com/repos/peterc/switchpipe/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/peterc/switchpipe/teams","hooks_url":"https://api.github.com/repos/peterc/switchpipe/hooks","issue_events_url":"https://api.github.com/repos/peterc/switchpipe/issues/events{/number}","events_url":"https://api.github.com/repos/peterc/switchpipe/events","assignees_url":"https://api.github.com/repos/peterc/switchpipe/assignees{/user}","branches_url":"https://api.github.com/repos/peterc/switchpipe/branches{/branch}","tags_url":"https://api.github.com/repos/peterc/switchpipe/tags","blobs_url":"https://api.github.com/repos/peterc/switchpipe/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/peterc/switchpipe/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/peterc/switchpipe/git/refs{/sha}","trees_url":"https://api.github.com/repos/peterc/switchpipe/git/trees{/sha}","statuses_url":"https://api.github.com/repos/peterc/switchpipe/statuses/{sha}","languages_url":"https://api.github.com/repos/peterc/switchpipe/languages","stargazers_url":"https://api.github.com/repos/peterc/switchpipe/stargazers","contributors_url":"https://api.github.com/repos/peterc/switchpipe/contributors","subscribers_url":"https://api.github.com/repos/peterc/switchpipe/subscribers","subscription_url":"https://api.github.com/repos/peterc/switchpipe/subscription","commits_url":"https://api.github.com/repos/peterc/switchpipe/commits{/sha}","git_commits_url":"https://api.github.com/repos/peterc/switchpipe/git/commits{/sha}","comments_url":"https://api.github.com/repos/peterc/switchpipe/comments{/number}","issue_comment_url":"https://api.github.com/repos/peterc/switchpipe/issues/comments/{number}","contents_url":"https://api.github.com/repos/peterc/switchpipe/contents/{+path}","compare_url":"https://api.github.com/repos/peterc/switchpipe/compare/{base}...{head}","merges_url":"https://api.github.com/repos/peterc/switchpipe/merges","archive_url":"https://api.github.com/repos/peterc/switchpipe/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/peterc/switchpipe/downloads","issues_url":"https://api.github.com/repos/peterc/switchpipe/issues{/number}","pulls_url":"https://api.github.com/repos/peterc/switchpipe/pulls{/number}","milestones_url":"https://api.github.com/repos/peterc/switchpipe/milestones{/number}","notifications_url":"https://api.github.com/repos/peterc/switchpipe/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/peterc/switchpipe/labels{/name}"},{"id":213,"name":"arc","full_name":"hornbeck/arc","owner":{"login":"hornbeck","id":49,"avatar_url":"https://2.gravatar.com/avatar/47093444301bbde90d0aef5fa5c3ac86?d=https%3A%2F%2Fidenticons.github.com%2Ff457c545a9ded88f18ecee47145a72c0.png","gravatar_id":"47093444301bbde90d0aef5fa5c3ac86","url":"https://api.github.com/users/hornbeck","html_url":"https://github.com/hornbeck","followers_url":"https://api.github.com/users/hornbeck/followers","following_url":"https://api.github.com/users/hornbeck/following{/other_user}","gists_url":"https://api.github.com/users/hornbeck/gists{/gist_id}","starred_url":"https://api.github.com/users/hornbeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hornbeck/subscriptions","organizations_url":"https://api.github.com/users/hornbeck/orgs","repos_url":"https://api.github.com/users/hornbeck/repos","events_url":"https://api.github.com/users/hornbeck/events{/privacy}","received_events_url":"https://api.github.com/users/hornbeck/received_events","type":"User"},"private":false,"html_url":"https://github.com/hornbeck/arc","description":"My arc repo","fork":false,"url":"https://api.github.com/repos/hornbeck/arc","forks_url":"https://api.github.com/repos/hornbeck/arc/forks","keys_url":"https://api.github.com/repos/hornbeck/arc/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hornbeck/arc/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hornbeck/arc/teams","hooks_url":"https://api.github.com/repos/hornbeck/arc/hooks","issue_events_url":"https://api.github.com/repos/hornbeck/arc/issues/events{/number}","events_url":"https://api.github.com/repos/hornbeck/arc/events","assignees_url":"https://api.github.com/repos/hornbeck/arc/assignees{/user}","branches_url":"https://api.github.com/repos/hornbeck/arc/branches{/branch}","tags_url":"https://api.github.com/repos/hornbeck/arc/tags","blobs_url":"https://api.github.com/repos/hornbeck/arc/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hornbeck/arc/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hornbeck/arc/git/refs{/sha}","trees_url":"https://api.github.com/repos/hornbeck/arc/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hornbeck/arc/statuses/{sha}","languages_url":"https://api.github.com/repos/hornbeck/arc/languages","stargazers_url":"https://api.github.com/repos/hornbeck/arc/stargazers","contributors_url":"https://api.github.com/repos/hornbeck/arc/contributors","subscribers_url":"https://api.github.com/repos/hornbeck/arc/subscribers","subscription_url":"https://api.github.com/repos/hornbeck/arc/subscription","commits_url":"https://api.github.com/repos/hornbeck/arc/commits{/sha}","git_commits_url":"https://api.github.com/repos/hornbeck/arc/git/commits{/sha}","comments_url":"https://api.github.com/repos/hornbeck/arc/comments{/number}","issue_comment_url":"https://api.github.com/repos/hornbeck/arc/issues/comments/{number}","contents_url":"https://api.github.com/repos/hornbeck/arc/contents/{+path}","compare_url":"https://api.github.com/repos/hornbeck/arc/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hornbeck/arc/merges","archive_url":"https://api.github.com/repos/hornbeck/arc/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hornbeck/arc/downloads","issues_url":"https://api.github.com/repos/hornbeck/arc/issues{/number}","pulls_url":"https://api.github.com/repos/hornbeck/arc/pulls{/number}","milestones_url":"https://api.github.com/repos/hornbeck/arc/milestones{/number}","notifications_url":"https://api.github.com/repos/hornbeck/arc/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hornbeck/arc/labels{/name}"},{"id":217,"name":"ebay4r","full_name":"up_the_irons/ebay4r","owner":{"login":"up_the_irons","id":121,"avatar_url":"https://2.gravatar.com/avatar/d9ae72d7364c7909a0a4b02cba72438a?d=https%3A%2F%2Fidenticons.github.com%2F4c56ff4ce4aaf9573aa5dff913df997a.png","gravatar_id":"d9ae72d7364c7909a0a4b02cba72438a","url":"https://api.github.com/users/up_the_irons","html_url":"https://github.com/up_the_irons","followers_url":"https://api.github.com/users/up_the_irons/followers","following_url":"https://api.github.com/users/up_the_irons/following{/other_user}","gists_url":"https://api.github.com/users/up_the_irons/gists{/gist_id}","starred_url":"https://api.github.com/users/up_the_irons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/up_the_irons/subscriptions","organizations_url":"https://api.github.com/users/up_the_irons/orgs","repos_url":"https://api.github.com/users/up_the_irons/repos","events_url":"https://api.github.com/users/up_the_irons/events{/privacy}","received_events_url":"https://api.github.com/users/up_the_irons/received_events","type":"User"},"private":false,"html_url":"https://github.com/up_the_irons/ebay4r","description":"eBay4R is a Ruby wrapper for eBay's Web Services SOAP API","fork":false,"url":"https://api.github.com/repos/up_the_irons/ebay4r","forks_url":"https://api.github.com/repos/up_the_irons/ebay4r/forks","keys_url":"https://api.github.com/repos/up_the_irons/ebay4r/keys{/key_id}","collaborators_url":"https://api.github.com/repos/up_the_irons/ebay4r/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/up_the_irons/ebay4r/teams","hooks_url":"https://api.github.com/repos/up_the_irons/ebay4r/hooks","issue_events_url":"https://api.github.com/repos/up_the_irons/ebay4r/issues/events{/number}","events_url":"https://api.github.com/repos/up_the_irons/ebay4r/events","assignees_url":"https://api.github.com/repos/up_the_irons/ebay4r/assignees{/user}","branches_url":"https://api.github.com/repos/up_the_irons/ebay4r/branches{/branch}","tags_url":"https://api.github.com/repos/up_the_irons/ebay4r/tags","blobs_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/refs{/sha}","trees_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/trees{/sha}","statuses_url":"https://api.github.com/repos/up_the_irons/ebay4r/statuses/{sha}","languages_url":"https://api.github.com/repos/up_the_irons/ebay4r/languages","stargazers_url":"https://api.github.com/repos/up_the_irons/ebay4r/stargazers","contributors_url":"https://api.github.com/repos/up_the_irons/ebay4r/contributors","subscribers_url":"https://api.github.com/repos/up_the_irons/ebay4r/subscribers","subscription_url":"https://api.github.com/repos/up_the_irons/ebay4r/subscription","commits_url":"https://api.github.com/repos/up_the_irons/ebay4r/commits{/sha}","git_commits_url":"https://api.github.com/repos/up_the_irons/ebay4r/git/commits{/sha}","comments_url":"https://api.github.com/repos/up_the_irons/ebay4r/comments{/number}","issue_comment_url":"https://api.github.com/repos/up_the_irons/ebay4r/issues/comments/{number}","contents_url":"https://api.github.com/repos/up_the_irons/ebay4r/contents/{+path}","compare_url":"https://api.github.com/repos/up_the_irons/ebay4r/compare/{base}...{head}","merges_url":"https://api.github.com/repos/up_the_irons/ebay4r/merges","archive_url":"https://api.github.com/repos/up_the_irons/ebay4r/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/up_the_irons/ebay4r/downloads","issues_url":"https://api.github.com/repos/up_the_irons/ebay4r/issues{/number}","pulls_url":"https://api.github.com/repos/up_the_irons/ebay4r/pulls{/number}","milestones_url":"https://api.github.com/repos/up_the_irons/ebay4r/milestones{/number}","notifications_url":"https://api.github.com/repos/up_the_irons/ebay4r/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/up_the_irons/ebay4r/labels{/name}"},{"id":218,"name":"merb-plugins","full_name":"wycats/merb-plugins","owner":{"login":"wycats","id":4,"avatar_url":"https://2.gravatar.com/avatar/428167a3ec72235ba971162924492609?d=https%3A%2F%2Fidenticons.github.com%2Fa87ff679a2f3e71d9181a67b7542122c.png","gravatar_id":"428167a3ec72235ba971162924492609","url":"https://api.github.com/users/wycats","html_url":"https://github.com/wycats","followers_url":"https://api.github.com/users/wycats/followers","following_url":"https://api.github.com/users/wycats/following{/other_user}","gists_url":"https://api.github.com/users/wycats/gists{/gist_id}","starred_url":"https://api.github.com/users/wycats/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wycats/subscriptions","organizations_url":"https://api.github.com/users/wycats/orgs","repos_url":"https://api.github.com/users/wycats/repos","events_url":"https://api.github.com/users/wycats/events{/privacy}","received_events_url":"https://api.github.com/users/wycats/received_events","type":"User"},"private":false,"html_url":"https://github.com/wycats/merb-plugins","description":"Merb Plugins: Even more modules to hook up your Merb installation","fork":false,"url":"https://api.github.com/repos/wycats/merb-plugins","forks_url":"https://api.github.com/repos/wycats/merb-plugins/forks","keys_url":"https://api.github.com/repos/wycats/merb-plugins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wycats/merb-plugins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wycats/merb-plugins/teams","hooks_url":"https://api.github.com/repos/wycats/merb-plugins/hooks","issue_events_url":"https://api.github.com/repos/wycats/merb-plugins/issues/events{/number}","events_url":"https://api.github.com/repos/wycats/merb-plugins/events","assignees_url":"https://api.github.com/repos/wycats/merb-plugins/assignees{/user}","branches_url":"https://api.github.com/repos/wycats/merb-plugins/branches{/branch}","tags_url":"https://api.github.com/repos/wycats/merb-plugins/tags","blobs_url":"https://api.github.com/repos/wycats/merb-plugins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wycats/merb-plugins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wycats/merb-plugins/git/refs{/sha}","trees_url":"https://api.github.com/repos/wycats/merb-plugins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wycats/merb-plugins/statuses/{sha}","languages_url":"https://api.github.com/repos/wycats/merb-plugins/languages","stargazers_url":"https://api.github.com/repos/wycats/merb-plugins/stargazers","contributors_url":"https://api.github.com/repos/wycats/merb-plugins/contributors","subscribers_url":"https://api.github.com/repos/wycats/merb-plugins/subscribers","subscription_url":"https://api.github.com/repos/wycats/merb-plugins/subscription","commits_url":"https://api.github.com/repos/wycats/merb-plugins/commits{/sha}","git_commits_url":"https://api.github.com/repos/wycats/merb-plugins/git/commits{/sha}","comments_url":"https://api.github.com/repos/wycats/merb-plugins/comments{/number}","issue_comment_url":"https://api.github.com/repos/wycats/merb-plugins/issues/comments/{number}","contents_url":"https://api.github.com/repos/wycats/merb-plugins/contents/{+path}","compare_url":"https://api.github.com/repos/wycats/merb-plugins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wycats/merb-plugins/merges","archive_url":"https://api.github.com/repos/wycats/merb-plugins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wycats/merb-plugins/downloads","issues_url":"https://api.github.com/repos/wycats/merb-plugins/issues{/number}","pulls_url":"https://api.github.com/repos/wycats/merb-plugins/pulls{/number}","milestones_url":"https://api.github.com/repos/wycats/merb-plugins/milestones{/number}","notifications_url":"https://api.github.com/repos/wycats/merb-plugins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wycats/merb-plugins/labels{/name}"},{"id":220,"name":"ram","full_name":"up_the_irons/ram","owner":{"login":"up_the_irons","id":121,"avatar_url":"https://2.gravatar.com/avatar/d9ae72d7364c7909a0a4b02cba72438a?d=https%3A%2F%2Fidenticons.github.com%2F4c56ff4ce4aaf9573aa5dff913df997a.png","gravatar_id":"d9ae72d7364c7909a0a4b02cba72438a","url":"https://api.github.com/users/up_the_irons","html_url":"https://github.com/up_the_irons","followers_url":"https://api.github.com/users/up_the_irons/followers","following_url":"https://api.github.com/users/up_the_irons/following{/other_user}","gists_url":"https://api.github.com/users/up_the_irons/gists{/gist_id}","starred_url":"https://api.github.com/users/up_the_irons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/up_the_irons/subscriptions","organizations_url":"https://api.github.com/users/up_the_irons/orgs","repos_url":"https://api.github.com/users/up_the_irons/repos","events_url":"https://api.github.com/users/up_the_irons/events{/privacy}","received_events_url":"https://api.github.com/users/up_the_irons/received_events","type":"User"},"private":false,"html_url":"https://github.com/up_the_irons/ram","description":"Ruby Asset Manager","fork":false,"url":"https://api.github.com/repos/up_the_irons/ram","forks_url":"https://api.github.com/repos/up_the_irons/ram/forks","keys_url":"https://api.github.com/repos/up_the_irons/ram/keys{/key_id}","collaborators_url":"https://api.github.com/repos/up_the_irons/ram/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/up_the_irons/ram/teams","hooks_url":"https://api.github.com/repos/up_the_irons/ram/hooks","issue_events_url":"https://api.github.com/repos/up_the_irons/ram/issues/events{/number}","events_url":"https://api.github.com/repos/up_the_irons/ram/events","assignees_url":"https://api.github.com/repos/up_the_irons/ram/assignees{/user}","branches_url":"https://api.github.com/repos/up_the_irons/ram/branches{/branch}","tags_url":"https://api.github.com/repos/up_the_irons/ram/tags","blobs_url":"https://api.github.com/repos/up_the_irons/ram/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/up_the_irons/ram/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/up_the_irons/ram/git/refs{/sha}","trees_url":"https://api.github.com/repos/up_the_irons/ram/git/trees{/sha}","statuses_url":"https://api.github.com/repos/up_the_irons/ram/statuses/{sha}","languages_url":"https://api.github.com/repos/up_the_irons/ram/languages","stargazers_url":"https://api.github.com/repos/up_the_irons/ram/stargazers","contributors_url":"https://api.github.com/repos/up_the_irons/ram/contributors","subscribers_url":"https://api.github.com/repos/up_the_irons/ram/subscribers","subscription_url":"https://api.github.com/repos/up_the_irons/ram/subscription","commits_url":"https://api.github.com/repos/up_the_irons/ram/commits{/sha}","git_commits_url":"https://api.github.com/repos/up_the_irons/ram/git/commits{/sha}","comments_url":"https://api.github.com/repos/up_the_irons/ram/comments{/number}","issue_comment_url":"https://api.github.com/repos/up_the_irons/ram/issues/comments/{number}","contents_url":"https://api.github.com/repos/up_the_irons/ram/contents/{+path}","compare_url":"https://api.github.com/repos/up_the_irons/ram/compare/{base}...{head}","merges_url":"https://api.github.com/repos/up_the_irons/ram/merges","archive_url":"https://api.github.com/repos/up_the_irons/ram/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/up_the_irons/ram/downloads","issues_url":"https://api.github.com/repos/up_the_irons/ram/issues{/number}","pulls_url":"https://api.github.com/repos/up_the_irons/ram/pulls{/number}","milestones_url":"https://api.github.com/repos/up_the_irons/ram/milestones{/number}","notifications_url":"https://api.github.com/repos/up_the_irons/ram/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/up_the_irons/ram/labels{/name}"},{"id":230,"name":"ambitious_activeldap","full_name":"defunkt/ambitious_activeldap","owner":{"login":"defunkt","id":2,"avatar_url":"https://2.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https%3A%2F%2Fidenticons.github.com%2Fc81e728d9d4c2f636f067f89cc14862c.png","gravatar_id":"b8dbb1987e8e5318584865f880036796","url":"https://api.github.com/users/defunkt","html_url":"https://github.com/defunkt","followers_url":"https://api.github.com/users/defunkt/followers","following_url":"https://api.github.com/users/defunkt/following{/other_user}","gists_url":"https://api.github.com/users/defunkt/gists{/gist_id}","starred_url":"https://api.github.com/users/defunkt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/defunkt/subscriptions","organizations_url":"https://api.github.com/users/defunkt/orgs","repos_url":"https://api.github.com/users/defunkt/repos","events_url":"https://api.github.com/users/defunkt/events{/privacy}","received_events_url":"https://api.github.com/users/defunkt/received_events","type":"User"},"private":false,"html_url":"https://github.com/defunkt/ambitious_activeldap","description":"Ambition adapter for ActiveLdap","fork":true,"url":"https://api.github.com/repos/defunkt/ambitious_activeldap","forks_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/forks","keys_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/teams","hooks_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/hooks","issue_events_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/issues/events{/number}","events_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/events","assignees_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/assignees{/user}","branches_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/branches{/branch}","tags_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/tags","blobs_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/refs{/sha}","trees_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/statuses/{sha}","languages_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/languages","stargazers_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/stargazers","contributors_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/contributors","subscribers_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/subscribers","subscription_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/subscription","commits_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/commits{/sha}","git_commits_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/git/commits{/sha}","comments_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/comments{/number}","issue_comment_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/issues/comments/{number}","contents_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/contents/{+path}","compare_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/merges","archive_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/downloads","issues_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/issues{/number}","pulls_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/pulls{/number}","milestones_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/milestones{/number}","notifications_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/defunkt/ambitious_activeldap/labels{/name}"},{"id":232,"name":"fitter_happier","full_name":"atmos/fitter_happier","owner":{"login":"atmos","id":38,"avatar_url":"https://0.gravatar.com/avatar/a86224d72ce21cd9f5bee6784d4b06c7?d=https%3A%2F%2Fidenticons.github.com%2Fa5771bce93e200c36f7cd9dfd0e5deaa.png","gravatar_id":"a86224d72ce21cd9f5bee6784d4b06c7","url":"https://api.github.com/users/atmos","html_url":"https://github.com/atmos","followers_url":"https://api.github.com/users/atmos/followers","following_url":"https://api.github.com/users/atmos/following{/other_user}","gists_url":"https://api.github.com/users/atmos/gists{/gist_id}","starred_url":"https://api.github.com/users/atmos/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/atmos/subscriptions","organizations_url":"https://api.github.com/users/atmos/orgs","repos_url":"https://api.github.com/users/atmos/repos","events_url":"https://api.github.com/users/atmos/events{/privacy}","received_events_url":"https://api.github.com/users/atmos/received_events","type":"User"},"private":false,"html_url":"https://github.com/atmos/fitter_happier","description":"A Rails Plugin for adding a simple health check to your application","fork":false,"url":"https://api.github.com/repos/atmos/fitter_happier","forks_url":"https://api.github.com/repos/atmos/fitter_happier/forks","keys_url":"https://api.github.com/repos/atmos/fitter_happier/keys{/key_id}","collaborators_url":"https://api.github.com/repos/atmos/fitter_happier/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/atmos/fitter_happier/teams","hooks_url":"https://api.github.com/repos/atmos/fitter_happier/hooks","issue_events_url":"https://api.github.com/repos/atmos/fitter_happier/issues/events{/number}","events_url":"https://api.github.com/repos/atmos/fitter_happier/events","assignees_url":"https://api.github.com/repos/atmos/fitter_happier/assignees{/user}","branches_url":"https://api.github.com/repos/atmos/fitter_happier/branches{/branch}","tags_url":"https://api.github.com/repos/atmos/fitter_happier/tags","blobs_url":"https://api.github.com/repos/atmos/fitter_happier/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/atmos/fitter_happier/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/atmos/fitter_happier/git/refs{/sha}","trees_url":"https://api.github.com/repos/atmos/fitter_happier/git/trees{/sha}","statuses_url":"https://api.github.com/repos/atmos/fitter_happier/statuses/{sha}","languages_url":"https://api.github.com/repos/atmos/fitter_happier/languages","stargazers_url":"https://api.github.com/repos/atmos/fitter_happier/stargazers","contributors_url":"https://api.github.com/repos/atmos/fitter_happier/contributors","subscribers_url":"https://api.github.com/repos/atmos/fitter_happier/subscribers","subscription_url":"https://api.github.com/repos/atmos/fitter_happier/subscription","commits_url":"https://api.github.com/repos/atmos/fitter_happier/commits{/sha}","git_commits_url":"https://api.github.com/repos/atmos/fitter_happier/git/commits{/sha}","comments_url":"https://api.github.com/repos/atmos/fitter_happier/comments{/number}","issue_comment_url":"https://api.github.com/repos/atmos/fitter_happier/issues/comments/{number}","contents_url":"https://api.github.com/repos/atmos/fitter_happier/contents/{+path}","compare_url":"https://api.github.com/repos/atmos/fitter_happier/compare/{base}...{head}","merges_url":"https://api.github.com/repos/atmos/fitter_happier/merges","archive_url":"https://api.github.com/repos/atmos/fitter_happier/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/atmos/fitter_happier/downloads","issues_url":"https://api.github.com/repos/atmos/fitter_happier/issues{/number}","pulls_url":"https://api.github.com/repos/atmos/fitter_happier/pulls{/number}","milestones_url":"https://api.github.com/repos/atmos/fitter_happier/milestones{/number}","notifications_url":"https://api.github.com/repos/atmos/fitter_happier/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/atmos/fitter_happier/labels{/name}"},{"id":237,"name":"oebfare","full_name":"brosner/oebfare","owner":{"login":"brosner","id":124,"avatar_url":"https://0.gravatar.com/avatar/b7472bc7aa45c70641c299e9408b78ab?d=https%3A%2F%2Fidenticons.github.com%2Fc8ffe9a587b126f152ed3d89a146b445.png","gravatar_id":"b7472bc7aa45c70641c299e9408b78ab","url":"https://api.github.com/users/brosner","html_url":"https://github.com/brosner","followers_url":"https://api.github.com/users/brosner/followers","following_url":"https://api.github.com/users/brosner/following{/other_user}","gists_url":"https://api.github.com/users/brosner/gists{/gist_id}","starred_url":"https://api.github.com/users/brosner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brosner/subscriptions","organizations_url":"https://api.github.com/users/brosner/orgs","repos_url":"https://api.github.com/users/brosner/repos","events_url":"https://api.github.com/users/brosner/events{/privacy}","received_events_url":"https://api.github.com/users/brosner/received_events","type":"User"},"private":false,"html_url":"https://github.com/brosner/oebfare","description":"my personal blog written with django","fork":false,"url":"https://api.github.com/repos/brosner/oebfare","forks_url":"https://api.github.com/repos/brosner/oebfare/forks","keys_url":"https://api.github.com/repos/brosner/oebfare/keys{/key_id}","collaborators_url":"https://api.github.com/repos/brosner/oebfare/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/brosner/oebfare/teams","hooks_url":"https://api.github.com/repos/brosner/oebfare/hooks","issue_events_url":"https://api.github.com/repos/brosner/oebfare/issues/events{/number}","events_url":"https://api.github.com/repos/brosner/oebfare/events","assignees_url":"https://api.github.com/repos/brosner/oebfare/assignees{/user}","branches_url":"https://api.github.com/repos/brosner/oebfare/branches{/branch}","tags_url":"https://api.github.com/repos/brosner/oebfare/tags","blobs_url":"https://api.github.com/repos/brosner/oebfare/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/brosner/oebfare/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/brosner/oebfare/git/refs{/sha}","trees_url":"https://api.github.com/repos/brosner/oebfare/git/trees{/sha}","statuses_url":"https://api.github.com/repos/brosner/oebfare/statuses/{sha}","languages_url":"https://api.github.com/repos/brosner/oebfare/languages","stargazers_url":"https://api.github.com/repos/brosner/oebfare/stargazers","contributors_url":"https://api.github.com/repos/brosner/oebfare/contributors","subscribers_url":"https://api.github.com/repos/brosner/oebfare/subscribers","subscription_url":"https://api.github.com/repos/brosner/oebfare/subscription","commits_url":"https://api.github.com/repos/brosner/oebfare/commits{/sha}","git_commits_url":"https://api.github.com/repos/brosner/oebfare/git/commits{/sha}","comments_url":"https://api.github.com/repos/brosner/oebfare/comments{/number}","issue_comment_url":"https://api.github.com/repos/brosner/oebfare/issues/comments/{number}","contents_url":"https://api.github.com/repos/brosner/oebfare/contents/{+path}","compare_url":"https://api.github.com/repos/brosner/oebfare/compare/{base}...{head}","merges_url":"https://api.github.com/repos/brosner/oebfare/merges","archive_url":"https://api.github.com/repos/brosner/oebfare/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/brosner/oebfare/downloads","issues_url":"https://api.github.com/repos/brosner/oebfare/issues{/number}","pulls_url":"https://api.github.com/repos/brosner/oebfare/pulls{/number}","milestones_url":"https://api.github.com/repos/brosner/oebfare/milestones{/number}","notifications_url":"https://api.github.com/repos/brosner/oebfare/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/brosner/oebfare/labels{/name}"},{"id":245,"name":"credit_card_tools","full_name":"up_the_irons/credit_card_tools","owner":{"login":"up_the_irons","id":121,"avatar_url":"https://2.gravatar.com/avatar/d9ae72d7364c7909a0a4b02cba72438a?d=https%3A%2F%2Fidenticons.github.com%2F4c56ff4ce4aaf9573aa5dff913df997a.png","gravatar_id":"d9ae72d7364c7909a0a4b02cba72438a","url":"https://api.github.com/users/up_the_irons","html_url":"https://github.com/up_the_irons","followers_url":"https://api.github.com/users/up_the_irons/followers","following_url":"https://api.github.com/users/up_the_irons/following{/other_user}","gists_url":"https://api.github.com/users/up_the_irons/gists{/gist_id}","starred_url":"https://api.github.com/users/up_the_irons/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/up_the_irons/subscriptions","organizations_url":"https://api.github.com/users/up_the_irons/orgs","repos_url":"https://api.github.com/users/up_the_irons/repos","events_url":"https://api.github.com/users/up_the_irons/events{/privacy}","received_events_url":"https://api.github.com/users/up_the_irons/received_events","type":"User"},"private":false,"html_url":"https://github.com/up_the_irons/credit_card_tools","description":"Tools for processing credit cards on the command line","fork":false,"url":"https://api.github.com/repos/up_the_irons/credit_card_tools","forks_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/forks","keys_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/keys{/key_id}","collaborators_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/teams","hooks_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/hooks","issue_events_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/issues/events{/number}","events_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/events","assignees_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/assignees{/user}","branches_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/branches{/branch}","tags_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/tags","blobs_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/refs{/sha}","trees_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/trees{/sha}","statuses_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/statuses/{sha}","languages_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/languages","stargazers_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/stargazers","contributors_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/contributors","subscribers_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/subscribers","subscription_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/subscription","commits_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/commits{/sha}","git_commits_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/git/commits{/sha}","comments_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/comments{/number}","issue_comment_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/issues/comments/{number}","contents_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/contents/{+path}","compare_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/compare/{base}...{head}","merges_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/merges","archive_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/downloads","issues_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/issues{/number}","pulls_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/pulls{/number}","milestones_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/milestones{/number}","notifications_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/up_the_irons/credit_card_tools/labels{/name}"},{"id":248,"name":"rorem","full_name":"jnicklas/rorem","owner":{"login":"jnicklas","id":134,"avatar_url":"https://0.gravatar.com/avatar/6c469749d725177dd2837d806c769cd4?d=https%3A%2F%2Fidenticons.github.com%2F02522a2b2726fb0a03bb19f2d8d9524d.png","gravatar_id":"6c469749d725177dd2837d806c769cd4","url":"https://api.github.com/users/jnicklas","html_url":"https://github.com/jnicklas","followers_url":"https://api.github.com/users/jnicklas/followers","following_url":"https://api.github.com/users/jnicklas/following{/other_user}","gists_url":"https://api.github.com/users/jnicklas/gists{/gist_id}","starred_url":"https://api.github.com/users/jnicklas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnicklas/subscriptions","organizations_url":"https://api.github.com/users/jnicklas/orgs","repos_url":"https://api.github.com/users/jnicklas/repos","events_url":"https://api.github.com/users/jnicklas/events{/privacy}","received_events_url":"https://api.github.com/users/jnicklas/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnicklas/rorem","description":"Rorem is a random data generator","fork":false,"url":"https://api.github.com/repos/jnicklas/rorem","forks_url":"https://api.github.com/repos/jnicklas/rorem/forks","keys_url":"https://api.github.com/repos/jnicklas/rorem/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnicklas/rorem/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnicklas/rorem/teams","hooks_url":"https://api.github.com/repos/jnicklas/rorem/hooks","issue_events_url":"https://api.github.com/repos/jnicklas/rorem/issues/events{/number}","events_url":"https://api.github.com/repos/jnicklas/rorem/events","assignees_url":"https://api.github.com/repos/jnicklas/rorem/assignees{/user}","branches_url":"https://api.github.com/repos/jnicklas/rorem/branches{/branch}","tags_url":"https://api.github.com/repos/jnicklas/rorem/tags","blobs_url":"https://api.github.com/repos/jnicklas/rorem/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnicklas/rorem/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnicklas/rorem/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnicklas/rorem/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnicklas/rorem/statuses/{sha}","languages_url":"https://api.github.com/repos/jnicklas/rorem/languages","stargazers_url":"https://api.github.com/repos/jnicklas/rorem/stargazers","contributors_url":"https://api.github.com/repos/jnicklas/rorem/contributors","subscribers_url":"https://api.github.com/repos/jnicklas/rorem/subscribers","subscription_url":"https://api.github.com/repos/jnicklas/rorem/subscription","commits_url":"https://api.github.com/repos/jnicklas/rorem/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnicklas/rorem/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnicklas/rorem/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnicklas/rorem/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnicklas/rorem/contents/{+path}","compare_url":"https://api.github.com/repos/jnicklas/rorem/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnicklas/rorem/merges","archive_url":"https://api.github.com/repos/jnicklas/rorem/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnicklas/rorem/downloads","issues_url":"https://api.github.com/repos/jnicklas/rorem/issues{/number}","pulls_url":"https://api.github.com/repos/jnicklas/rorem/pulls{/number}","milestones_url":"https://api.github.com/repos/jnicklas/rorem/milestones{/number}","notifications_url":"https://api.github.com/repos/jnicklas/rorem/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnicklas/rorem/labels{/name}"},{"id":249,"name":"braid","full_name":"evilchelu/braid","owner":{"login":"evilchelu","id":122,"avatar_url":"https://1.gravatar.com/avatar/0e8c5f8d88cfc1aeeb59acdcc8aad387?d=https%3A%2F%2Fidenticons.github.com%2Fa0a080f42e6f13b3a2df133f073095dd.png","gravatar_id":"0e8c5f8d88cfc1aeeb59acdcc8aad387","url":"https://api.github.com/users/evilchelu","html_url":"https://github.com/evilchelu","followers_url":"https://api.github.com/users/evilchelu/followers","following_url":"https://api.github.com/users/evilchelu/following{/other_user}","gists_url":"https://api.github.com/users/evilchelu/gists{/gist_id}","starred_url":"https://api.github.com/users/evilchelu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/evilchelu/subscriptions","organizations_url":"https://api.github.com/users/evilchelu/orgs","repos_url":"https://api.github.com/users/evilchelu/repos","events_url":"https://api.github.com/users/evilchelu/events{/privacy}","received_events_url":"https://api.github.com/users/evilchelu/received_events","type":"User"},"private":false,"html_url":"https://github.com/evilchelu/braid","description":"Simple tool to help track git and svn vendor branches in a git repository","fork":false,"url":"https://api.github.com/repos/evilchelu/braid","forks_url":"https://api.github.com/repos/evilchelu/braid/forks","keys_url":"https://api.github.com/repos/evilchelu/braid/keys{/key_id}","collaborators_url":"https://api.github.com/repos/evilchelu/braid/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/evilchelu/braid/teams","hooks_url":"https://api.github.com/repos/evilchelu/braid/hooks","issue_events_url":"https://api.github.com/repos/evilchelu/braid/issues/events{/number}","events_url":"https://api.github.com/repos/evilchelu/braid/events","assignees_url":"https://api.github.com/repos/evilchelu/braid/assignees{/user}","branches_url":"https://api.github.com/repos/evilchelu/braid/branches{/branch}","tags_url":"https://api.github.com/repos/evilchelu/braid/tags","blobs_url":"https://api.github.com/repos/evilchelu/braid/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/evilchelu/braid/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/evilchelu/braid/git/refs{/sha}","trees_url":"https://api.github.com/repos/evilchelu/braid/git/trees{/sha}","statuses_url":"https://api.github.com/repos/evilchelu/braid/statuses/{sha}","languages_url":"https://api.github.com/repos/evilchelu/braid/languages","stargazers_url":"https://api.github.com/repos/evilchelu/braid/stargazers","contributors_url":"https://api.github.com/repos/evilchelu/braid/contributors","subscribers_url":"https://api.github.com/repos/evilchelu/braid/subscribers","subscription_url":"https://api.github.com/repos/evilchelu/braid/subscription","commits_url":"https://api.github.com/repos/evilchelu/braid/commits{/sha}","git_commits_url":"https://api.github.com/repos/evilchelu/braid/git/commits{/sha}","comments_url":"https://api.github.com/repos/evilchelu/braid/comments{/number}","issue_comment_url":"https://api.github.com/repos/evilchelu/braid/issues/comments/{number}","contents_url":"https://api.github.com/repos/evilchelu/braid/contents/{+path}","compare_url":"https://api.github.com/repos/evilchelu/braid/compare/{base}...{head}","merges_url":"https://api.github.com/repos/evilchelu/braid/merges","archive_url":"https://api.github.com/repos/evilchelu/braid/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/evilchelu/braid/downloads","issues_url":"https://api.github.com/repos/evilchelu/braid/issues{/number}","pulls_url":"https://api.github.com/repos/evilchelu/braid/pulls{/number}","milestones_url":"https://api.github.com/repos/evilchelu/braid/milestones{/number}","notifications_url":"https://api.github.com/repos/evilchelu/braid/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/evilchelu/braid/labels{/name}"},{"id":251,"name":"uploadcolumn","full_name":"jnicklas/uploadcolumn","owner":{"login":"jnicklas","id":134,"avatar_url":"https://0.gravatar.com/avatar/6c469749d725177dd2837d806c769cd4?d=https%3A%2F%2Fidenticons.github.com%2F02522a2b2726fb0a03bb19f2d8d9524d.png","gravatar_id":"6c469749d725177dd2837d806c769cd4","url":"https://api.github.com/users/jnicklas","html_url":"https://github.com/jnicklas","followers_url":"https://api.github.com/users/jnicklas/followers","following_url":"https://api.github.com/users/jnicklas/following{/other_user}","gists_url":"https://api.github.com/users/jnicklas/gists{/gist_id}","starred_url":"https://api.github.com/users/jnicklas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnicklas/subscriptions","organizations_url":"https://api.github.com/users/jnicklas/orgs","repos_url":"https://api.github.com/users/jnicklas/repos","events_url":"https://api.github.com/users/jnicklas/events{/privacy}","received_events_url":"https://api.github.com/users/jnicklas/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnicklas/uploadcolumn","description":"UploadColumn is no longer maintained, check out CarrierWave for an alternative","fork":false,"url":"https://api.github.com/repos/jnicklas/uploadcolumn","forks_url":"https://api.github.com/repos/jnicklas/uploadcolumn/forks","keys_url":"https://api.github.com/repos/jnicklas/uploadcolumn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnicklas/uploadcolumn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnicklas/uploadcolumn/teams","hooks_url":"https://api.github.com/repos/jnicklas/uploadcolumn/hooks","issue_events_url":"https://api.github.com/repos/jnicklas/uploadcolumn/issues/events{/number}","events_url":"https://api.github.com/repos/jnicklas/uploadcolumn/events","assignees_url":"https://api.github.com/repos/jnicklas/uploadcolumn/assignees{/user}","branches_url":"https://api.github.com/repos/jnicklas/uploadcolumn/branches{/branch}","tags_url":"https://api.github.com/repos/jnicklas/uploadcolumn/tags","blobs_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnicklas/uploadcolumn/statuses/{sha}","languages_url":"https://api.github.com/repos/jnicklas/uploadcolumn/languages","stargazers_url":"https://api.github.com/repos/jnicklas/uploadcolumn/stargazers","contributors_url":"https://api.github.com/repos/jnicklas/uploadcolumn/contributors","subscribers_url":"https://api.github.com/repos/jnicklas/uploadcolumn/subscribers","subscription_url":"https://api.github.com/repos/jnicklas/uploadcolumn/subscription","commits_url":"https://api.github.com/repos/jnicklas/uploadcolumn/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnicklas/uploadcolumn/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnicklas/uploadcolumn/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnicklas/uploadcolumn/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnicklas/uploadcolumn/contents/{+path}","compare_url":"https://api.github.com/repos/jnicklas/uploadcolumn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnicklas/uploadcolumn/merges","archive_url":"https://api.github.com/repos/jnicklas/uploadcolumn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnicklas/uploadcolumn/downloads","issues_url":"https://api.github.com/repos/jnicklas/uploadcolumn/issues{/number}","pulls_url":"https://api.github.com/repos/jnicklas/uploadcolumn/pulls{/number}","milestones_url":"https://api.github.com/repos/jnicklas/uploadcolumn/milestones{/number}","notifications_url":"https://api.github.com/repos/jnicklas/uploadcolumn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnicklas/uploadcolumn/labels{/name}"},{"id":252,"name":"ruby-on-rails-tmbundle","full_name":"simonjefford/ruby-on-rails-tmbundle","owner":{"login":"simonjefford","id":136,"avatar_url":"https://1.gravatar.com/avatar/46fd60ea4dde74f3d46fcfd27ed700bf?d=https%3A%2F%2Fidenticons.github.com%2F42a0e188f5033bc65bf8d78622277c4e.png","gravatar_id":"46fd60ea4dde74f3d46fcfd27ed700bf","url":"https://api.github.com/users/simonjefford","html_url":"https://github.com/simonjefford","followers_url":"https://api.github.com/users/simonjefford/followers","following_url":"https://api.github.com/users/simonjefford/following{/other_user}","gists_url":"https://api.github.com/users/simonjefford/gists{/gist_id}","starred_url":"https://api.github.com/users/simonjefford/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/simonjefford/subscriptions","organizations_url":"https://api.github.com/users/simonjefford/orgs","repos_url":"https://api.github.com/users/simonjefford/repos","events_url":"https://api.github.com/users/simonjefford/events{/privacy}","received_events_url":"https://api.github.com/users/simonjefford/received_events","type":"User"},"private":false,"html_url":"https://github.com/simonjefford/ruby-on-rails-tmbundle","description":"Ruby on Rails TextMate bundle [master branch is svn trunk; patches to drnicwilliams@gmail.com]","fork":true,"url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle","forks_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/forks","keys_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/teams","hooks_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/events","assignees_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/tags","blobs_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/languages","stargazers_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/subscription","commits_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/merges","archive_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/downloads","issues_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/simonjefford/ruby-on-rails-tmbundle/labels{/name}"},{"id":256,"name":"rack-mirror","full_name":"chneukirchen/rack-mirror","owner":{"login":"chneukirchen","id":139,"avatar_url":"https://0.gravatar.com/avatar/7264fb16beeea92b89bb42023738259d?d=https%3A%2F%2Fidenticons.github.com%2Fe00da03b685a0dd18fb6a08af0923de0.png","gravatar_id":"7264fb16beeea92b89bb42023738259d","url":"https://api.github.com/users/chneukirchen","html_url":"https://github.com/chneukirchen","followers_url":"https://api.github.com/users/chneukirchen/followers","following_url":"https://api.github.com/users/chneukirchen/following{/other_user}","gists_url":"https://api.github.com/users/chneukirchen/gists{/gist_id}","starred_url":"https://api.github.com/users/chneukirchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chneukirchen/subscriptions","organizations_url":"https://api.github.com/users/chneukirchen/orgs","repos_url":"https://api.github.com/users/chneukirchen/repos","events_url":"https://api.github.com/users/chneukirchen/events{/privacy}","received_events_url":"https://api.github.com/users/chneukirchen/received_events","type":"User"},"private":false,"html_url":"https://github.com/chneukirchen/rack-mirror","description":"OUTDATED mirror of Rack's darcs repository, use github.com/chneukirchen/rack","fork":false,"url":"https://api.github.com/repos/chneukirchen/rack-mirror","forks_url":"https://api.github.com/repos/chneukirchen/rack-mirror/forks","keys_url":"https://api.github.com/repos/chneukirchen/rack-mirror/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chneukirchen/rack-mirror/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chneukirchen/rack-mirror/teams","hooks_url":"https://api.github.com/repos/chneukirchen/rack-mirror/hooks","issue_events_url":"https://api.github.com/repos/chneukirchen/rack-mirror/issues/events{/number}","events_url":"https://api.github.com/repos/chneukirchen/rack-mirror/events","assignees_url":"https://api.github.com/repos/chneukirchen/rack-mirror/assignees{/user}","branches_url":"https://api.github.com/repos/chneukirchen/rack-mirror/branches{/branch}","tags_url":"https://api.github.com/repos/chneukirchen/rack-mirror/tags","blobs_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/refs{/sha}","trees_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chneukirchen/rack-mirror/statuses/{sha}","languages_url":"https://api.github.com/repos/chneukirchen/rack-mirror/languages","stargazers_url":"https://api.github.com/repos/chneukirchen/rack-mirror/stargazers","contributors_url":"https://api.github.com/repos/chneukirchen/rack-mirror/contributors","subscribers_url":"https://api.github.com/repos/chneukirchen/rack-mirror/subscribers","subscription_url":"https://api.github.com/repos/chneukirchen/rack-mirror/subscription","commits_url":"https://api.github.com/repos/chneukirchen/rack-mirror/commits{/sha}","git_commits_url":"https://api.github.com/repos/chneukirchen/rack-mirror/git/commits{/sha}","comments_url":"https://api.github.com/repos/chneukirchen/rack-mirror/comments{/number}","issue_comment_url":"https://api.github.com/repos/chneukirchen/rack-mirror/issues/comments/{number}","contents_url":"https://api.github.com/repos/chneukirchen/rack-mirror/contents/{+path}","compare_url":"https://api.github.com/repos/chneukirchen/rack-mirror/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chneukirchen/rack-mirror/merges","archive_url":"https://api.github.com/repos/chneukirchen/rack-mirror/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chneukirchen/rack-mirror/downloads","issues_url":"https://api.github.com/repos/chneukirchen/rack-mirror/issues{/number}","pulls_url":"https://api.github.com/repos/chneukirchen/rack-mirror/pulls{/number}","milestones_url":"https://api.github.com/repos/chneukirchen/rack-mirror/milestones{/number}","notifications_url":"https://api.github.com/repos/chneukirchen/rack-mirror/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chneukirchen/rack-mirror/labels{/name}"},{"id":257,"name":"coset-mirror","full_name":"chneukirchen/coset-mirror","owner":{"login":"chneukirchen","id":139,"avatar_url":"https://0.gravatar.com/avatar/7264fb16beeea92b89bb42023738259d?d=https%3A%2F%2Fidenticons.github.com%2Fe00da03b685a0dd18fb6a08af0923de0.png","gravatar_id":"7264fb16beeea92b89bb42023738259d","url":"https://api.github.com/users/chneukirchen","html_url":"https://github.com/chneukirchen","followers_url":"https://api.github.com/users/chneukirchen/followers","following_url":"https://api.github.com/users/chneukirchen/following{/other_user}","gists_url":"https://api.github.com/users/chneukirchen/gists{/gist_id}","starred_url":"https://api.github.com/users/chneukirchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chneukirchen/subscriptions","organizations_url":"https://api.github.com/users/chneukirchen/orgs","repos_url":"https://api.github.com/users/chneukirchen/repos","events_url":"https://api.github.com/users/chneukirchen/events{/privacy}","received_events_url":"https://api.github.com/users/chneukirchen/received_events","type":"User"},"private":false,"html_url":"https://github.com/chneukirchen/coset-mirror","description":"(experimental) Mirror of the coset darcs repository","fork":false,"url":"https://api.github.com/repos/chneukirchen/coset-mirror","forks_url":"https://api.github.com/repos/chneukirchen/coset-mirror/forks","keys_url":"https://api.github.com/repos/chneukirchen/coset-mirror/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chneukirchen/coset-mirror/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chneukirchen/coset-mirror/teams","hooks_url":"https://api.github.com/repos/chneukirchen/coset-mirror/hooks","issue_events_url":"https://api.github.com/repos/chneukirchen/coset-mirror/issues/events{/number}","events_url":"https://api.github.com/repos/chneukirchen/coset-mirror/events","assignees_url":"https://api.github.com/repos/chneukirchen/coset-mirror/assignees{/user}","branches_url":"https://api.github.com/repos/chneukirchen/coset-mirror/branches{/branch}","tags_url":"https://api.github.com/repos/chneukirchen/coset-mirror/tags","blobs_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/refs{/sha}","trees_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chneukirchen/coset-mirror/statuses/{sha}","languages_url":"https://api.github.com/repos/chneukirchen/coset-mirror/languages","stargazers_url":"https://api.github.com/repos/chneukirchen/coset-mirror/stargazers","contributors_url":"https://api.github.com/repos/chneukirchen/coset-mirror/contributors","subscribers_url":"https://api.github.com/repos/chneukirchen/coset-mirror/subscribers","subscription_url":"https://api.github.com/repos/chneukirchen/coset-mirror/subscription","commits_url":"https://api.github.com/repos/chneukirchen/coset-mirror/commits{/sha}","git_commits_url":"https://api.github.com/repos/chneukirchen/coset-mirror/git/commits{/sha}","comments_url":"https://api.github.com/repos/chneukirchen/coset-mirror/comments{/number}","issue_comment_url":"https://api.github.com/repos/chneukirchen/coset-mirror/issues/comments/{number}","contents_url":"https://api.github.com/repos/chneukirchen/coset-mirror/contents/{+path}","compare_url":"https://api.github.com/repos/chneukirchen/coset-mirror/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chneukirchen/coset-mirror/merges","archive_url":"https://api.github.com/repos/chneukirchen/coset-mirror/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chneukirchen/coset-mirror/downloads","issues_url":"https://api.github.com/repos/chneukirchen/coset-mirror/issues{/number}","pulls_url":"https://api.github.com/repos/chneukirchen/coset-mirror/pulls{/number}","milestones_url":"https://api.github.com/repos/chneukirchen/coset-mirror/milestones{/number}","notifications_url":"https://api.github.com/repos/chneukirchen/coset-mirror/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chneukirchen/coset-mirror/labels{/name}"},{"id":267,"name":"javascript-unittest-tmbundle","full_name":"drnic/javascript-unittest-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://2.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/javascript-unittest-tmbundle","description":"JavaScript Unit Test TextMate Bundle [for prototype's unittest.js library]","fork":false,"url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle","forks_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/javascript-unittest-tmbundle/labels{/name}"},{"id":273,"name":"eycap","full_name":"engineyard/eycap","owner":{"login":"engineyard","id":81,"avatar_url":"https://0.gravatar.com/avatar/27f95ff21f0a4b94a72de0e8f780d4d2?d=https%3A%2F%2Fidenticons.github.com%2F43ec517d68b6edd3015b3edc9a11367b.png","gravatar_id":"27f95ff21f0a4b94a72de0e8f780d4d2","url":"https://api.github.com/users/engineyard","html_url":"https://github.com/engineyard","followers_url":"https://api.github.com/users/engineyard/followers","following_url":"https://api.github.com/users/engineyard/following{/other_user}","gists_url":"https://api.github.com/users/engineyard/gists{/gist_id}","starred_url":"https://api.github.com/users/engineyard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/engineyard/subscriptions","organizations_url":"https://api.github.com/users/engineyard/orgs","repos_url":"https://api.github.com/users/engineyard/repos","events_url":"https://api.github.com/users/engineyard/events{/privacy}","received_events_url":"https://api.github.com/users/engineyard/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/engineyard/eycap","description":"Engine Yard specific capistrano recipes","fork":false,"url":"https://api.github.com/repos/engineyard/eycap","forks_url":"https://api.github.com/repos/engineyard/eycap/forks","keys_url":"https://api.github.com/repos/engineyard/eycap/keys{/key_id}","collaborators_url":"https://api.github.com/repos/engineyard/eycap/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/engineyard/eycap/teams","hooks_url":"https://api.github.com/repos/engineyard/eycap/hooks","issue_events_url":"https://api.github.com/repos/engineyard/eycap/issues/events{/number}","events_url":"https://api.github.com/repos/engineyard/eycap/events","assignees_url":"https://api.github.com/repos/engineyard/eycap/assignees{/user}","branches_url":"https://api.github.com/repos/engineyard/eycap/branches{/branch}","tags_url":"https://api.github.com/repos/engineyard/eycap/tags","blobs_url":"https://api.github.com/repos/engineyard/eycap/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/engineyard/eycap/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/engineyard/eycap/git/refs{/sha}","trees_url":"https://api.github.com/repos/engineyard/eycap/git/trees{/sha}","statuses_url":"https://api.github.com/repos/engineyard/eycap/statuses/{sha}","languages_url":"https://api.github.com/repos/engineyard/eycap/languages","stargazers_url":"https://api.github.com/repos/engineyard/eycap/stargazers","contributors_url":"https://api.github.com/repos/engineyard/eycap/contributors","subscribers_url":"https://api.github.com/repos/engineyard/eycap/subscribers","subscription_url":"https://api.github.com/repos/engineyard/eycap/subscription","commits_url":"https://api.github.com/repos/engineyard/eycap/commits{/sha}","git_commits_url":"https://api.github.com/repos/engineyard/eycap/git/commits{/sha}","comments_url":"https://api.github.com/repos/engineyard/eycap/comments{/number}","issue_comment_url":"https://api.github.com/repos/engineyard/eycap/issues/comments/{number}","contents_url":"https://api.github.com/repos/engineyard/eycap/contents/{+path}","compare_url":"https://api.github.com/repos/engineyard/eycap/compare/{base}...{head}","merges_url":"https://api.github.com/repos/engineyard/eycap/merges","archive_url":"https://api.github.com/repos/engineyard/eycap/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/engineyard/eycap/downloads","issues_url":"https://api.github.com/repos/engineyard/eycap/issues{/number}","pulls_url":"https://api.github.com/repos/engineyard/eycap/pulls{/number}","milestones_url":"https://api.github.com/repos/engineyard/eycap/milestones{/number}","notifications_url":"https://api.github.com/repos/engineyard/eycap/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/engineyard/eycap/labels{/name}"},{"id":279,"name":"gitsum","full_name":"chneukirchen/gitsum","owner":{"login":"chneukirchen","id":139,"avatar_url":"https://0.gravatar.com/avatar/7264fb16beeea92b89bb42023738259d?d=https%3A%2F%2Fidenticons.github.com%2Fe00da03b685a0dd18fb6a08af0923de0.png","gravatar_id":"7264fb16beeea92b89bb42023738259d","url":"https://api.github.com/users/chneukirchen","html_url":"https://github.com/chneukirchen","followers_url":"https://api.github.com/users/chneukirchen/followers","following_url":"https://api.github.com/users/chneukirchen/following{/other_user}","gists_url":"https://api.github.com/users/chneukirchen/gists{/gist_id}","starred_url":"https://api.github.com/users/chneukirchen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chneukirchen/subscriptions","organizations_url":"https://api.github.com/users/chneukirchen/orgs","repos_url":"https://api.github.com/users/chneukirchen/repos","events_url":"https://api.github.com/users/chneukirchen/events{/privacy}","received_events_url":"https://api.github.com/users/chneukirchen/received_events","type":"User"},"private":false,"html_url":"https://github.com/chneukirchen/gitsum","description":"basic darcsum feelalike for Git","fork":false,"url":"https://api.github.com/repos/chneukirchen/gitsum","forks_url":"https://api.github.com/repos/chneukirchen/gitsum/forks","keys_url":"https://api.github.com/repos/chneukirchen/gitsum/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chneukirchen/gitsum/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chneukirchen/gitsum/teams","hooks_url":"https://api.github.com/repos/chneukirchen/gitsum/hooks","issue_events_url":"https://api.github.com/repos/chneukirchen/gitsum/issues/events{/number}","events_url":"https://api.github.com/repos/chneukirchen/gitsum/events","assignees_url":"https://api.github.com/repos/chneukirchen/gitsum/assignees{/user}","branches_url":"https://api.github.com/repos/chneukirchen/gitsum/branches{/branch}","tags_url":"https://api.github.com/repos/chneukirchen/gitsum/tags","blobs_url":"https://api.github.com/repos/chneukirchen/gitsum/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chneukirchen/gitsum/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chneukirchen/gitsum/git/refs{/sha}","trees_url":"https://api.github.com/repos/chneukirchen/gitsum/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chneukirchen/gitsum/statuses/{sha}","languages_url":"https://api.github.com/repos/chneukirchen/gitsum/languages","stargazers_url":"https://api.github.com/repos/chneukirchen/gitsum/stargazers","contributors_url":"https://api.github.com/repos/chneukirchen/gitsum/contributors","subscribers_url":"https://api.github.com/repos/chneukirchen/gitsum/subscribers","subscription_url":"https://api.github.com/repos/chneukirchen/gitsum/subscription","commits_url":"https://api.github.com/repos/chneukirchen/gitsum/commits{/sha}","git_commits_url":"https://api.github.com/repos/chneukirchen/gitsum/git/commits{/sha}","comments_url":"https://api.github.com/repos/chneukirchen/gitsum/comments{/number}","issue_comment_url":"https://api.github.com/repos/chneukirchen/gitsum/issues/comments/{number}","contents_url":"https://api.github.com/repos/chneukirchen/gitsum/contents/{+path}","compare_url":"https://api.github.com/repos/chneukirchen/gitsum/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chneukirchen/gitsum/merges","archive_url":"https://api.github.com/repos/chneukirchen/gitsum/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chneukirchen/gitsum/downloads","issues_url":"https://api.github.com/repos/chneukirchen/gitsum/issues{/number}","pulls_url":"https://api.github.com/repos/chneukirchen/gitsum/pulls{/number}","milestones_url":"https://api.github.com/repos/chneukirchen/gitsum/milestones{/number}","notifications_url":"https://api.github.com/repos/chneukirchen/gitsum/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chneukirchen/gitsum/labels{/name}"},{"id":284,"name":"ambition","full_name":"automatthew/ambition","owner":{"login":"automatthew","id":105,"avatar_url":"https://2.gravatar.com/avatar/491d5a2b6e9c9346e2d67da31a633457?d=https%3A%2F%2Fidenticons.github.com%2F65b9eea6e1cc6bb9f0cd2a47751a186f.png","gravatar_id":"491d5a2b6e9c9346e2d67da31a633457","url":"https://api.github.com/users/automatthew","html_url":"https://github.com/automatthew","followers_url":"https://api.github.com/users/automatthew/followers","following_url":"https://api.github.com/users/automatthew/following{/other_user}","gists_url":"https://api.github.com/users/automatthew/gists{/gist_id}","starred_url":"https://api.github.com/users/automatthew/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/automatthew/subscriptions","organizations_url":"https://api.github.com/users/automatthew/orgs","repos_url":"https://api.github.com/users/automatthew/repos","events_url":"https://api.github.com/users/automatthew/events{/privacy}","received_events_url":"https://api.github.com/users/automatthew/received_events","type":"User"},"private":false,"html_url":"https://github.com/automatthew/ambition","description":"","fork":true,"url":"https://api.github.com/repos/automatthew/ambition","forks_url":"https://api.github.com/repos/automatthew/ambition/forks","keys_url":"https://api.github.com/repos/automatthew/ambition/keys{/key_id}","collaborators_url":"https://api.github.com/repos/automatthew/ambition/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/automatthew/ambition/teams","hooks_url":"https://api.github.com/repos/automatthew/ambition/hooks","issue_events_url":"https://api.github.com/repos/automatthew/ambition/issues/events{/number}","events_url":"https://api.github.com/repos/automatthew/ambition/events","assignees_url":"https://api.github.com/repos/automatthew/ambition/assignees{/user}","branches_url":"https://api.github.com/repos/automatthew/ambition/branches{/branch}","tags_url":"https://api.github.com/repos/automatthew/ambition/tags","blobs_url":"https://api.github.com/repos/automatthew/ambition/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/automatthew/ambition/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/automatthew/ambition/git/refs{/sha}","trees_url":"https://api.github.com/repos/automatthew/ambition/git/trees{/sha}","statuses_url":"https://api.github.com/repos/automatthew/ambition/statuses/{sha}","languages_url":"https://api.github.com/repos/automatthew/ambition/languages","stargazers_url":"https://api.github.com/repos/automatthew/ambition/stargazers","contributors_url":"https://api.github.com/repos/automatthew/ambition/contributors","subscribers_url":"https://api.github.com/repos/automatthew/ambition/subscribers","subscription_url":"https://api.github.com/repos/automatthew/ambition/subscription","commits_url":"https://api.github.com/repos/automatthew/ambition/commits{/sha}","git_commits_url":"https://api.github.com/repos/automatthew/ambition/git/commits{/sha}","comments_url":"https://api.github.com/repos/automatthew/ambition/comments{/number}","issue_comment_url":"https://api.github.com/repos/automatthew/ambition/issues/comments/{number}","contents_url":"https://api.github.com/repos/automatthew/ambition/contents/{+path}","compare_url":"https://api.github.com/repos/automatthew/ambition/compare/{base}...{head}","merges_url":"https://api.github.com/repos/automatthew/ambition/merges","archive_url":"https://api.github.com/repos/automatthew/ambition/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/automatthew/ambition/downloads","issues_url":"https://api.github.com/repos/automatthew/ambition/issues{/number}","pulls_url":"https://api.github.com/repos/automatthew/ambition/pulls{/number}","milestones_url":"https://api.github.com/repos/automatthew/ambition/milestones{/number}","notifications_url":"https://api.github.com/repos/automatthew/ambition/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/automatthew/ambition/labels{/name}"},{"id":293,"name":"sequel-model","full_name":"wayneeseguin/sequel-model","owner":{"login":"wayneeseguin","id":18,"avatar_url":"https://0.gravatar.com/avatar/b9b5ff40232c1dfd61238c2a90467f84?d=https%3A%2F%2Fidenticons.github.com%2F6f4922f45568161a8cdf4ad2299f6d23.png","gravatar_id":"b9b5ff40232c1dfd61238c2a90467f84","url":"https://api.github.com/users/wayneeseguin","html_url":"https://github.com/wayneeseguin","followers_url":"https://api.github.com/users/wayneeseguin/followers","following_url":"https://api.github.com/users/wayneeseguin/following{/other_user}","gists_url":"https://api.github.com/users/wayneeseguin/gists{/gist_id}","starred_url":"https://api.github.com/users/wayneeseguin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wayneeseguin/subscriptions","organizations_url":"https://api.github.com/users/wayneeseguin/orgs","repos_url":"https://api.github.com/users/wayneeseguin/repos","events_url":"https://api.github.com/users/wayneeseguin/events{/privacy}","received_events_url":"https://api.github.com/users/wayneeseguin/received_events","type":"User"},"private":false,"html_url":"https://github.com/wayneeseguin/sequel-model","description":"Sequel::Model (No longer working on this project)","fork":false,"url":"https://api.github.com/repos/wayneeseguin/sequel-model","forks_url":"https://api.github.com/repos/wayneeseguin/sequel-model/forks","keys_url":"https://api.github.com/repos/wayneeseguin/sequel-model/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wayneeseguin/sequel-model/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wayneeseguin/sequel-model/teams","hooks_url":"https://api.github.com/repos/wayneeseguin/sequel-model/hooks","issue_events_url":"https://api.github.com/repos/wayneeseguin/sequel-model/issues/events{/number}","events_url":"https://api.github.com/repos/wayneeseguin/sequel-model/events","assignees_url":"https://api.github.com/repos/wayneeseguin/sequel-model/assignees{/user}","branches_url":"https://api.github.com/repos/wayneeseguin/sequel-model/branches{/branch}","tags_url":"https://api.github.com/repos/wayneeseguin/sequel-model/tags","blobs_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/refs{/sha}","trees_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wayneeseguin/sequel-model/statuses/{sha}","languages_url":"https://api.github.com/repos/wayneeseguin/sequel-model/languages","stargazers_url":"https://api.github.com/repos/wayneeseguin/sequel-model/stargazers","contributors_url":"https://api.github.com/repos/wayneeseguin/sequel-model/contributors","subscribers_url":"https://api.github.com/repos/wayneeseguin/sequel-model/subscribers","subscription_url":"https://api.github.com/repos/wayneeseguin/sequel-model/subscription","commits_url":"https://api.github.com/repos/wayneeseguin/sequel-model/commits{/sha}","git_commits_url":"https://api.github.com/repos/wayneeseguin/sequel-model/git/commits{/sha}","comments_url":"https://api.github.com/repos/wayneeseguin/sequel-model/comments{/number}","issue_comment_url":"https://api.github.com/repos/wayneeseguin/sequel-model/issues/comments/{number}","contents_url":"https://api.github.com/repos/wayneeseguin/sequel-model/contents/{+path}","compare_url":"https://api.github.com/repos/wayneeseguin/sequel-model/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wayneeseguin/sequel-model/merges","archive_url":"https://api.github.com/repos/wayneeseguin/sequel-model/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wayneeseguin/sequel-model/downloads","issues_url":"https://api.github.com/repos/wayneeseguin/sequel-model/issues{/number}","pulls_url":"https://api.github.com/repos/wayneeseguin/sequel-model/pulls{/number}","milestones_url":"https://api.github.com/repos/wayneeseguin/sequel-model/milestones{/number}","notifications_url":"https://api.github.com/repos/wayneeseguin/sequel-model/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wayneeseguin/sequel-model/labels{/name}"},{"id":305,"name":"god","full_name":"kevinclark/god","owner":{"login":"kevinclark","id":20,"avatar_url":"https://1.gravatar.com/avatar/6f792b946bbf30845314eb501da5e040?d=https%3A%2F%2Fidenticons.github.com%2F98f13708210194c475687be6106a3b84.png","gravatar_id":"6f792b946bbf30845314eb501da5e040","url":"https://api.github.com/users/kevinclark","html_url":"https://github.com/kevinclark","followers_url":"https://api.github.com/users/kevinclark/followers","following_url":"https://api.github.com/users/kevinclark/following{/other_user}","gists_url":"https://api.github.com/users/kevinclark/gists{/gist_id}","starred_url":"https://api.github.com/users/kevinclark/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kevinclark/subscriptions","organizations_url":"https://api.github.com/users/kevinclark/orgs","repos_url":"https://api.github.com/users/kevinclark/repos","events_url":"https://api.github.com/users/kevinclark/events{/privacy}","received_events_url":"https://api.github.com/users/kevinclark/received_events","type":"User"},"private":false,"html_url":"https://github.com/kevinclark/god","description":"Ruby process monitor","fork":true,"url":"https://api.github.com/repos/kevinclark/god","forks_url":"https://api.github.com/repos/kevinclark/god/forks","keys_url":"https://api.github.com/repos/kevinclark/god/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kevinclark/god/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kevinclark/god/teams","hooks_url":"https://api.github.com/repos/kevinclark/god/hooks","issue_events_url":"https://api.github.com/repos/kevinclark/god/issues/events{/number}","events_url":"https://api.github.com/repos/kevinclark/god/events","assignees_url":"https://api.github.com/repos/kevinclark/god/assignees{/user}","branches_url":"https://api.github.com/repos/kevinclark/god/branches{/branch}","tags_url":"https://api.github.com/repos/kevinclark/god/tags","blobs_url":"https://api.github.com/repos/kevinclark/god/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kevinclark/god/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kevinclark/god/git/refs{/sha}","trees_url":"https://api.github.com/repos/kevinclark/god/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kevinclark/god/statuses/{sha}","languages_url":"https://api.github.com/repos/kevinclark/god/languages","stargazers_url":"https://api.github.com/repos/kevinclark/god/stargazers","contributors_url":"https://api.github.com/repos/kevinclark/god/contributors","subscribers_url":"https://api.github.com/repos/kevinclark/god/subscribers","subscription_url":"https://api.github.com/repos/kevinclark/god/subscription","commits_url":"https://api.github.com/repos/kevinclark/god/commits{/sha}","git_commits_url":"https://api.github.com/repos/kevinclark/god/git/commits{/sha}","comments_url":"https://api.github.com/repos/kevinclark/god/comments{/number}","issue_comment_url":"https://api.github.com/repos/kevinclark/god/issues/comments/{number}","contents_url":"https://api.github.com/repos/kevinclark/god/contents/{+path}","compare_url":"https://api.github.com/repos/kevinclark/god/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kevinclark/god/merges","archive_url":"https://api.github.com/repos/kevinclark/god/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kevinclark/god/downloads","issues_url":"https://api.github.com/repos/kevinclark/god/issues{/number}","pulls_url":"https://api.github.com/repos/kevinclark/god/pulls{/number}","milestones_url":"https://api.github.com/repos/kevinclark/god/milestones{/number}","notifications_url":"https://api.github.com/repos/kevinclark/god/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kevinclark/god/labels{/name}"},{"id":307,"name":"blerb-core","full_name":"hornbeck/blerb-core","owner":{"login":"hornbeck","id":49,"avatar_url":"https://2.gravatar.com/avatar/47093444301bbde90d0aef5fa5c3ac86?d=https%3A%2F%2Fidenticons.github.com%2Ff457c545a9ded88f18ecee47145a72c0.png","gravatar_id":"47093444301bbde90d0aef5fa5c3ac86","url":"https://api.github.com/users/hornbeck","html_url":"https://github.com/hornbeck","followers_url":"https://api.github.com/users/hornbeck/followers","following_url":"https://api.github.com/users/hornbeck/following{/other_user}","gists_url":"https://api.github.com/users/hornbeck/gists{/gist_id}","starred_url":"https://api.github.com/users/hornbeck/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/hornbeck/subscriptions","organizations_url":"https://api.github.com/users/hornbeck/orgs","repos_url":"https://api.github.com/users/hornbeck/repos","events_url":"https://api.github.com/users/hornbeck/events{/privacy}","received_events_url":"https://api.github.com/users/hornbeck/received_events","type":"User"},"private":false,"html_url":"https://github.com/hornbeck/blerb-core","description":"blerb running on merb-core","fork":false,"url":"https://api.github.com/repos/hornbeck/blerb-core","forks_url":"https://api.github.com/repos/hornbeck/blerb-core/forks","keys_url":"https://api.github.com/repos/hornbeck/blerb-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/hornbeck/blerb-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/hornbeck/blerb-core/teams","hooks_url":"https://api.github.com/repos/hornbeck/blerb-core/hooks","issue_events_url":"https://api.github.com/repos/hornbeck/blerb-core/issues/events{/number}","events_url":"https://api.github.com/repos/hornbeck/blerb-core/events","assignees_url":"https://api.github.com/repos/hornbeck/blerb-core/assignees{/user}","branches_url":"https://api.github.com/repos/hornbeck/blerb-core/branches{/branch}","tags_url":"https://api.github.com/repos/hornbeck/blerb-core/tags","blobs_url":"https://api.github.com/repos/hornbeck/blerb-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/hornbeck/blerb-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/hornbeck/blerb-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/hornbeck/blerb-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/hornbeck/blerb-core/statuses/{sha}","languages_url":"https://api.github.com/repos/hornbeck/blerb-core/languages","stargazers_url":"https://api.github.com/repos/hornbeck/blerb-core/stargazers","contributors_url":"https://api.github.com/repos/hornbeck/blerb-core/contributors","subscribers_url":"https://api.github.com/repos/hornbeck/blerb-core/subscribers","subscription_url":"https://api.github.com/repos/hornbeck/blerb-core/subscription","commits_url":"https://api.github.com/repos/hornbeck/blerb-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/hornbeck/blerb-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/hornbeck/blerb-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/hornbeck/blerb-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/hornbeck/blerb-core/contents/{+path}","compare_url":"https://api.github.com/repos/hornbeck/blerb-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/hornbeck/blerb-core/merges","archive_url":"https://api.github.com/repos/hornbeck/blerb-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/hornbeck/blerb-core/downloads","issues_url":"https://api.github.com/repos/hornbeck/blerb-core/issues{/number}","pulls_url":"https://api.github.com/repos/hornbeck/blerb-core/pulls{/number}","milestones_url":"https://api.github.com/repos/hornbeck/blerb-core/milestones{/number}","notifications_url":"https://api.github.com/repos/hornbeck/blerb-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/hornbeck/blerb-core/labels{/name}"},{"id":312,"name":"django-mptt","full_name":"brosner/django-mptt","owner":{"login":"brosner","id":124,"avatar_url":"https://0.gravatar.com/avatar/b7472bc7aa45c70641c299e9408b78ab?d=https%3A%2F%2Fidenticons.github.com%2Fc8ffe9a587b126f152ed3d89a146b445.png","gravatar_id":"b7472bc7aa45c70641c299e9408b78ab","url":"https://api.github.com/users/brosner","html_url":"https://github.com/brosner","followers_url":"https://api.github.com/users/brosner/followers","following_url":"https://api.github.com/users/brosner/following{/other_user}","gists_url":"https://api.github.com/users/brosner/gists{/gist_id}","starred_url":"https://api.github.com/users/brosner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/brosner/subscriptions","organizations_url":"https://api.github.com/users/brosner/orgs","repos_url":"https://api.github.com/users/brosner/repos","events_url":"https://api.github.com/users/brosner/events{/privacy}","received_events_url":"https://api.github.com/users/brosner/received_events","type":"User"},"private":false,"html_url":"https://github.com/brosner/django-mptt","description":"utilities for implementing a modified pre-order traversal tree in django","fork":true,"url":"https://api.github.com/repos/brosner/django-mptt","forks_url":"https://api.github.com/repos/brosner/django-mptt/forks","keys_url":"https://api.github.com/repos/brosner/django-mptt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/brosner/django-mptt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/brosner/django-mptt/teams","hooks_url":"https://api.github.com/repos/brosner/django-mptt/hooks","issue_events_url":"https://api.github.com/repos/brosner/django-mptt/issues/events{/number}","events_url":"https://api.github.com/repos/brosner/django-mptt/events","assignees_url":"https://api.github.com/repos/brosner/django-mptt/assignees{/user}","branches_url":"https://api.github.com/repos/brosner/django-mptt/branches{/branch}","tags_url":"https://api.github.com/repos/brosner/django-mptt/tags","blobs_url":"https://api.github.com/repos/brosner/django-mptt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/brosner/django-mptt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/brosner/django-mptt/git/refs{/sha}","trees_url":"https://api.github.com/repos/brosner/django-mptt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/brosner/django-mptt/statuses/{sha}","languages_url":"https://api.github.com/repos/brosner/django-mptt/languages","stargazers_url":"https://api.github.com/repos/brosner/django-mptt/stargazers","contributors_url":"https://api.github.com/repos/brosner/django-mptt/contributors","subscribers_url":"https://api.github.com/repos/brosner/django-mptt/subscribers","subscription_url":"https://api.github.com/repos/brosner/django-mptt/subscription","commits_url":"https://api.github.com/repos/brosner/django-mptt/commits{/sha}","git_commits_url":"https://api.github.com/repos/brosner/django-mptt/git/commits{/sha}","comments_url":"https://api.github.com/repos/brosner/django-mptt/comments{/number}","issue_comment_url":"https://api.github.com/repos/brosner/django-mptt/issues/comments/{number}","contents_url":"https://api.github.com/repos/brosner/django-mptt/contents/{+path}","compare_url":"https://api.github.com/repos/brosner/django-mptt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/brosner/django-mptt/merges","archive_url":"https://api.github.com/repos/brosner/django-mptt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/brosner/django-mptt/downloads","issues_url":"https://api.github.com/repos/brosner/django-mptt/issues{/number}","pulls_url":"https://api.github.com/repos/brosner/django-mptt/pulls{/number}","milestones_url":"https://api.github.com/repos/brosner/django-mptt/milestones{/number}","notifications_url":"https://api.github.com/repos/brosner/django-mptt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/brosner/django-mptt/labels{/name}"},{"id":314,"name":"bus-scheme","full_name":"technomancy/bus-scheme","owner":{"login":"technomancy","id":141,"avatar_url":"https://2.gravatar.com/avatar/22788ec68b2aee512f8f4c5d8ae819ae?d=https%3A%2F%2Fidenticons.github.com%2F0f28b5d49b3020afeecd95b4009adf4c.png","gravatar_id":"22788ec68b2aee512f8f4c5d8ae819ae","url":"https://api.github.com/users/technomancy","html_url":"https://github.com/technomancy","followers_url":"https://api.github.com/users/technomancy/followers","following_url":"https://api.github.com/users/technomancy/following{/other_user}","gists_url":"https://api.github.com/users/technomancy/gists{/gist_id}","starred_url":"https://api.github.com/users/technomancy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technomancy/subscriptions","organizations_url":"https://api.github.com/users/technomancy/orgs","repos_url":"https://api.github.com/users/technomancy/repos","events_url":"https://api.github.com/users/technomancy/events{/privacy}","received_events_url":"https://api.github.com/users/technomancy/received_events","type":"User"},"private":false,"html_url":"https://github.com/technomancy/bus-scheme","description":"a Scheme written in Ruby, but implemented on the bus!","fork":false,"url":"https://api.github.com/repos/technomancy/bus-scheme","forks_url":"https://api.github.com/repos/technomancy/bus-scheme/forks","keys_url":"https://api.github.com/repos/technomancy/bus-scheme/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technomancy/bus-scheme/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technomancy/bus-scheme/teams","hooks_url":"https://api.github.com/repos/technomancy/bus-scheme/hooks","issue_events_url":"https://api.github.com/repos/technomancy/bus-scheme/issues/events{/number}","events_url":"https://api.github.com/repos/technomancy/bus-scheme/events","assignees_url":"https://api.github.com/repos/technomancy/bus-scheme/assignees{/user}","branches_url":"https://api.github.com/repos/technomancy/bus-scheme/branches{/branch}","tags_url":"https://api.github.com/repos/technomancy/bus-scheme/tags","blobs_url":"https://api.github.com/repos/technomancy/bus-scheme/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technomancy/bus-scheme/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technomancy/bus-scheme/git/refs{/sha}","trees_url":"https://api.github.com/repos/technomancy/bus-scheme/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technomancy/bus-scheme/statuses/{sha}","languages_url":"https://api.github.com/repos/technomancy/bus-scheme/languages","stargazers_url":"https://api.github.com/repos/technomancy/bus-scheme/stargazers","contributors_url":"https://api.github.com/repos/technomancy/bus-scheme/contributors","subscribers_url":"https://api.github.com/repos/technomancy/bus-scheme/subscribers","subscription_url":"https://api.github.com/repos/technomancy/bus-scheme/subscription","commits_url":"https://api.github.com/repos/technomancy/bus-scheme/commits{/sha}","git_commits_url":"https://api.github.com/repos/technomancy/bus-scheme/git/commits{/sha}","comments_url":"https://api.github.com/repos/technomancy/bus-scheme/comments{/number}","issue_comment_url":"https://api.github.com/repos/technomancy/bus-scheme/issues/comments/{number}","contents_url":"https://api.github.com/repos/technomancy/bus-scheme/contents/{+path}","compare_url":"https://api.github.com/repos/technomancy/bus-scheme/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technomancy/bus-scheme/merges","archive_url":"https://api.github.com/repos/technomancy/bus-scheme/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technomancy/bus-scheme/downloads","issues_url":"https://api.github.com/repos/technomancy/bus-scheme/issues{/number}","pulls_url":"https://api.github.com/repos/technomancy/bus-scheme/pulls{/number}","milestones_url":"https://api.github.com/repos/technomancy/bus-scheme/milestones{/number}","notifications_url":"https://api.github.com/repos/technomancy/bus-scheme/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technomancy/bus-scheme/labels{/name}"},{"id":319,"name":"javascript-bits","full_name":"Caged/javascript-bits","owner":{"login":"Caged","id":25,"avatar_url":"https://2.gravatar.com/avatar/97c3a8eea9b7eaa9e1e93ea3cd47399f?d=https%3A%2F%2Fidenticons.github.com%2F8e296a067a37563370ded05f5a3bf3ec.png","gravatar_id":"97c3a8eea9b7eaa9e1e93ea3cd47399f","url":"https://api.github.com/users/Caged","html_url":"https://github.com/Caged","followers_url":"https://api.github.com/users/Caged/followers","following_url":"https://api.github.com/users/Caged/following{/other_user}","gists_url":"https://api.github.com/users/Caged/gists{/gist_id}","starred_url":"https://api.github.com/users/Caged/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Caged/subscriptions","organizations_url":"https://api.github.com/users/Caged/orgs","repos_url":"https://api.github.com/users/Caged/repos","events_url":"https://api.github.com/users/Caged/events{/privacy}","received_events_url":"https://api.github.com/users/Caged/received_events","type":"User"},"private":false,"html_url":"https://github.com/Caged/javascript-bits","description":"Useful pieces of JavaScript. Some old, some new.","fork":false,"url":"https://api.github.com/repos/Caged/javascript-bits","forks_url":"https://api.github.com/repos/Caged/javascript-bits/forks","keys_url":"https://api.github.com/repos/Caged/javascript-bits/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Caged/javascript-bits/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Caged/javascript-bits/teams","hooks_url":"https://api.github.com/repos/Caged/javascript-bits/hooks","issue_events_url":"https://api.github.com/repos/Caged/javascript-bits/issues/events{/number}","events_url":"https://api.github.com/repos/Caged/javascript-bits/events","assignees_url":"https://api.github.com/repos/Caged/javascript-bits/assignees{/user}","branches_url":"https://api.github.com/repos/Caged/javascript-bits/branches{/branch}","tags_url":"https://api.github.com/repos/Caged/javascript-bits/tags","blobs_url":"https://api.github.com/repos/Caged/javascript-bits/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Caged/javascript-bits/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Caged/javascript-bits/git/refs{/sha}","trees_url":"https://api.github.com/repos/Caged/javascript-bits/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Caged/javascript-bits/statuses/{sha}","languages_url":"https://api.github.com/repos/Caged/javascript-bits/languages","stargazers_url":"https://api.github.com/repos/Caged/javascript-bits/stargazers","contributors_url":"https://api.github.com/repos/Caged/javascript-bits/contributors","subscribers_url":"https://api.github.com/repos/Caged/javascript-bits/subscribers","subscription_url":"https://api.github.com/repos/Caged/javascript-bits/subscription","commits_url":"https://api.github.com/repos/Caged/javascript-bits/commits{/sha}","git_commits_url":"https://api.github.com/repos/Caged/javascript-bits/git/commits{/sha}","comments_url":"https://api.github.com/repos/Caged/javascript-bits/comments{/number}","issue_comment_url":"https://api.github.com/repos/Caged/javascript-bits/issues/comments/{number}","contents_url":"https://api.github.com/repos/Caged/javascript-bits/contents/{+path}","compare_url":"https://api.github.com/repos/Caged/javascript-bits/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Caged/javascript-bits/merges","archive_url":"https://api.github.com/repos/Caged/javascript-bits/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Caged/javascript-bits/downloads","issues_url":"https://api.github.com/repos/Caged/javascript-bits/issues{/number}","pulls_url":"https://api.github.com/repos/Caged/javascript-bits/pulls{/number}","milestones_url":"https://api.github.com/repos/Caged/javascript-bits/milestones{/number}","notifications_url":"https://api.github.com/repos/Caged/javascript-bits/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Caged/javascript-bits/labels{/name}"},{"id":320,"name":"groomlake","full_name":"Caged/groomlake","owner":{"login":"Caged","id":25,"avatar_url":"https://2.gravatar.com/avatar/97c3a8eea9b7eaa9e1e93ea3cd47399f?d=https%3A%2F%2Fidenticons.github.com%2F8e296a067a37563370ded05f5a3bf3ec.png","gravatar_id":"97c3a8eea9b7eaa9e1e93ea3cd47399f","url":"https://api.github.com/users/Caged","html_url":"https://github.com/Caged","followers_url":"https://api.github.com/users/Caged/followers","following_url":"https://api.github.com/users/Caged/following{/other_user}","gists_url":"https://api.github.com/users/Caged/gists{/gist_id}","starred_url":"https://api.github.com/users/Caged/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Caged/subscriptions","organizations_url":"https://api.github.com/users/Caged/orgs","repos_url":"https://api.github.com/users/Caged/repos","events_url":"https://api.github.com/users/Caged/events{/privacy}","received_events_url":"https://api.github.com/users/Caged/received_events","type":"User"},"private":false,"html_url":"https://github.com/Caged/groomlake","description":"Ruby parsers for some Adobe file formats.","fork":false,"url":"https://api.github.com/repos/Caged/groomlake","forks_url":"https://api.github.com/repos/Caged/groomlake/forks","keys_url":"https://api.github.com/repos/Caged/groomlake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Caged/groomlake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Caged/groomlake/teams","hooks_url":"https://api.github.com/repos/Caged/groomlake/hooks","issue_events_url":"https://api.github.com/repos/Caged/groomlake/issues/events{/number}","events_url":"https://api.github.com/repos/Caged/groomlake/events","assignees_url":"https://api.github.com/repos/Caged/groomlake/assignees{/user}","branches_url":"https://api.github.com/repos/Caged/groomlake/branches{/branch}","tags_url":"https://api.github.com/repos/Caged/groomlake/tags","blobs_url":"https://api.github.com/repos/Caged/groomlake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Caged/groomlake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Caged/groomlake/git/refs{/sha}","trees_url":"https://api.github.com/repos/Caged/groomlake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Caged/groomlake/statuses/{sha}","languages_url":"https://api.github.com/repos/Caged/groomlake/languages","stargazers_url":"https://api.github.com/repos/Caged/groomlake/stargazers","contributors_url":"https://api.github.com/repos/Caged/groomlake/contributors","subscribers_url":"https://api.github.com/repos/Caged/groomlake/subscribers","subscription_url":"https://api.github.com/repos/Caged/groomlake/subscription","commits_url":"https://api.github.com/repos/Caged/groomlake/commits{/sha}","git_commits_url":"https://api.github.com/repos/Caged/groomlake/git/commits{/sha}","comments_url":"https://api.github.com/repos/Caged/groomlake/comments{/number}","issue_comment_url":"https://api.github.com/repos/Caged/groomlake/issues/comments/{number}","contents_url":"https://api.github.com/repos/Caged/groomlake/contents/{+path}","compare_url":"https://api.github.com/repos/Caged/groomlake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Caged/groomlake/merges","archive_url":"https://api.github.com/repos/Caged/groomlake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Caged/groomlake/downloads","issues_url":"https://api.github.com/repos/Caged/groomlake/issues{/number}","pulls_url":"https://api.github.com/repos/Caged/groomlake/pulls{/number}","milestones_url":"https://api.github.com/repos/Caged/groomlake/milestones{/number}","notifications_url":"https://api.github.com/repos/Caged/groomlake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Caged/groomlake/labels{/name}"},{"id":322,"name":"forgery","full_name":"sevenwire/forgery","owner":{"login":"sevenwire","id":150,"avatar_url":"https://1.gravatar.com/avatar/2d699571a445b9a9205779628fe9a818?d=https%3A%2F%2Fidenticons.github.com%2F7ef605fc8dba5425d6965fbd4c8fbe1f.png","gravatar_id":"2d699571a445b9a9205779628fe9a818","url":"https://api.github.com/users/sevenwire","html_url":"https://github.com/sevenwire","followers_url":"https://api.github.com/users/sevenwire/followers","following_url":"https://api.github.com/users/sevenwire/following{/other_user}","gists_url":"https://api.github.com/users/sevenwire/gists{/gist_id}","starred_url":"https://api.github.com/users/sevenwire/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sevenwire/subscriptions","organizations_url":"https://api.github.com/users/sevenwire/orgs","repos_url":"https://api.github.com/users/sevenwire/repos","events_url":"https://api.github.com/users/sevenwire/events{/privacy}","received_events_url":"https://api.github.com/users/sevenwire/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/sevenwire/forgery","description":"Easy and customizable generation of forged data.","fork":false,"url":"https://api.github.com/repos/sevenwire/forgery","forks_url":"https://api.github.com/repos/sevenwire/forgery/forks","keys_url":"https://api.github.com/repos/sevenwire/forgery/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sevenwire/forgery/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sevenwire/forgery/teams","hooks_url":"https://api.github.com/repos/sevenwire/forgery/hooks","issue_events_url":"https://api.github.com/repos/sevenwire/forgery/issues/events{/number}","events_url":"https://api.github.com/repos/sevenwire/forgery/events","assignees_url":"https://api.github.com/repos/sevenwire/forgery/assignees{/user}","branches_url":"https://api.github.com/repos/sevenwire/forgery/branches{/branch}","tags_url":"https://api.github.com/repos/sevenwire/forgery/tags","blobs_url":"https://api.github.com/repos/sevenwire/forgery/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sevenwire/forgery/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sevenwire/forgery/git/refs{/sha}","trees_url":"https://api.github.com/repos/sevenwire/forgery/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sevenwire/forgery/statuses/{sha}","languages_url":"https://api.github.com/repos/sevenwire/forgery/languages","stargazers_url":"https://api.github.com/repos/sevenwire/forgery/stargazers","contributors_url":"https://api.github.com/repos/sevenwire/forgery/contributors","subscribers_url":"https://api.github.com/repos/sevenwire/forgery/subscribers","subscription_url":"https://api.github.com/repos/sevenwire/forgery/subscription","commits_url":"https://api.github.com/repos/sevenwire/forgery/commits{/sha}","git_commits_url":"https://api.github.com/repos/sevenwire/forgery/git/commits{/sha}","comments_url":"https://api.github.com/repos/sevenwire/forgery/comments{/number}","issue_comment_url":"https://api.github.com/repos/sevenwire/forgery/issues/comments/{number}","contents_url":"https://api.github.com/repos/sevenwire/forgery/contents/{+path}","compare_url":"https://api.github.com/repos/sevenwire/forgery/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sevenwire/forgery/merges","archive_url":"https://api.github.com/repos/sevenwire/forgery/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sevenwire/forgery/downloads","issues_url":"https://api.github.com/repos/sevenwire/forgery/issues{/number}","pulls_url":"https://api.github.com/repos/sevenwire/forgery/pulls{/number}","milestones_url":"https://api.github.com/repos/sevenwire/forgery/milestones{/number}","notifications_url":"https://api.github.com/repos/sevenwire/forgery/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sevenwire/forgery/labels{/name}"},{"id":324,"name":"ambitious-sphinx","full_name":"technicalpickles/ambitious-sphinx","owner":{"login":"technicalpickles","id":159,"avatar_url":"https://0.gravatar.com/avatar/1c1aabc1abed5cce37b192dd00f0f28c?d=https%3A%2F%2Fidenticons.github.com%2F140f6969d5213fd0ece03148e62e461e.png","gravatar_id":"1c1aabc1abed5cce37b192dd00f0f28c","url":"https://api.github.com/users/technicalpickles","html_url":"https://github.com/technicalpickles","followers_url":"https://api.github.com/users/technicalpickles/followers","following_url":"https://api.github.com/users/technicalpickles/following{/other_user}","gists_url":"https://api.github.com/users/technicalpickles/gists{/gist_id}","starred_url":"https://api.github.com/users/technicalpickles/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/technicalpickles/subscriptions","organizations_url":"https://api.github.com/users/technicalpickles/orgs","repos_url":"https://api.github.com/users/technicalpickles/repos","events_url":"https://api.github.com/users/technicalpickles/events{/privacy}","received_events_url":"https://api.github.com/users/technicalpickles/received_events","type":"User"},"private":false,"html_url":"https://github.com/technicalpickles/ambitious-sphinx","description":"Ambition adapter for Sphinx","fork":false,"url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx","forks_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/forks","keys_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/keys{/key_id}","collaborators_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/teams","hooks_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/hooks","issue_events_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/issues/events{/number}","events_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/events","assignees_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/assignees{/user}","branches_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/branches{/branch}","tags_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/tags","blobs_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/refs{/sha}","trees_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/trees{/sha}","statuses_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/statuses/{sha}","languages_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/languages","stargazers_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/stargazers","contributors_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/contributors","subscribers_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/subscribers","subscription_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/subscription","commits_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/commits{/sha}","git_commits_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/git/commits{/sha}","comments_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/comments{/number}","issue_comment_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/issues/comments/{number}","contents_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/contents/{+path}","compare_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/compare/{base}...{head}","merges_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/merges","archive_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/downloads","issues_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/issues{/number}","pulls_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/pulls{/number}","milestones_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/milestones{/number}","notifications_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/technicalpickles/ambitious-sphinx/labels{/name}"},{"id":329,"name":"soup","full_name":"lazyatom/soup","owner":{"login":"lazyatom","id":145,"avatar_url":"https://0.gravatar.com/avatar/acd62030df551952268e84c8fff26a5b?d=https%3A%2F%2Fidenticons.github.com%2F2b24d495052a8ce66358eb576b8912c8.png","gravatar_id":"acd62030df551952268e84c8fff26a5b","url":"https://api.github.com/users/lazyatom","html_url":"https://github.com/lazyatom","followers_url":"https://api.github.com/users/lazyatom/followers","following_url":"https://api.github.com/users/lazyatom/following{/other_user}","gists_url":"https://api.github.com/users/lazyatom/gists{/gist_id}","starred_url":"https://api.github.com/users/lazyatom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lazyatom/subscriptions","organizations_url":"https://api.github.com/users/lazyatom/orgs","repos_url":"https://api.github.com/users/lazyatom/repos","events_url":"https://api.github.com/users/lazyatom/events{/privacy}","received_events_url":"https://api.github.com/users/lazyatom/received_events","type":"User"},"private":false,"html_url":"https://github.com/lazyatom/soup","description":"I suppose it's a document database. Or a tuple store. But really, it's just data sloshing around, waiting to be used.","fork":false,"url":"https://api.github.com/repos/lazyatom/soup","forks_url":"https://api.github.com/repos/lazyatom/soup/forks","keys_url":"https://api.github.com/repos/lazyatom/soup/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lazyatom/soup/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lazyatom/soup/teams","hooks_url":"https://api.github.com/repos/lazyatom/soup/hooks","issue_events_url":"https://api.github.com/repos/lazyatom/soup/issues/events{/number}","events_url":"https://api.github.com/repos/lazyatom/soup/events","assignees_url":"https://api.github.com/repos/lazyatom/soup/assignees{/user}","branches_url":"https://api.github.com/repos/lazyatom/soup/branches{/branch}","tags_url":"https://api.github.com/repos/lazyatom/soup/tags","blobs_url":"https://api.github.com/repos/lazyatom/soup/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lazyatom/soup/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lazyatom/soup/git/refs{/sha}","trees_url":"https://api.github.com/repos/lazyatom/soup/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lazyatom/soup/statuses/{sha}","languages_url":"https://api.github.com/repos/lazyatom/soup/languages","stargazers_url":"https://api.github.com/repos/lazyatom/soup/stargazers","contributors_url":"https://api.github.com/repos/lazyatom/soup/contributors","subscribers_url":"https://api.github.com/repos/lazyatom/soup/subscribers","subscription_url":"https://api.github.com/repos/lazyatom/soup/subscription","commits_url":"https://api.github.com/repos/lazyatom/soup/commits{/sha}","git_commits_url":"https://api.github.com/repos/lazyatom/soup/git/commits{/sha}","comments_url":"https://api.github.com/repos/lazyatom/soup/comments{/number}","issue_comment_url":"https://api.github.com/repos/lazyatom/soup/issues/comments/{number}","contents_url":"https://api.github.com/repos/lazyatom/soup/contents/{+path}","compare_url":"https://api.github.com/repos/lazyatom/soup/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lazyatom/soup/merges","archive_url":"https://api.github.com/repos/lazyatom/soup/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lazyatom/soup/downloads","issues_url":"https://api.github.com/repos/lazyatom/soup/issues{/number}","pulls_url":"https://api.github.com/repos/lazyatom/soup/pulls{/number}","milestones_url":"https://api.github.com/repos/lazyatom/soup/milestones{/number}","notifications_url":"https://api.github.com/repos/lazyatom/soup/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lazyatom/soup/labels{/name}"},{"id":332,"name":"rails","full_name":"josh/rails","owner":{"login":"josh","id":137,"avatar_url":"https://2.gravatar.com/avatar/bbe5dc8dcf248706525ab76f46185520?d=https%3A%2F%2Fidenticons.github.com%2F3988c7f88ebcb58c6ce932b957b6f332.png","gravatar_id":"bbe5dc8dcf248706525ab76f46185520","url":"https://api.github.com/users/josh","html_url":"https://github.com/josh","followers_url":"https://api.github.com/users/josh/followers","following_url":"https://api.github.com/users/josh/following{/other_user}","gists_url":"https://api.github.com/users/josh/gists{/gist_id}","starred_url":"https://api.github.com/users/josh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/josh/subscriptions","organizations_url":"https://api.github.com/users/josh/orgs","repos_url":"https://api.github.com/users/josh/repos","events_url":"https://api.github.com/users/josh/events{/privacy}","received_events_url":"https://api.github.com/users/josh/received_events","type":"User"},"private":false,"html_url":"https://github.com/josh/rails","description":"Ruby on Rails","fork":true,"url":"https://api.github.com/repos/josh/rails","forks_url":"https://api.github.com/repos/josh/rails/forks","keys_url":"https://api.github.com/repos/josh/rails/keys{/key_id}","collaborators_url":"https://api.github.com/repos/josh/rails/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/josh/rails/teams","hooks_url":"https://api.github.com/repos/josh/rails/hooks","issue_events_url":"https://api.github.com/repos/josh/rails/issues/events{/number}","events_url":"https://api.github.com/repos/josh/rails/events","assignees_url":"https://api.github.com/repos/josh/rails/assignees{/user}","branches_url":"https://api.github.com/repos/josh/rails/branches{/branch}","tags_url":"https://api.github.com/repos/josh/rails/tags","blobs_url":"https://api.github.com/repos/josh/rails/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/josh/rails/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/josh/rails/git/refs{/sha}","trees_url":"https://api.github.com/repos/josh/rails/git/trees{/sha}","statuses_url":"https://api.github.com/repos/josh/rails/statuses/{sha}","languages_url":"https://api.github.com/repos/josh/rails/languages","stargazers_url":"https://api.github.com/repos/josh/rails/stargazers","contributors_url":"https://api.github.com/repos/josh/rails/contributors","subscribers_url":"https://api.github.com/repos/josh/rails/subscribers","subscription_url":"https://api.github.com/repos/josh/rails/subscription","commits_url":"https://api.github.com/repos/josh/rails/commits{/sha}","git_commits_url":"https://api.github.com/repos/josh/rails/git/commits{/sha}","comments_url":"https://api.github.com/repos/josh/rails/comments{/number}","issue_comment_url":"https://api.github.com/repos/josh/rails/issues/comments/{number}","contents_url":"https://api.github.com/repos/josh/rails/contents/{+path}","compare_url":"https://api.github.com/repos/josh/rails/compare/{base}...{head}","merges_url":"https://api.github.com/repos/josh/rails/merges","archive_url":"https://api.github.com/repos/josh/rails/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/josh/rails/downloads","issues_url":"https://api.github.com/repos/josh/rails/issues{/number}","pulls_url":"https://api.github.com/repos/josh/rails/pulls{/number}","milestones_url":"https://api.github.com/repos/josh/rails/milestones{/number}","notifications_url":"https://api.github.com/repos/josh/rails/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/josh/rails/labels{/name}"},{"id":334,"name":"backpacking","full_name":"cdcarter/backpacking","owner":{"login":"cdcarter","id":164,"avatar_url":"https://1.gravatar.com/avatar/96931bfe0c2948f47a98e15ae52e5637?d=https%3A%2F%2Fidenticons.github.com%2Ffa7cdfad1a5aaf8370ebeda47a1ff1c3.png","gravatar_id":"96931bfe0c2948f47a98e15ae52e5637","url":"https://api.github.com/users/cdcarter","html_url":"https://github.com/cdcarter","followers_url":"https://api.github.com/users/cdcarter/followers","following_url":"https://api.github.com/users/cdcarter/following{/other_user}","gists_url":"https://api.github.com/users/cdcarter/gists{/gist_id}","starred_url":"https://api.github.com/users/cdcarter/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cdcarter/subscriptions","organizations_url":"https://api.github.com/users/cdcarter/orgs","repos_url":"https://api.github.com/users/cdcarter/repos","events_url":"https://api.github.com/users/cdcarter/events{/privacy}","received_events_url":"https://api.github.com/users/cdcarter/received_events","type":"User"},"private":false,"html_url":"https://github.com/cdcarter/backpacking","description":"An Io web framework of sorts","fork":false,"url":"https://api.github.com/repos/cdcarter/backpacking","forks_url":"https://api.github.com/repos/cdcarter/backpacking/forks","keys_url":"https://api.github.com/repos/cdcarter/backpacking/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cdcarter/backpacking/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cdcarter/backpacking/teams","hooks_url":"https://api.github.com/repos/cdcarter/backpacking/hooks","issue_events_url":"https://api.github.com/repos/cdcarter/backpacking/issues/events{/number}","events_url":"https://api.github.com/repos/cdcarter/backpacking/events","assignees_url":"https://api.github.com/repos/cdcarter/backpacking/assignees{/user}","branches_url":"https://api.github.com/repos/cdcarter/backpacking/branches{/branch}","tags_url":"https://api.github.com/repos/cdcarter/backpacking/tags","blobs_url":"https://api.github.com/repos/cdcarter/backpacking/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cdcarter/backpacking/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cdcarter/backpacking/git/refs{/sha}","trees_url":"https://api.github.com/repos/cdcarter/backpacking/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cdcarter/backpacking/statuses/{sha}","languages_url":"https://api.github.com/repos/cdcarter/backpacking/languages","stargazers_url":"https://api.github.com/repos/cdcarter/backpacking/stargazers","contributors_url":"https://api.github.com/repos/cdcarter/backpacking/contributors","subscribers_url":"https://api.github.com/repos/cdcarter/backpacking/subscribers","subscription_url":"https://api.github.com/repos/cdcarter/backpacking/subscription","commits_url":"https://api.github.com/repos/cdcarter/backpacking/commits{/sha}","git_commits_url":"https://api.github.com/repos/cdcarter/backpacking/git/commits{/sha}","comments_url":"https://api.github.com/repos/cdcarter/backpacking/comments{/number}","issue_comment_url":"https://api.github.com/repos/cdcarter/backpacking/issues/comments/{number}","contents_url":"https://api.github.com/repos/cdcarter/backpacking/contents/{+path}","compare_url":"https://api.github.com/repos/cdcarter/backpacking/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cdcarter/backpacking/merges","archive_url":"https://api.github.com/repos/cdcarter/backpacking/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cdcarter/backpacking/downloads","issues_url":"https://api.github.com/repos/cdcarter/backpacking/issues{/number}","pulls_url":"https://api.github.com/repos/cdcarter/backpacking/pulls{/number}","milestones_url":"https://api.github.com/repos/cdcarter/backpacking/milestones{/number}","notifications_url":"https://api.github.com/repos/cdcarter/backpacking/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cdcarter/backpacking/labels{/name}"},{"id":339,"name":"capsize","full_name":"jnewland/capsize","owner":{"login":"jnewland","id":47,"avatar_url":"https://1.gravatar.com/avatar/f317439da90c3176adc8938bcf5181ff?d=https%3A%2F%2Fidenticons.github.com%2F67c6a1e7ce56d3d6fa748ab6d9af3fd7.png","gravatar_id":"f317439da90c3176adc8938bcf5181ff","url":"https://api.github.com/users/jnewland","html_url":"https://github.com/jnewland","followers_url":"https://api.github.com/users/jnewland/followers","following_url":"https://api.github.com/users/jnewland/following{/other_user}","gists_url":"https://api.github.com/users/jnewland/gists{/gist_id}","starred_url":"https://api.github.com/users/jnewland/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jnewland/subscriptions","organizations_url":"https://api.github.com/users/jnewland/orgs","repos_url":"https://api.github.com/users/jnewland/repos","events_url":"https://api.github.com/users/jnewland/events{/privacy}","received_events_url":"https://api.github.com/users/jnewland/received_events","type":"User"},"private":false,"html_url":"https://github.com/jnewland/capsize","description":"A Capistrano extension for managing and running your app on Amazon EC2.","fork":false,"url":"https://api.github.com/repos/jnewland/capsize","forks_url":"https://api.github.com/repos/jnewland/capsize/forks","keys_url":"https://api.github.com/repos/jnewland/capsize/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jnewland/capsize/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jnewland/capsize/teams","hooks_url":"https://api.github.com/repos/jnewland/capsize/hooks","issue_events_url":"https://api.github.com/repos/jnewland/capsize/issues/events{/number}","events_url":"https://api.github.com/repos/jnewland/capsize/events","assignees_url":"https://api.github.com/repos/jnewland/capsize/assignees{/user}","branches_url":"https://api.github.com/repos/jnewland/capsize/branches{/branch}","tags_url":"https://api.github.com/repos/jnewland/capsize/tags","blobs_url":"https://api.github.com/repos/jnewland/capsize/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jnewland/capsize/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jnewland/capsize/git/refs{/sha}","trees_url":"https://api.github.com/repos/jnewland/capsize/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jnewland/capsize/statuses/{sha}","languages_url":"https://api.github.com/repos/jnewland/capsize/languages","stargazers_url":"https://api.github.com/repos/jnewland/capsize/stargazers","contributors_url":"https://api.github.com/repos/jnewland/capsize/contributors","subscribers_url":"https://api.github.com/repos/jnewland/capsize/subscribers","subscription_url":"https://api.github.com/repos/jnewland/capsize/subscription","commits_url":"https://api.github.com/repos/jnewland/capsize/commits{/sha}","git_commits_url":"https://api.github.com/repos/jnewland/capsize/git/commits{/sha}","comments_url":"https://api.github.com/repos/jnewland/capsize/comments{/number}","issue_comment_url":"https://api.github.com/repos/jnewland/capsize/issues/comments/{number}","contents_url":"https://api.github.com/repos/jnewland/capsize/contents/{+path}","compare_url":"https://api.github.com/repos/jnewland/capsize/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jnewland/capsize/merges","archive_url":"https://api.github.com/repos/jnewland/capsize/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jnewland/capsize/downloads","issues_url":"https://api.github.com/repos/jnewland/capsize/issues{/number}","pulls_url":"https://api.github.com/repos/jnewland/capsize/pulls{/number}","milestones_url":"https://api.github.com/repos/jnewland/capsize/milestones{/number}","notifications_url":"https://api.github.com/repos/jnewland/capsize/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jnewland/capsize/labels{/name}"},{"id":351,"name":"starling","full_name":"bs/starling","owner":{"login":"bs","id":68,"avatar_url":"https://0.gravatar.com/avatar/e9abc07e644756d917e9de193236fd39?d=https%3A%2F%2Fidenticons.github.com%2Fa3f390d88e4c41f2747bfa2f1b5f87db.png","gravatar_id":"e9abc07e644756d917e9de193236fd39","url":"https://api.github.com/users/bs","html_url":"https://github.com/bs","followers_url":"https://api.github.com/users/bs/followers","following_url":"https://api.github.com/users/bs/following{/other_user}","gists_url":"https://api.github.com/users/bs/gists{/gist_id}","starred_url":"https://api.github.com/users/bs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bs/subscriptions","organizations_url":"https://api.github.com/users/bs/orgs","repos_url":"https://api.github.com/users/bs/repos","events_url":"https://api.github.com/users/bs/events{/privacy}","received_events_url":"https://api.github.com/users/bs/received_events","type":"User"},"private":false,"html_url":"https://github.com/bs/starling","description":"Starling Message Queue","fork":false,"url":"https://api.github.com/repos/bs/starling","forks_url":"https://api.github.com/repos/bs/starling/forks","keys_url":"https://api.github.com/repos/bs/starling/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bs/starling/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bs/starling/teams","hooks_url":"https://api.github.com/repos/bs/starling/hooks","issue_events_url":"https://api.github.com/repos/bs/starling/issues/events{/number}","events_url":"https://api.github.com/repos/bs/starling/events","assignees_url":"https://api.github.com/repos/bs/starling/assignees{/user}","branches_url":"https://api.github.com/repos/bs/starling/branches{/branch}","tags_url":"https://api.github.com/repos/bs/starling/tags","blobs_url":"https://api.github.com/repos/bs/starling/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bs/starling/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bs/starling/git/refs{/sha}","trees_url":"https://api.github.com/repos/bs/starling/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bs/starling/statuses/{sha}","languages_url":"https://api.github.com/repos/bs/starling/languages","stargazers_url":"https://api.github.com/repos/bs/starling/stargazers","contributors_url":"https://api.github.com/repos/bs/starling/contributors","subscribers_url":"https://api.github.com/repos/bs/starling/subscribers","subscription_url":"https://api.github.com/repos/bs/starling/subscription","commits_url":"https://api.github.com/repos/bs/starling/commits{/sha}","git_commits_url":"https://api.github.com/repos/bs/starling/git/commits{/sha}","comments_url":"https://api.github.com/repos/bs/starling/comments{/number}","issue_comment_url":"https://api.github.com/repos/bs/starling/issues/comments/{number}","contents_url":"https://api.github.com/repos/bs/starling/contents/{+path}","compare_url":"https://api.github.com/repos/bs/starling/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bs/starling/merges","archive_url":"https://api.github.com/repos/bs/starling/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bs/starling/downloads","issues_url":"https://api.github.com/repos/bs/starling/issues{/number}","pulls_url":"https://api.github.com/repos/bs/starling/pulls{/number}","milestones_url":"https://api.github.com/repos/bs/starling/milestones{/number}","notifications_url":"https://api.github.com/repos/bs/starling/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bs/starling/labels{/name}"},{"id":360,"name":"ape","full_name":"sr/ape","owner":{"login":"sr","id":90,"avatar_url":"https://1.gravatar.com/avatar/8e0adf6f8274375b90a180d256d73bad?d=https%3A%2F%2Fidenticons.github.com%2F8613985ec49eb8f757ae6439e879bb2a.png","gravatar_id":"8e0adf6f8274375b90a180d256d73bad","url":"https://api.github.com/users/sr","html_url":"https://github.com/sr","followers_url":"https://api.github.com/users/sr/followers","following_url":"https://api.github.com/users/sr/following{/other_user}","gists_url":"https://api.github.com/users/sr/gists{/gist_id}","starred_url":"https://api.github.com/users/sr/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sr/subscriptions","organizations_url":"https://api.github.com/users/sr/orgs","repos_url":"https://api.github.com/users/sr/repos","events_url":"https://api.github.com/users/sr/events{/privacy}","received_events_url":"https://api.github.com/users/sr/received_events","type":"User"},"private":false,"html_url":"https://github.com/sr/ape","description":"The Atom Protocol Exerciser","fork":false,"url":"https://api.github.com/repos/sr/ape","forks_url":"https://api.github.com/repos/sr/ape/forks","keys_url":"https://api.github.com/repos/sr/ape/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sr/ape/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sr/ape/teams","hooks_url":"https://api.github.com/repos/sr/ape/hooks","issue_events_url":"https://api.github.com/repos/sr/ape/issues/events{/number}","events_url":"https://api.github.com/repos/sr/ape/events","assignees_url":"https://api.github.com/repos/sr/ape/assignees{/user}","branches_url":"https://api.github.com/repos/sr/ape/branches{/branch}","tags_url":"https://api.github.com/repos/sr/ape/tags","blobs_url":"https://api.github.com/repos/sr/ape/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sr/ape/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sr/ape/git/refs{/sha}","trees_url":"https://api.github.com/repos/sr/ape/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sr/ape/statuses/{sha}","languages_url":"https://api.github.com/repos/sr/ape/languages","stargazers_url":"https://api.github.com/repos/sr/ape/stargazers","contributors_url":"https://api.github.com/repos/sr/ape/contributors","subscribers_url":"https://api.github.com/repos/sr/ape/subscribers","subscription_url":"https://api.github.com/repos/sr/ape/subscription","commits_url":"https://api.github.com/repos/sr/ape/commits{/sha}","git_commits_url":"https://api.github.com/repos/sr/ape/git/commits{/sha}","comments_url":"https://api.github.com/repos/sr/ape/comments{/number}","issue_comment_url":"https://api.github.com/repos/sr/ape/issues/comments/{number}","contents_url":"https://api.github.com/repos/sr/ape/contents/{+path}","compare_url":"https://api.github.com/repos/sr/ape/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sr/ape/merges","archive_url":"https://api.github.com/repos/sr/ape/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sr/ape/downloads","issues_url":"https://api.github.com/repos/sr/ape/issues{/number}","pulls_url":"https://api.github.com/repos/sr/ape/pulls{/number}","milestones_url":"https://api.github.com/repos/sr/ape/milestones{/number}","notifications_url":"https://api.github.com/repos/sr/ape/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sr/ape/labels{/name}"},{"id":362,"name":"awesomeness","full_name":"collectiveidea/awesomeness","owner":{"login":"collectiveidea","id":128,"avatar_url":"https://2.gravatar.com/avatar/13ff8dc8c2bf2a4752816e1e3f201a05?d=https%3A%2F%2Fidenticons.github.com%2F76dc611d6ebaafc66cc0879c71b5db5c.png","gravatar_id":"13ff8dc8c2bf2a4752816e1e3f201a05","url":"https://api.github.com/users/collectiveidea","html_url":"https://github.com/collectiveidea","followers_url":"https://api.github.com/users/collectiveidea/followers","following_url":"https://api.github.com/users/collectiveidea/following{/other_user}","gists_url":"https://api.github.com/users/collectiveidea/gists{/gist_id}","starred_url":"https://api.github.com/users/collectiveidea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/collectiveidea/subscriptions","organizations_url":"https://api.github.com/users/collectiveidea/orgs","repos_url":"https://api.github.com/users/collectiveidea/repos","events_url":"https://api.github.com/users/collectiveidea/events{/privacy}","received_events_url":"https://api.github.com/users/collectiveidea/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/collectiveidea/awesomeness","description":"Collective Idea's Awesomeness. A collection of useful Rails bits and pieces.","fork":false,"url":"https://api.github.com/repos/collectiveidea/awesomeness","forks_url":"https://api.github.com/repos/collectiveidea/awesomeness/forks","keys_url":"https://api.github.com/repos/collectiveidea/awesomeness/keys{/key_id}","collaborators_url":"https://api.github.com/repos/collectiveidea/awesomeness/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/collectiveidea/awesomeness/teams","hooks_url":"https://api.github.com/repos/collectiveidea/awesomeness/hooks","issue_events_url":"https://api.github.com/repos/collectiveidea/awesomeness/issues/events{/number}","events_url":"https://api.github.com/repos/collectiveidea/awesomeness/events","assignees_url":"https://api.github.com/repos/collectiveidea/awesomeness/assignees{/user}","branches_url":"https://api.github.com/repos/collectiveidea/awesomeness/branches{/branch}","tags_url":"https://api.github.com/repos/collectiveidea/awesomeness/tags","blobs_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/refs{/sha}","trees_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/trees{/sha}","statuses_url":"https://api.github.com/repos/collectiveidea/awesomeness/statuses/{sha}","languages_url":"https://api.github.com/repos/collectiveidea/awesomeness/languages","stargazers_url":"https://api.github.com/repos/collectiveidea/awesomeness/stargazers","contributors_url":"https://api.github.com/repos/collectiveidea/awesomeness/contributors","subscribers_url":"https://api.github.com/repos/collectiveidea/awesomeness/subscribers","subscription_url":"https://api.github.com/repos/collectiveidea/awesomeness/subscription","commits_url":"https://api.github.com/repos/collectiveidea/awesomeness/commits{/sha}","git_commits_url":"https://api.github.com/repos/collectiveidea/awesomeness/git/commits{/sha}","comments_url":"https://api.github.com/repos/collectiveidea/awesomeness/comments{/number}","issue_comment_url":"https://api.github.com/repos/collectiveidea/awesomeness/issues/comments/{number}","contents_url":"https://api.github.com/repos/collectiveidea/awesomeness/contents/{+path}","compare_url":"https://api.github.com/repos/collectiveidea/awesomeness/compare/{base}...{head}","merges_url":"https://api.github.com/repos/collectiveidea/awesomeness/merges","archive_url":"https://api.github.com/repos/collectiveidea/awesomeness/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/collectiveidea/awesomeness/downloads","issues_url":"https://api.github.com/repos/collectiveidea/awesomeness/issues{/number}","pulls_url":"https://api.github.com/repos/collectiveidea/awesomeness/pulls{/number}","milestones_url":"https://api.github.com/repos/collectiveidea/awesomeness/milestones{/number}","notifications_url":"https://api.github.com/repos/collectiveidea/awesomeness/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/collectiveidea/awesomeness/labels{/name}"},{"id":363,"name":"audited","full_name":"collectiveidea/audited","owner":{"login":"collectiveidea","id":128,"avatar_url":"https://2.gravatar.com/avatar/13ff8dc8c2bf2a4752816e1e3f201a05?d=https%3A%2F%2Fidenticons.github.com%2F76dc611d6ebaafc66cc0879c71b5db5c.png","gravatar_id":"13ff8dc8c2bf2a4752816e1e3f201a05","url":"https://api.github.com/users/collectiveidea","html_url":"https://github.com/collectiveidea","followers_url":"https://api.github.com/users/collectiveidea/followers","following_url":"https://api.github.com/users/collectiveidea/following{/other_user}","gists_url":"https://api.github.com/users/collectiveidea/gists{/gist_id}","starred_url":"https://api.github.com/users/collectiveidea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/collectiveidea/subscriptions","organizations_url":"https://api.github.com/users/collectiveidea/orgs","repos_url":"https://api.github.com/users/collectiveidea/repos","events_url":"https://api.github.com/users/collectiveidea/events{/privacy}","received_events_url":"https://api.github.com/users/collectiveidea/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/collectiveidea/audited","description":"Audited (formerly acts_as_audited) is an ORM extension that logs all changes to your Rails models.","fork":false,"url":"https://api.github.com/repos/collectiveidea/audited","forks_url":"https://api.github.com/repos/collectiveidea/audited/forks","keys_url":"https://api.github.com/repos/collectiveidea/audited/keys{/key_id}","collaborators_url":"https://api.github.com/repos/collectiveidea/audited/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/collectiveidea/audited/teams","hooks_url":"https://api.github.com/repos/collectiveidea/audited/hooks","issue_events_url":"https://api.github.com/repos/collectiveidea/audited/issues/events{/number}","events_url":"https://api.github.com/repos/collectiveidea/audited/events","assignees_url":"https://api.github.com/repos/collectiveidea/audited/assignees{/user}","branches_url":"https://api.github.com/repos/collectiveidea/audited/branches{/branch}","tags_url":"https://api.github.com/repos/collectiveidea/audited/tags","blobs_url":"https://api.github.com/repos/collectiveidea/audited/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/collectiveidea/audited/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/collectiveidea/audited/git/refs{/sha}","trees_url":"https://api.github.com/repos/collectiveidea/audited/git/trees{/sha}","statuses_url":"https://api.github.com/repos/collectiveidea/audited/statuses/{sha}","languages_url":"https://api.github.com/repos/collectiveidea/audited/languages","stargazers_url":"https://api.github.com/repos/collectiveidea/audited/stargazers","contributors_url":"https://api.github.com/repos/collectiveidea/audited/contributors","subscribers_url":"https://api.github.com/repos/collectiveidea/audited/subscribers","subscription_url":"https://api.github.com/repos/collectiveidea/audited/subscription","commits_url":"https://api.github.com/repos/collectiveidea/audited/commits{/sha}","git_commits_url":"https://api.github.com/repos/collectiveidea/audited/git/commits{/sha}","comments_url":"https://api.github.com/repos/collectiveidea/audited/comments{/number}","issue_comment_url":"https://api.github.com/repos/collectiveidea/audited/issues/comments/{number}","contents_url":"https://api.github.com/repos/collectiveidea/audited/contents/{+path}","compare_url":"https://api.github.com/repos/collectiveidea/audited/compare/{base}...{head}","merges_url":"https://api.github.com/repos/collectiveidea/audited/merges","archive_url":"https://api.github.com/repos/collectiveidea/audited/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/collectiveidea/audited/downloads","issues_url":"https://api.github.com/repos/collectiveidea/audited/issues{/number}","pulls_url":"https://api.github.com/repos/collectiveidea/audited/pulls{/number}","milestones_url":"https://api.github.com/repos/collectiveidea/audited/milestones{/number}","notifications_url":"https://api.github.com/repos/collectiveidea/audited/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/collectiveidea/audited/labels{/name}"},{"id":364,"name":"acts_as_geocodable","full_name":"collectiveidea/acts_as_geocodable","owner":{"login":"collectiveidea","id":128,"avatar_url":"https://2.gravatar.com/avatar/13ff8dc8c2bf2a4752816e1e3f201a05?d=https%3A%2F%2Fidenticons.github.com%2F76dc611d6ebaafc66cc0879c71b5db5c.png","gravatar_id":"13ff8dc8c2bf2a4752816e1e3f201a05","url":"https://api.github.com/users/collectiveidea","html_url":"https://github.com/collectiveidea","followers_url":"https://api.github.com/users/collectiveidea/followers","following_url":"https://api.github.com/users/collectiveidea/following{/other_user}","gists_url":"https://api.github.com/users/collectiveidea/gists{/gist_id}","starred_url":"https://api.github.com/users/collectiveidea/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/collectiveidea/subscriptions","organizations_url":"https://api.github.com/users/collectiveidea/orgs","repos_url":"https://api.github.com/users/collectiveidea/repos","events_url":"https://api.github.com/users/collectiveidea/events{/privacy}","received_events_url":"https://api.github.com/users/collectiveidea/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/collectiveidea/acts_as_geocodable","description":"A Rails plugin that makes your applications geo-aware.","fork":false,"url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable","forks_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/forks","keys_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/teams","hooks_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/hooks","issue_events_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/issues/events{/number}","events_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/events","assignees_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/assignees{/user}","branches_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/branches{/branch}","tags_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/tags","blobs_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/refs{/sha}","trees_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/statuses/{sha}","languages_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/languages","stargazers_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/stargazers","contributors_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/contributors","subscribers_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/subscribers","subscription_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/subscription","commits_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/commits{/sha}","git_commits_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/git/commits{/sha}","comments_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/comments{/number}","issue_comment_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/issues/comments/{number}","contents_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/contents/{+path}","compare_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/merges","archive_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/downloads","issues_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/issues{/number}","pulls_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/pulls{/number}","milestones_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/milestones{/number}","notifications_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/collectiveidea/acts_as_geocodable/labels{/name}"}] + diff --git a/github/tests/ReplayData/Github.testGetReposSince.txt b/github/tests/ReplayData/Github.testGetReposSince.txt new file mode 100644 index 00000000..476baddf --- /dev/null +++ b/github/tests/ReplayData/Github.testGetReposSince.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repositories?since=1000 +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4998'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('cache-control', 'max-age=0, private, must-revalidate'), ('vary', 'Accept-Encoding'), ('content-length', '399618'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="first"'), ('etag', '"12e839cbce49c8f05e4f6dcb7a3889f0"'), ('access-control-allow-credentials', 'true'), ('date', 'Wed, 21 Aug 2013 19:48:29 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377117459')] +[{"id":1008,"name":"jquery-humanize-messages-plugin","full_name":"andykent/jquery-humanize-messages-plugin","owner":{"login":"andykent","id":614,"avatar_url":"https://0.gravatar.com/avatar/c296fd4ef131939f1aa09b8294bbd08c?d=https%3A%2F%2Fidenticons.github.com%2F851ddf5058cf22df63d3344ad89919cf.png","gravatar_id":"c296fd4ef131939f1aa09b8294bbd08c","url":"https://api.github.com/users/andykent","html_url":"https://github.com/andykent","followers_url":"https://api.github.com/users/andykent/followers","following_url":"https://api.github.com/users/andykent/following{/other_user}","gists_url":"https://api.github.com/users/andykent/gists{/gist_id}","starred_url":"https://api.github.com/users/andykent/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/andykent/subscriptions","organizations_url":"https://api.github.com/users/andykent/orgs","repos_url":"https://api.github.com/users/andykent/repos","events_url":"https://api.github.com/users/andykent/events{/privacy}","received_events_url":"https://api.github.com/users/andykent/received_events","type":"User"},"private":false,"html_url":"https://github.com/andykent/jquery-humanize-messages-plugin","description":"A jQuery port of the humanized dialog display technique. (http://www.humanized.com/weblog/2006/09/11/monolog_boxes_and_transparent_messages/)","fork":false,"url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin","forks_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/forks","keys_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/teams","hooks_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/hooks","issue_events_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/events","assignees_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/tags","blobs_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/languages","stargazers_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/stargazers","contributors_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/contributors","subscribers_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/subscribers","subscription_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/subscription","commits_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/issues/comments/{number}","contents_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/merges","archive_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/downloads","issues_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/andykent/jquery-humanize-messages-plugin/labels{/name}"},{"id":1010,"name":"4slicer","full_name":"avalade/4slicer","owner":{"login":"avalade","id":449,"avatar_url":"https://1.gravatar.com/avatar/7cd8f51abfade91b3e57af0887d69063?d=https%3A%2F%2Fidenticons.github.com%2Fd61e4bbd6393c9111e6526ea173a7c8b.png","gravatar_id":"7cd8f51abfade91b3e57af0887d69063","url":"https://api.github.com/users/avalade","html_url":"https://github.com/avalade","followers_url":"https://api.github.com/users/avalade/followers","following_url":"https://api.github.com/users/avalade/following{/other_user}","gists_url":"https://api.github.com/users/avalade/gists{/gist_id}","starred_url":"https://api.github.com/users/avalade/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/avalade/subscriptions","organizations_url":"https://api.github.com/users/avalade/orgs","repos_url":"https://api.github.com/users/avalade/repos","events_url":"https://api.github.com/users/avalade/events{/privacy}","received_events_url":"https://api.github.com/users/avalade/received_events","type":"User"},"private":false,"html_url":"https://github.com/avalade/4slicer","description":"","fork":false,"url":"https://api.github.com/repos/avalade/4slicer","forks_url":"https://api.github.com/repos/avalade/4slicer/forks","keys_url":"https://api.github.com/repos/avalade/4slicer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/avalade/4slicer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/avalade/4slicer/teams","hooks_url":"https://api.github.com/repos/avalade/4slicer/hooks","issue_events_url":"https://api.github.com/repos/avalade/4slicer/issues/events{/number}","events_url":"https://api.github.com/repos/avalade/4slicer/events","assignees_url":"https://api.github.com/repos/avalade/4slicer/assignees{/user}","branches_url":"https://api.github.com/repos/avalade/4slicer/branches{/branch}","tags_url":"https://api.github.com/repos/avalade/4slicer/tags","blobs_url":"https://api.github.com/repos/avalade/4slicer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/avalade/4slicer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/avalade/4slicer/git/refs{/sha}","trees_url":"https://api.github.com/repos/avalade/4slicer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/avalade/4slicer/statuses/{sha}","languages_url":"https://api.github.com/repos/avalade/4slicer/languages","stargazers_url":"https://api.github.com/repos/avalade/4slicer/stargazers","contributors_url":"https://api.github.com/repos/avalade/4slicer/contributors","subscribers_url":"https://api.github.com/repos/avalade/4slicer/subscribers","subscription_url":"https://api.github.com/repos/avalade/4slicer/subscription","commits_url":"https://api.github.com/repos/avalade/4slicer/commits{/sha}","git_commits_url":"https://api.github.com/repos/avalade/4slicer/git/commits{/sha}","comments_url":"https://api.github.com/repos/avalade/4slicer/comments{/number}","issue_comment_url":"https://api.github.com/repos/avalade/4slicer/issues/comments/{number}","contents_url":"https://api.github.com/repos/avalade/4slicer/contents/{+path}","compare_url":"https://api.github.com/repos/avalade/4slicer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/avalade/4slicer/merges","archive_url":"https://api.github.com/repos/avalade/4slicer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/avalade/4slicer/downloads","issues_url":"https://api.github.com/repos/avalade/4slicer/issues{/number}","pulls_url":"https://api.github.com/repos/avalade/4slicer/pulls{/number}","milestones_url":"https://api.github.com/repos/avalade/4slicer/milestones{/number}","notifications_url":"https://api.github.com/repos/avalade/4slicer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/avalade/4slicer/labels{/name}"},{"id":1015,"name":"fixture-scenarios","full_name":"mojombo/fixture-scenarios","owner":{"login":"mojombo","id":1,"avatar_url":"https://2.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/fixture-scenarios","description":"This plugin allows you to create 'scenarios' which are collections of fixtures and ruby files that represent a context against which you can run tests.","fork":false,"url":"https://api.github.com/repos/mojombo/fixture-scenarios","forks_url":"https://api.github.com/repos/mojombo/fixture-scenarios/forks","keys_url":"https://api.github.com/repos/mojombo/fixture-scenarios/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/fixture-scenarios/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/fixture-scenarios/teams","hooks_url":"https://api.github.com/repos/mojombo/fixture-scenarios/hooks","issue_events_url":"https://api.github.com/repos/mojombo/fixture-scenarios/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/fixture-scenarios/events","assignees_url":"https://api.github.com/repos/mojombo/fixture-scenarios/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/fixture-scenarios/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/fixture-scenarios/tags","blobs_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/fixture-scenarios/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/fixture-scenarios/languages","stargazers_url":"https://api.github.com/repos/mojombo/fixture-scenarios/stargazers","contributors_url":"https://api.github.com/repos/mojombo/fixture-scenarios/contributors","subscribers_url":"https://api.github.com/repos/mojombo/fixture-scenarios/subscribers","subscription_url":"https://api.github.com/repos/mojombo/fixture-scenarios/subscription","commits_url":"https://api.github.com/repos/mojombo/fixture-scenarios/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/fixture-scenarios/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/fixture-scenarios/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/fixture-scenarios/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/fixture-scenarios/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/fixture-scenarios/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/fixture-scenarios/merges","archive_url":"https://api.github.com/repos/mojombo/fixture-scenarios/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/fixture-scenarios/downloads","issues_url":"https://api.github.com/repos/mojombo/fixture-scenarios/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/fixture-scenarios/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/fixture-scenarios/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/fixture-scenarios/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/fixture-scenarios/labels{/name}"},{"id":1016,"name":"mongrel_proctitle","full_name":"rtomayko/mongrel_proctitle","owner":{"login":"rtomayko","id":404,"avatar_url":"https://0.gravatar.com/avatar/abfc88b96ae18c85ba7aac3bded2ec5e?d=https%3A%2F%2Fidenticons.github.com%2F4f4adcbf8c6f66dcfc8a3282ac2bf10a.png","gravatar_id":"abfc88b96ae18c85ba7aac3bded2ec5e","url":"https://api.github.com/users/rtomayko","html_url":"https://github.com/rtomayko","followers_url":"https://api.github.com/users/rtomayko/followers","following_url":"https://api.github.com/users/rtomayko/following{/other_user}","gists_url":"https://api.github.com/users/rtomayko/gists{/gist_id}","starred_url":"https://api.github.com/users/rtomayko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtomayko/subscriptions","organizations_url":"https://api.github.com/users/rtomayko/orgs","repos_url":"https://api.github.com/users/rtomayko/repos","events_url":"https://api.github.com/users/rtomayko/events{/privacy}","received_events_url":"https://api.github.com/users/rtomayko/received_events","type":"User"},"private":false,"html_url":"https://github.com/rtomayko/mongrel_proctitle","description":"Process title support for Mongrel (GemPlugin)","fork":false,"url":"https://api.github.com/repos/rtomayko/mongrel_proctitle","forks_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/forks","keys_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/teams","hooks_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/hooks","issue_events_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/issues/events{/number}","events_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/events","assignees_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/assignees{/user}","branches_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/branches{/branch}","tags_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/tags","blobs_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/refs{/sha}","trees_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/statuses/{sha}","languages_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/languages","stargazers_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/stargazers","contributors_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/contributors","subscribers_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/subscribers","subscription_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/subscription","commits_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/commits{/sha}","git_commits_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/git/commits{/sha}","comments_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/comments{/number}","issue_comment_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/issues/comments/{number}","contents_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/contents/{+path}","compare_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/merges","archive_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/downloads","issues_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/issues{/number}","pulls_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/pulls{/number}","milestones_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/milestones{/number}","notifications_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rtomayko/mongrel_proctitle/labels{/name}"},{"id":1017,"name":"rails-plugins","full_name":"zachinglis/rails-plugins","owner":{"login":"zachinglis","id":665,"avatar_url":"https://0.gravatar.com/avatar/1055b2b90f5beb844f28fd909ed45d5f?d=https%3A%2F%2Fidenticons.github.com%2F84117275be999ff55a987b9381e01f96.png","gravatar_id":"1055b2b90f5beb844f28fd909ed45d5f","url":"https://api.github.com/users/zachinglis","html_url":"https://github.com/zachinglis","followers_url":"https://api.github.com/users/zachinglis/followers","following_url":"https://api.github.com/users/zachinglis/following{/other_user}","gists_url":"https://api.github.com/users/zachinglis/gists{/gist_id}","starred_url":"https://api.github.com/users/zachinglis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zachinglis/subscriptions","organizations_url":"https://api.github.com/users/zachinglis/orgs","repos_url":"https://api.github.com/users/zachinglis/repos","events_url":"https://api.github.com/users/zachinglis/events{/privacy}","received_events_url":"https://api.github.com/users/zachinglis/received_events","type":"User"},"private":false,"html_url":"https://github.com/zachinglis/rails-plugins","description":"All my Rails plugins bundled up.","fork":false,"url":"https://api.github.com/repos/zachinglis/rails-plugins","forks_url":"https://api.github.com/repos/zachinglis/rails-plugins/forks","keys_url":"https://api.github.com/repos/zachinglis/rails-plugins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/zachinglis/rails-plugins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/zachinglis/rails-plugins/teams","hooks_url":"https://api.github.com/repos/zachinglis/rails-plugins/hooks","issue_events_url":"https://api.github.com/repos/zachinglis/rails-plugins/issues/events{/number}","events_url":"https://api.github.com/repos/zachinglis/rails-plugins/events","assignees_url":"https://api.github.com/repos/zachinglis/rails-plugins/assignees{/user}","branches_url":"https://api.github.com/repos/zachinglis/rails-plugins/branches{/branch}","tags_url":"https://api.github.com/repos/zachinglis/rails-plugins/tags","blobs_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/refs{/sha}","trees_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/zachinglis/rails-plugins/statuses/{sha}","languages_url":"https://api.github.com/repos/zachinglis/rails-plugins/languages","stargazers_url":"https://api.github.com/repos/zachinglis/rails-plugins/stargazers","contributors_url":"https://api.github.com/repos/zachinglis/rails-plugins/contributors","subscribers_url":"https://api.github.com/repos/zachinglis/rails-plugins/subscribers","subscription_url":"https://api.github.com/repos/zachinglis/rails-plugins/subscription","commits_url":"https://api.github.com/repos/zachinglis/rails-plugins/commits{/sha}","git_commits_url":"https://api.github.com/repos/zachinglis/rails-plugins/git/commits{/sha}","comments_url":"https://api.github.com/repos/zachinglis/rails-plugins/comments{/number}","issue_comment_url":"https://api.github.com/repos/zachinglis/rails-plugins/issues/comments/{number}","contents_url":"https://api.github.com/repos/zachinglis/rails-plugins/contents/{+path}","compare_url":"https://api.github.com/repos/zachinglis/rails-plugins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/zachinglis/rails-plugins/merges","archive_url":"https://api.github.com/repos/zachinglis/rails-plugins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/zachinglis/rails-plugins/downloads","issues_url":"https://api.github.com/repos/zachinglis/rails-plugins/issues{/number}","pulls_url":"https://api.github.com/repos/zachinglis/rails-plugins/pulls{/number}","milestones_url":"https://api.github.com/repos/zachinglis/rails-plugins/milestones{/number}","notifications_url":"https://api.github.com/repos/zachinglis/rails-plugins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/zachinglis/rails-plugins/labels{/name}"},{"id":1028,"name":"date-performance","full_name":"rtomayko/date-performance","owner":{"login":"rtomayko","id":404,"avatar_url":"https://0.gravatar.com/avatar/abfc88b96ae18c85ba7aac3bded2ec5e?d=https%3A%2F%2Fidenticons.github.com%2F4f4adcbf8c6f66dcfc8a3282ac2bf10a.png","gravatar_id":"abfc88b96ae18c85ba7aac3bded2ec5e","url":"https://api.github.com/users/rtomayko","html_url":"https://github.com/rtomayko","followers_url":"https://api.github.com/users/rtomayko/followers","following_url":"https://api.github.com/users/rtomayko/following{/other_user}","gists_url":"https://api.github.com/users/rtomayko/gists{/gist_id}","starred_url":"https://api.github.com/users/rtomayko/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rtomayko/subscriptions","organizations_url":"https://api.github.com/users/rtomayko/orgs","repos_url":"https://api.github.com/users/rtomayko/repos","events_url":"https://api.github.com/users/rtomayko/events{/privacy}","received_events_url":"https://api.github.com/users/rtomayko/received_events","type":"User"},"private":false,"html_url":"https://github.com/rtomayko/date-performance","description":"Adds a semblance of performance to Ruby's core Date class ...","fork":false,"url":"https://api.github.com/repos/rtomayko/date-performance","forks_url":"https://api.github.com/repos/rtomayko/date-performance/forks","keys_url":"https://api.github.com/repos/rtomayko/date-performance/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rtomayko/date-performance/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rtomayko/date-performance/teams","hooks_url":"https://api.github.com/repos/rtomayko/date-performance/hooks","issue_events_url":"https://api.github.com/repos/rtomayko/date-performance/issues/events{/number}","events_url":"https://api.github.com/repos/rtomayko/date-performance/events","assignees_url":"https://api.github.com/repos/rtomayko/date-performance/assignees{/user}","branches_url":"https://api.github.com/repos/rtomayko/date-performance/branches{/branch}","tags_url":"https://api.github.com/repos/rtomayko/date-performance/tags","blobs_url":"https://api.github.com/repos/rtomayko/date-performance/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rtomayko/date-performance/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rtomayko/date-performance/git/refs{/sha}","trees_url":"https://api.github.com/repos/rtomayko/date-performance/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rtomayko/date-performance/statuses/{sha}","languages_url":"https://api.github.com/repos/rtomayko/date-performance/languages","stargazers_url":"https://api.github.com/repos/rtomayko/date-performance/stargazers","contributors_url":"https://api.github.com/repos/rtomayko/date-performance/contributors","subscribers_url":"https://api.github.com/repos/rtomayko/date-performance/subscribers","subscription_url":"https://api.github.com/repos/rtomayko/date-performance/subscription","commits_url":"https://api.github.com/repos/rtomayko/date-performance/commits{/sha}","git_commits_url":"https://api.github.com/repos/rtomayko/date-performance/git/commits{/sha}","comments_url":"https://api.github.com/repos/rtomayko/date-performance/comments{/number}","issue_comment_url":"https://api.github.com/repos/rtomayko/date-performance/issues/comments/{number}","contents_url":"https://api.github.com/repos/rtomayko/date-performance/contents/{+path}","compare_url":"https://api.github.com/repos/rtomayko/date-performance/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rtomayko/date-performance/merges","archive_url":"https://api.github.com/repos/rtomayko/date-performance/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rtomayko/date-performance/downloads","issues_url":"https://api.github.com/repos/rtomayko/date-performance/issues{/number}","pulls_url":"https://api.github.com/repos/rtomayko/date-performance/pulls{/number}","milestones_url":"https://api.github.com/repos/rtomayko/date-performance/milestones{/number}","notifications_url":"https://api.github.com/repos/rtomayko/date-performance/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rtomayko/date-performance/labels{/name}"},{"id":1031,"name":"rails-ssl-authentication","full_name":"labria/rails-ssl-authentication","owner":{"login":"labria","id":323,"avatar_url":"https://1.gravatar.com/avatar/f5049506664636c6cc725099367bd167?d=https%3A%2F%2Fidenticons.github.com%2Fbc6dc48b743dc5d013b1abaebd2faed2.png","gravatar_id":"f5049506664636c6cc725099367bd167","url":"https://api.github.com/users/labria","html_url":"https://github.com/labria","followers_url":"https://api.github.com/users/labria/followers","following_url":"https://api.github.com/users/labria/following{/other_user}","gists_url":"https://api.github.com/users/labria/gists{/gist_id}","starred_url":"https://api.github.com/users/labria/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/labria/subscriptions","organizations_url":"https://api.github.com/users/labria/orgs","repos_url":"https://api.github.com/users/labria/repos","events_url":"https://api.github.com/users/labria/events{/privacy}","received_events_url":"https://api.github.com/users/labria/received_events","type":"User"},"private":false,"html_url":"https://github.com/labria/rails-ssl-authentication","description":"A attempt to make SSL client certificate authentication with rails painless","fork":false,"url":"https://api.github.com/repos/labria/rails-ssl-authentication","forks_url":"https://api.github.com/repos/labria/rails-ssl-authentication/forks","keys_url":"https://api.github.com/repos/labria/rails-ssl-authentication/keys{/key_id}","collaborators_url":"https://api.github.com/repos/labria/rails-ssl-authentication/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/labria/rails-ssl-authentication/teams","hooks_url":"https://api.github.com/repos/labria/rails-ssl-authentication/hooks","issue_events_url":"https://api.github.com/repos/labria/rails-ssl-authentication/issues/events{/number}","events_url":"https://api.github.com/repos/labria/rails-ssl-authentication/events","assignees_url":"https://api.github.com/repos/labria/rails-ssl-authentication/assignees{/user}","branches_url":"https://api.github.com/repos/labria/rails-ssl-authentication/branches{/branch}","tags_url":"https://api.github.com/repos/labria/rails-ssl-authentication/tags","blobs_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/refs{/sha}","trees_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/trees{/sha}","statuses_url":"https://api.github.com/repos/labria/rails-ssl-authentication/statuses/{sha}","languages_url":"https://api.github.com/repos/labria/rails-ssl-authentication/languages","stargazers_url":"https://api.github.com/repos/labria/rails-ssl-authentication/stargazers","contributors_url":"https://api.github.com/repos/labria/rails-ssl-authentication/contributors","subscribers_url":"https://api.github.com/repos/labria/rails-ssl-authentication/subscribers","subscription_url":"https://api.github.com/repos/labria/rails-ssl-authentication/subscription","commits_url":"https://api.github.com/repos/labria/rails-ssl-authentication/commits{/sha}","git_commits_url":"https://api.github.com/repos/labria/rails-ssl-authentication/git/commits{/sha}","comments_url":"https://api.github.com/repos/labria/rails-ssl-authentication/comments{/number}","issue_comment_url":"https://api.github.com/repos/labria/rails-ssl-authentication/issues/comments/{number}","contents_url":"https://api.github.com/repos/labria/rails-ssl-authentication/contents/{+path}","compare_url":"https://api.github.com/repos/labria/rails-ssl-authentication/compare/{base}...{head}","merges_url":"https://api.github.com/repos/labria/rails-ssl-authentication/merges","archive_url":"https://api.github.com/repos/labria/rails-ssl-authentication/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/labria/rails-ssl-authentication/downloads","issues_url":"https://api.github.com/repos/labria/rails-ssl-authentication/issues{/number}","pulls_url":"https://api.github.com/repos/labria/rails-ssl-authentication/pulls{/number}","milestones_url":"https://api.github.com/repos/labria/rails-ssl-authentication/milestones{/number}","notifications_url":"https://api.github.com/repos/labria/rails-ssl-authentication/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/labria/rails-ssl-authentication/labels{/name}"},{"id":1032,"name":"onebody","full_name":"churchio/onebody","owner":{"login":"churchio","id":935086,"avatar_url":"https://0.gravatar.com/avatar/be6afcca013316741f7189ccda95067e?d=https%3A%2F%2Fidenticons.github.com%2Fb903ff4db9f18d88c10889cc7de72269.png","gravatar_id":"be6afcca013316741f7189ccda95067e","url":"https://api.github.com/users/churchio","html_url":"https://github.com/churchio","followers_url":"https://api.github.com/users/churchio/followers","following_url":"https://api.github.com/users/churchio/following{/other_user}","gists_url":"https://api.github.com/users/churchio/gists{/gist_id}","starred_url":"https://api.github.com/users/churchio/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/churchio/subscriptions","organizations_url":"https://api.github.com/users/churchio/orgs","repos_url":"https://api.github.com/users/churchio/repos","events_url":"https://api.github.com/users/churchio/events{/privacy}","received_events_url":"https://api.github.com/users/churchio/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/churchio/onebody","description":"OneBody is a private social network and online directory solution for churches built with Ruby on Rails.","fork":false,"url":"https://api.github.com/repos/churchio/onebody","forks_url":"https://api.github.com/repos/churchio/onebody/forks","keys_url":"https://api.github.com/repos/churchio/onebody/keys{/key_id}","collaborators_url":"https://api.github.com/repos/churchio/onebody/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/churchio/onebody/teams","hooks_url":"https://api.github.com/repos/churchio/onebody/hooks","issue_events_url":"https://api.github.com/repos/churchio/onebody/issues/events{/number}","events_url":"https://api.github.com/repos/churchio/onebody/events","assignees_url":"https://api.github.com/repos/churchio/onebody/assignees{/user}","branches_url":"https://api.github.com/repos/churchio/onebody/branches{/branch}","tags_url":"https://api.github.com/repos/churchio/onebody/tags","blobs_url":"https://api.github.com/repos/churchio/onebody/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/churchio/onebody/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/churchio/onebody/git/refs{/sha}","trees_url":"https://api.github.com/repos/churchio/onebody/git/trees{/sha}","statuses_url":"https://api.github.com/repos/churchio/onebody/statuses/{sha}","languages_url":"https://api.github.com/repos/churchio/onebody/languages","stargazers_url":"https://api.github.com/repos/churchio/onebody/stargazers","contributors_url":"https://api.github.com/repos/churchio/onebody/contributors","subscribers_url":"https://api.github.com/repos/churchio/onebody/subscribers","subscription_url":"https://api.github.com/repos/churchio/onebody/subscription","commits_url":"https://api.github.com/repos/churchio/onebody/commits{/sha}","git_commits_url":"https://api.github.com/repos/churchio/onebody/git/commits{/sha}","comments_url":"https://api.github.com/repos/churchio/onebody/comments{/number}","issue_comment_url":"https://api.github.com/repos/churchio/onebody/issues/comments/{number}","contents_url":"https://api.github.com/repos/churchio/onebody/contents/{+path}","compare_url":"https://api.github.com/repos/churchio/onebody/compare/{base}...{head}","merges_url":"https://api.github.com/repos/churchio/onebody/merges","archive_url":"https://api.github.com/repos/churchio/onebody/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/churchio/onebody/downloads","issues_url":"https://api.github.com/repos/churchio/onebody/issues{/number}","pulls_url":"https://api.github.com/repos/churchio/onebody/pulls{/number}","milestones_url":"https://api.github.com/repos/churchio/onebody/milestones{/number}","notifications_url":"https://api.github.com/repos/churchio/onebody/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/churchio/onebody/labels{/name}"},{"id":1040,"name":"jacks-php","full_name":"russ/jacks-php","owner":{"login":"russ","id":684,"avatar_url":"https://1.gravatar.com/avatar/5f763744270a1aa74c614cec8b30a3e1?d=https%3A%2F%2Fidenticons.github.com%2F556f391937dfd4398cbac35e050a2177.png","gravatar_id":"5f763744270a1aa74c614cec8b30a3e1","url":"https://api.github.com/users/russ","html_url":"https://github.com/russ","followers_url":"https://api.github.com/users/russ/followers","following_url":"https://api.github.com/users/russ/following{/other_user}","gists_url":"https://api.github.com/users/russ/gists{/gist_id}","starred_url":"https://api.github.com/users/russ/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/russ/subscriptions","organizations_url":"https://api.github.com/users/russ/orgs","repos_url":"https://api.github.com/users/russ/repos","events_url":"https://api.github.com/users/russ/events{/privacy}","received_events_url":"https://api.github.com/users/russ/received_events","type":"User"},"private":false,"html_url":"https://github.com/russ/jacks-php","description":"I am Jacks PHP framework.","fork":false,"url":"https://api.github.com/repos/russ/jacks-php","forks_url":"https://api.github.com/repos/russ/jacks-php/forks","keys_url":"https://api.github.com/repos/russ/jacks-php/keys{/key_id}","collaborators_url":"https://api.github.com/repos/russ/jacks-php/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/russ/jacks-php/teams","hooks_url":"https://api.github.com/repos/russ/jacks-php/hooks","issue_events_url":"https://api.github.com/repos/russ/jacks-php/issues/events{/number}","events_url":"https://api.github.com/repos/russ/jacks-php/events","assignees_url":"https://api.github.com/repos/russ/jacks-php/assignees{/user}","branches_url":"https://api.github.com/repos/russ/jacks-php/branches{/branch}","tags_url":"https://api.github.com/repos/russ/jacks-php/tags","blobs_url":"https://api.github.com/repos/russ/jacks-php/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/russ/jacks-php/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/russ/jacks-php/git/refs{/sha}","trees_url":"https://api.github.com/repos/russ/jacks-php/git/trees{/sha}","statuses_url":"https://api.github.com/repos/russ/jacks-php/statuses/{sha}","languages_url":"https://api.github.com/repos/russ/jacks-php/languages","stargazers_url":"https://api.github.com/repos/russ/jacks-php/stargazers","contributors_url":"https://api.github.com/repos/russ/jacks-php/contributors","subscribers_url":"https://api.github.com/repos/russ/jacks-php/subscribers","subscription_url":"https://api.github.com/repos/russ/jacks-php/subscription","commits_url":"https://api.github.com/repos/russ/jacks-php/commits{/sha}","git_commits_url":"https://api.github.com/repos/russ/jacks-php/git/commits{/sha}","comments_url":"https://api.github.com/repos/russ/jacks-php/comments{/number}","issue_comment_url":"https://api.github.com/repos/russ/jacks-php/issues/comments/{number}","contents_url":"https://api.github.com/repos/russ/jacks-php/contents/{+path}","compare_url":"https://api.github.com/repos/russ/jacks-php/compare/{base}...{head}","merges_url":"https://api.github.com/repos/russ/jacks-php/merges","archive_url":"https://api.github.com/repos/russ/jacks-php/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/russ/jacks-php/downloads","issues_url":"https://api.github.com/repos/russ/jacks-php/issues{/number}","pulls_url":"https://api.github.com/repos/russ/jacks-php/pulls{/number}","milestones_url":"https://api.github.com/repos/russ/jacks-php/milestones{/number}","notifications_url":"https://api.github.com/repos/russ/jacks-php/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/russ/jacks-php/labels{/name}"},{"id":1042,"name":"loudmouth","full_name":"mhallendal/loudmouth","owner":{"login":"mhallendal","id":541,"avatar_url":"https://1.gravatar.com/avatar/9736d1741af3929d5960dacffb03cfd5?d=https%3A%2F%2Fidenticons.github.com%2F16c222aa19898e5058938167c8ab6c57.png","gravatar_id":"9736d1741af3929d5960dacffb03cfd5","url":"https://api.github.com/users/mhallendal","html_url":"https://github.com/mhallendal","followers_url":"https://api.github.com/users/mhallendal/followers","following_url":"https://api.github.com/users/mhallendal/following{/other_user}","gists_url":"https://api.github.com/users/mhallendal/gists{/gist_id}","starred_url":"https://api.github.com/users/mhallendal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhallendal/subscriptions","organizations_url":"https://api.github.com/users/mhallendal/orgs","repos_url":"https://api.github.com/users/mhallendal/repos","events_url":"https://api.github.com/users/mhallendal/events{/privacy}","received_events_url":"https://api.github.com/users/mhallendal/received_events","type":"User"},"private":false,"html_url":"https://github.com/mhallendal/loudmouth","description":"An asynchronous XMPP library","fork":false,"url":"https://api.github.com/repos/mhallendal/loudmouth","forks_url":"https://api.github.com/repos/mhallendal/loudmouth/forks","keys_url":"https://api.github.com/repos/mhallendal/loudmouth/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mhallendal/loudmouth/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mhallendal/loudmouth/teams","hooks_url":"https://api.github.com/repos/mhallendal/loudmouth/hooks","issue_events_url":"https://api.github.com/repos/mhallendal/loudmouth/issues/events{/number}","events_url":"https://api.github.com/repos/mhallendal/loudmouth/events","assignees_url":"https://api.github.com/repos/mhallendal/loudmouth/assignees{/user}","branches_url":"https://api.github.com/repos/mhallendal/loudmouth/branches{/branch}","tags_url":"https://api.github.com/repos/mhallendal/loudmouth/tags","blobs_url":"https://api.github.com/repos/mhallendal/loudmouth/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mhallendal/loudmouth/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mhallendal/loudmouth/git/refs{/sha}","trees_url":"https://api.github.com/repos/mhallendal/loudmouth/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mhallendal/loudmouth/statuses/{sha}","languages_url":"https://api.github.com/repos/mhallendal/loudmouth/languages","stargazers_url":"https://api.github.com/repos/mhallendal/loudmouth/stargazers","contributors_url":"https://api.github.com/repos/mhallendal/loudmouth/contributors","subscribers_url":"https://api.github.com/repos/mhallendal/loudmouth/subscribers","subscription_url":"https://api.github.com/repos/mhallendal/loudmouth/subscription","commits_url":"https://api.github.com/repos/mhallendal/loudmouth/commits{/sha}","git_commits_url":"https://api.github.com/repos/mhallendal/loudmouth/git/commits{/sha}","comments_url":"https://api.github.com/repos/mhallendal/loudmouth/comments{/number}","issue_comment_url":"https://api.github.com/repos/mhallendal/loudmouth/issues/comments/{number}","contents_url":"https://api.github.com/repos/mhallendal/loudmouth/contents/{+path}","compare_url":"https://api.github.com/repos/mhallendal/loudmouth/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mhallendal/loudmouth/merges","archive_url":"https://api.github.com/repos/mhallendal/loudmouth/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mhallendal/loudmouth/downloads","issues_url":"https://api.github.com/repos/mhallendal/loudmouth/issues{/number}","pulls_url":"https://api.github.com/repos/mhallendal/loudmouth/pulls{/number}","milestones_url":"https://api.github.com/repos/mhallendal/loudmouth/milestones{/number}","notifications_url":"https://api.github.com/repos/mhallendal/loudmouth/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mhallendal/loudmouth/labels{/name}"},{"id":1043,"name":"getfake","full_name":"anildigital/getfake","owner":{"login":"anildigital","id":266,"avatar_url":"https://2.gravatar.com/avatar/2ad20e87f55ce79b113a12c516ec9d09?d=https%3A%2F%2Fidenticons.github.com%2Ff7664060cc52bc6f3d620bcedc94a4b6.png","gravatar_id":"2ad20e87f55ce79b113a12c516ec9d09","url":"https://api.github.com/users/anildigital","html_url":"https://github.com/anildigital","followers_url":"https://api.github.com/users/anildigital/followers","following_url":"https://api.github.com/users/anildigital/following{/other_user}","gists_url":"https://api.github.com/users/anildigital/gists{/gist_id}","starred_url":"https://api.github.com/users/anildigital/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/anildigital/subscriptions","organizations_url":"https://api.github.com/users/anildigital/orgs","repos_url":"https://api.github.com/users/anildigital/repos","events_url":"https://api.github.com/users/anildigital/events{/privacy}","received_events_url":"https://api.github.com/users/anildigital/received_events","type":"User"},"private":false,"html_url":"https://github.com/anildigital/getfake","description":"Its a web UI for for ruby faker gem","fork":false,"url":"https://api.github.com/repos/anildigital/getfake","forks_url":"https://api.github.com/repos/anildigital/getfake/forks","keys_url":"https://api.github.com/repos/anildigital/getfake/keys{/key_id}","collaborators_url":"https://api.github.com/repos/anildigital/getfake/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/anildigital/getfake/teams","hooks_url":"https://api.github.com/repos/anildigital/getfake/hooks","issue_events_url":"https://api.github.com/repos/anildigital/getfake/issues/events{/number}","events_url":"https://api.github.com/repos/anildigital/getfake/events","assignees_url":"https://api.github.com/repos/anildigital/getfake/assignees{/user}","branches_url":"https://api.github.com/repos/anildigital/getfake/branches{/branch}","tags_url":"https://api.github.com/repos/anildigital/getfake/tags","blobs_url":"https://api.github.com/repos/anildigital/getfake/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/anildigital/getfake/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/anildigital/getfake/git/refs{/sha}","trees_url":"https://api.github.com/repos/anildigital/getfake/git/trees{/sha}","statuses_url":"https://api.github.com/repos/anildigital/getfake/statuses/{sha}","languages_url":"https://api.github.com/repos/anildigital/getfake/languages","stargazers_url":"https://api.github.com/repos/anildigital/getfake/stargazers","contributors_url":"https://api.github.com/repos/anildigital/getfake/contributors","subscribers_url":"https://api.github.com/repos/anildigital/getfake/subscribers","subscription_url":"https://api.github.com/repos/anildigital/getfake/subscription","commits_url":"https://api.github.com/repos/anildigital/getfake/commits{/sha}","git_commits_url":"https://api.github.com/repos/anildigital/getfake/git/commits{/sha}","comments_url":"https://api.github.com/repos/anildigital/getfake/comments{/number}","issue_comment_url":"https://api.github.com/repos/anildigital/getfake/issues/comments/{number}","contents_url":"https://api.github.com/repos/anildigital/getfake/contents/{+path}","compare_url":"https://api.github.com/repos/anildigital/getfake/compare/{base}...{head}","merges_url":"https://api.github.com/repos/anildigital/getfake/merges","archive_url":"https://api.github.com/repos/anildigital/getfake/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/anildigital/getfake/downloads","issues_url":"https://api.github.com/repos/anildigital/getfake/issues{/number}","pulls_url":"https://api.github.com/repos/anildigital/getfake/pulls{/number}","milestones_url":"https://api.github.com/repos/anildigital/getfake/milestones{/number}","notifications_url":"https://api.github.com/repos/anildigital/getfake/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/anildigital/getfake/labels{/name}"},{"id":1049,"name":"effen","full_name":"nkallen/effen","owner":{"login":"nkallen","id":699,"avatar_url":"https://1.gravatar.com/avatar/2b292377455ec105686730d6aa59c262?d=https%3A%2F%2Fidenticons.github.com%2Fafd4836712c5e77550897e25711e1d96.png","gravatar_id":"2b292377455ec105686730d6aa59c262","url":"https://api.github.com/users/nkallen","html_url":"https://github.com/nkallen","followers_url":"https://api.github.com/users/nkallen/followers","following_url":"https://api.github.com/users/nkallen/following{/other_user}","gists_url":"https://api.github.com/users/nkallen/gists{/gist_id}","starred_url":"https://api.github.com/users/nkallen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nkallen/subscriptions","organizations_url":"https://api.github.com/users/nkallen/orgs","repos_url":"https://api.github.com/users/nkallen/repos","events_url":"https://api.github.com/users/nkallen/events{/privacy}","received_events_url":"https://api.github.com/users/nkallen/received_events","type":"User"},"private":false,"html_url":"https://github.com/nkallen/effen","description":"A jQuery plugin for Morphic programming","fork":false,"url":"https://api.github.com/repos/nkallen/effen","forks_url":"https://api.github.com/repos/nkallen/effen/forks","keys_url":"https://api.github.com/repos/nkallen/effen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/nkallen/effen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/nkallen/effen/teams","hooks_url":"https://api.github.com/repos/nkallen/effen/hooks","issue_events_url":"https://api.github.com/repos/nkallen/effen/issues/events{/number}","events_url":"https://api.github.com/repos/nkallen/effen/events","assignees_url":"https://api.github.com/repos/nkallen/effen/assignees{/user}","branches_url":"https://api.github.com/repos/nkallen/effen/branches{/branch}","tags_url":"https://api.github.com/repos/nkallen/effen/tags","blobs_url":"https://api.github.com/repos/nkallen/effen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/nkallen/effen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/nkallen/effen/git/refs{/sha}","trees_url":"https://api.github.com/repos/nkallen/effen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/nkallen/effen/statuses/{sha}","languages_url":"https://api.github.com/repos/nkallen/effen/languages","stargazers_url":"https://api.github.com/repos/nkallen/effen/stargazers","contributors_url":"https://api.github.com/repos/nkallen/effen/contributors","subscribers_url":"https://api.github.com/repos/nkallen/effen/subscribers","subscription_url":"https://api.github.com/repos/nkallen/effen/subscription","commits_url":"https://api.github.com/repos/nkallen/effen/commits{/sha}","git_commits_url":"https://api.github.com/repos/nkallen/effen/git/commits{/sha}","comments_url":"https://api.github.com/repos/nkallen/effen/comments{/number}","issue_comment_url":"https://api.github.com/repos/nkallen/effen/issues/comments/{number}","contents_url":"https://api.github.com/repos/nkallen/effen/contents/{+path}","compare_url":"https://api.github.com/repos/nkallen/effen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/nkallen/effen/merges","archive_url":"https://api.github.com/repos/nkallen/effen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/nkallen/effen/downloads","issues_url":"https://api.github.com/repos/nkallen/effen/issues{/number}","pulls_url":"https://api.github.com/repos/nkallen/effen/pulls{/number}","milestones_url":"https://api.github.com/repos/nkallen/effen/milestones{/number}","notifications_url":"https://api.github.com/repos/nkallen/effen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/nkallen/effen/labels{/name}"},{"id":1052,"name":"template","full_name":"jparker/template","owner":{"login":"jparker","id":703,"avatar_url":"https://2.gravatar.com/avatar/f239ccb7f4c904a74e523a3334ca45e7?d=https%3A%2F%2Fidenticons.github.com%2Fd6c651ddcd97183b2e40bc464231c962.png","gravatar_id":"f239ccb7f4c904a74e523a3334ca45e7","url":"https://api.github.com/users/jparker","html_url":"https://github.com/jparker","followers_url":"https://api.github.com/users/jparker/followers","following_url":"https://api.github.com/users/jparker/following{/other_user}","gists_url":"https://api.github.com/users/jparker/gists{/gist_id}","starred_url":"https://api.github.com/users/jparker/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jparker/subscriptions","organizations_url":"https://api.github.com/users/jparker/orgs","repos_url":"https://api.github.com/users/jparker/repos","events_url":"https://api.github.com/users/jparker/events{/privacy}","received_events_url":"https://api.github.com/users/jparker/received_events","type":"User"},"private":false,"html_url":"https://github.com/jparker/template","description":"Rails project template","fork":false,"url":"https://api.github.com/repos/jparker/template","forks_url":"https://api.github.com/repos/jparker/template/forks","keys_url":"https://api.github.com/repos/jparker/template/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jparker/template/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jparker/template/teams","hooks_url":"https://api.github.com/repos/jparker/template/hooks","issue_events_url":"https://api.github.com/repos/jparker/template/issues/events{/number}","events_url":"https://api.github.com/repos/jparker/template/events","assignees_url":"https://api.github.com/repos/jparker/template/assignees{/user}","branches_url":"https://api.github.com/repos/jparker/template/branches{/branch}","tags_url":"https://api.github.com/repos/jparker/template/tags","blobs_url":"https://api.github.com/repos/jparker/template/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jparker/template/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jparker/template/git/refs{/sha}","trees_url":"https://api.github.com/repos/jparker/template/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jparker/template/statuses/{sha}","languages_url":"https://api.github.com/repos/jparker/template/languages","stargazers_url":"https://api.github.com/repos/jparker/template/stargazers","contributors_url":"https://api.github.com/repos/jparker/template/contributors","subscribers_url":"https://api.github.com/repos/jparker/template/subscribers","subscription_url":"https://api.github.com/repos/jparker/template/subscription","commits_url":"https://api.github.com/repos/jparker/template/commits{/sha}","git_commits_url":"https://api.github.com/repos/jparker/template/git/commits{/sha}","comments_url":"https://api.github.com/repos/jparker/template/comments{/number}","issue_comment_url":"https://api.github.com/repos/jparker/template/issues/comments/{number}","contents_url":"https://api.github.com/repos/jparker/template/contents/{+path}","compare_url":"https://api.github.com/repos/jparker/template/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jparker/template/merges","archive_url":"https://api.github.com/repos/jparker/template/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jparker/template/downloads","issues_url":"https://api.github.com/repos/jparker/template/issues{/number}","pulls_url":"https://api.github.com/repos/jparker/template/pulls{/number}","milestones_url":"https://api.github.com/repos/jparker/template/milestones{/number}","notifications_url":"https://api.github.com/repos/jparker/template/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jparker/template/labels{/name}"},{"id":1054,"name":"TourGuide","full_name":"TekNoLogic/TourGuide","owner":{"login":"TekNoLogic","id":318374,"avatar_url":"https://0.gravatar.com/avatar/3260416e668934213340ecc4f8a835f4?d=https%3A%2F%2Fidenticons.github.com%2F10061d18a6a471274d9f419b0bf5502b.png","gravatar_id":"3260416e668934213340ecc4f8a835f4","url":"https://api.github.com/users/TekNoLogic","html_url":"https://github.com/TekNoLogic","followers_url":"https://api.github.com/users/TekNoLogic/followers","following_url":"https://api.github.com/users/TekNoLogic/following{/other_user}","gists_url":"https://api.github.com/users/TekNoLogic/gists{/gist_id}","starred_url":"https://api.github.com/users/TekNoLogic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/TekNoLogic/subscriptions","organizations_url":"https://api.github.com/users/TekNoLogic/orgs","repos_url":"https://api.github.com/users/TekNoLogic/repos","events_url":"https://api.github.com/users/TekNoLogic/events{/privacy}","received_events_url":"https://api.github.com/users/TekNoLogic/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/TekNoLogic/TourGuide","description":"WoW Addon - Powerleveling guide framework","fork":false,"url":"https://api.github.com/repos/TekNoLogic/TourGuide","forks_url":"https://api.github.com/repos/TekNoLogic/TourGuide/forks","keys_url":"https://api.github.com/repos/TekNoLogic/TourGuide/keys{/key_id}","collaborators_url":"https://api.github.com/repos/TekNoLogic/TourGuide/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/TekNoLogic/TourGuide/teams","hooks_url":"https://api.github.com/repos/TekNoLogic/TourGuide/hooks","issue_events_url":"https://api.github.com/repos/TekNoLogic/TourGuide/issues/events{/number}","events_url":"https://api.github.com/repos/TekNoLogic/TourGuide/events","assignees_url":"https://api.github.com/repos/TekNoLogic/TourGuide/assignees{/user}","branches_url":"https://api.github.com/repos/TekNoLogic/TourGuide/branches{/branch}","tags_url":"https://api.github.com/repos/TekNoLogic/TourGuide/tags","blobs_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/refs{/sha}","trees_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/trees{/sha}","statuses_url":"https://api.github.com/repos/TekNoLogic/TourGuide/statuses/{sha}","languages_url":"https://api.github.com/repos/TekNoLogic/TourGuide/languages","stargazers_url":"https://api.github.com/repos/TekNoLogic/TourGuide/stargazers","contributors_url":"https://api.github.com/repos/TekNoLogic/TourGuide/contributors","subscribers_url":"https://api.github.com/repos/TekNoLogic/TourGuide/subscribers","subscription_url":"https://api.github.com/repos/TekNoLogic/TourGuide/subscription","commits_url":"https://api.github.com/repos/TekNoLogic/TourGuide/commits{/sha}","git_commits_url":"https://api.github.com/repos/TekNoLogic/TourGuide/git/commits{/sha}","comments_url":"https://api.github.com/repos/TekNoLogic/TourGuide/comments{/number}","issue_comment_url":"https://api.github.com/repos/TekNoLogic/TourGuide/issues/comments/{number}","contents_url":"https://api.github.com/repos/TekNoLogic/TourGuide/contents/{+path}","compare_url":"https://api.github.com/repos/TekNoLogic/TourGuide/compare/{base}...{head}","merges_url":"https://api.github.com/repos/TekNoLogic/TourGuide/merges","archive_url":"https://api.github.com/repos/TekNoLogic/TourGuide/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/TekNoLogic/TourGuide/downloads","issues_url":"https://api.github.com/repos/TekNoLogic/TourGuide/issues{/number}","pulls_url":"https://api.github.com/repos/TekNoLogic/TourGuide/pulls{/number}","milestones_url":"https://api.github.com/repos/TekNoLogic/TourGuide/milestones{/number}","notifications_url":"https://api.github.com/repos/TekNoLogic/TourGuide/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/TekNoLogic/TourGuide/labels{/name}"},{"id":1057,"name":"configuration-files","full_name":"adulteratedjedi/configuration-files","owner":{"login":"adulteratedjedi","id":702,"avatar_url":"https://1.gravatar.com/avatar/699b1f8c794863bc25a00221b4120ac7?d=https%3A%2F%2Fidenticons.github.com%2Fb1eec33c726a60554bc78518d5f9b32c.png","gravatar_id":"699b1f8c794863bc25a00221b4120ac7","url":"https://api.github.com/users/adulteratedjedi","html_url":"https://github.com/adulteratedjedi","followers_url":"https://api.github.com/users/adulteratedjedi/followers","following_url":"https://api.github.com/users/adulteratedjedi/following{/other_user}","gists_url":"https://api.github.com/users/adulteratedjedi/gists{/gist_id}","starred_url":"https://api.github.com/users/adulteratedjedi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/adulteratedjedi/subscriptions","organizations_url":"https://api.github.com/users/adulteratedjedi/orgs","repos_url":"https://api.github.com/users/adulteratedjedi/repos","events_url":"https://api.github.com/users/adulteratedjedi/events{/privacy}","received_events_url":"https://api.github.com/users/adulteratedjedi/received_events","type":"User"},"private":false,"html_url":"https://github.com/adulteratedjedi/configuration-files","description":"My Config Files","fork":false,"url":"https://api.github.com/repos/adulteratedjedi/configuration-files","forks_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/forks","keys_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/keys{/key_id}","collaborators_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/teams","hooks_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/hooks","issue_events_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/issues/events{/number}","events_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/events","assignees_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/assignees{/user}","branches_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/branches{/branch}","tags_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/tags","blobs_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/refs{/sha}","trees_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/trees{/sha}","statuses_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/statuses/{sha}","languages_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/languages","stargazers_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/stargazers","contributors_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/contributors","subscribers_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/subscribers","subscription_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/subscription","commits_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/commits{/sha}","git_commits_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/git/commits{/sha}","comments_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/comments{/number}","issue_comment_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/issues/comments/{number}","contents_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/contents/{+path}","compare_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/compare/{base}...{head}","merges_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/merges","archive_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/downloads","issues_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/issues{/number}","pulls_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/pulls{/number}","milestones_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/milestones{/number}","notifications_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/adulteratedjedi/configuration-files/labels{/name}"},{"id":1061,"name":"fora","full_name":"ELLIOTTCABLE/fora","owner":{"login":"ELLIOTTCABLE","id":200,"avatar_url":"https://1.gravatar.com/avatar/4eac78fe7a7a607dcc097a0d6fd63690?d=https%3A%2F%2Fidenticons.github.com%2F3644a684f98ea8fe223c713b77189a77.png","gravatar_id":"4eac78fe7a7a607dcc097a0d6fd63690","url":"https://api.github.com/users/ELLIOTTCABLE","html_url":"https://github.com/ELLIOTTCABLE","followers_url":"https://api.github.com/users/ELLIOTTCABLE/followers","following_url":"https://api.github.com/users/ELLIOTTCABLE/following{/other_user}","gists_url":"https://api.github.com/users/ELLIOTTCABLE/gists{/gist_id}","starred_url":"https://api.github.com/users/ELLIOTTCABLE/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ELLIOTTCABLE/subscriptions","organizations_url":"https://api.github.com/users/ELLIOTTCABLE/orgs","repos_url":"https://api.github.com/users/ELLIOTTCABLE/repos","events_url":"https://api.github.com/users/ELLIOTTCABLE/events{/privacy}","received_events_url":"https://api.github.com/users/ELLIOTTCABLE/received_events","type":"User"},"private":false,"html_url":"https://github.com/ELLIOTTCABLE/fora","description":"Open source forum - done *different*","fork":false,"url":"https://api.github.com/repos/ELLIOTTCABLE/fora","forks_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/forks","keys_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/teams","hooks_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/hooks","issue_events_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/issues/events{/number}","events_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/events","assignees_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/assignees{/user}","branches_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/branches{/branch}","tags_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/tags","blobs_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/refs{/sha}","trees_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/statuses/{sha}","languages_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/languages","stargazers_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/stargazers","contributors_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/contributors","subscribers_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/subscribers","subscription_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/subscription","commits_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/commits{/sha}","git_commits_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/git/commits{/sha}","comments_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/comments{/number}","issue_comment_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/issues/comments/{number}","contents_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/contents/{+path}","compare_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/merges","archive_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/downloads","issues_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/issues{/number}","pulls_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/pulls{/number}","milestones_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/milestones{/number}","notifications_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ELLIOTTCABLE/fora/labels{/name}"},{"id":1062,"name":"dcbot","full_name":"kballard/dcbot","owner":{"login":"kballard","id":714,"avatar_url":"https://2.gravatar.com/avatar/6451ee8093c9cedc94f6c813b4dde2c5?d=https%3A%2F%2Fidenticons.github.com%2Fd14220ee66aeec73c49038385428ec4c.png","gravatar_id":"6451ee8093c9cedc94f6c813b4dde2c5","url":"https://api.github.com/users/kballard","html_url":"https://github.com/kballard","followers_url":"https://api.github.com/users/kballard/followers","following_url":"https://api.github.com/users/kballard/following{/other_user}","gists_url":"https://api.github.com/users/kballard/gists{/gist_id}","starred_url":"https://api.github.com/users/kballard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kballard/subscriptions","organizations_url":"https://api.github.com/users/kballard/orgs","repos_url":"https://api.github.com/users/kballard/repos","events_url":"https://api.github.com/users/kballard/events{/privacy}","received_events_url":"https://api.github.com/users/kballard/received_events","type":"User"},"private":false,"html_url":"https://github.com/kballard/dcbot","description":"Direct Connect bot written in Ruby","fork":false,"url":"https://api.github.com/repos/kballard/dcbot","forks_url":"https://api.github.com/repos/kballard/dcbot/forks","keys_url":"https://api.github.com/repos/kballard/dcbot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kballard/dcbot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kballard/dcbot/teams","hooks_url":"https://api.github.com/repos/kballard/dcbot/hooks","issue_events_url":"https://api.github.com/repos/kballard/dcbot/issues/events{/number}","events_url":"https://api.github.com/repos/kballard/dcbot/events","assignees_url":"https://api.github.com/repos/kballard/dcbot/assignees{/user}","branches_url":"https://api.github.com/repos/kballard/dcbot/branches{/branch}","tags_url":"https://api.github.com/repos/kballard/dcbot/tags","blobs_url":"https://api.github.com/repos/kballard/dcbot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kballard/dcbot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kballard/dcbot/git/refs{/sha}","trees_url":"https://api.github.com/repos/kballard/dcbot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kballard/dcbot/statuses/{sha}","languages_url":"https://api.github.com/repos/kballard/dcbot/languages","stargazers_url":"https://api.github.com/repos/kballard/dcbot/stargazers","contributors_url":"https://api.github.com/repos/kballard/dcbot/contributors","subscribers_url":"https://api.github.com/repos/kballard/dcbot/subscribers","subscription_url":"https://api.github.com/repos/kballard/dcbot/subscription","commits_url":"https://api.github.com/repos/kballard/dcbot/commits{/sha}","git_commits_url":"https://api.github.com/repos/kballard/dcbot/git/commits{/sha}","comments_url":"https://api.github.com/repos/kballard/dcbot/comments{/number}","issue_comment_url":"https://api.github.com/repos/kballard/dcbot/issues/comments/{number}","contents_url":"https://api.github.com/repos/kballard/dcbot/contents/{+path}","compare_url":"https://api.github.com/repos/kballard/dcbot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kballard/dcbot/merges","archive_url":"https://api.github.com/repos/kballard/dcbot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kballard/dcbot/downloads","issues_url":"https://api.github.com/repos/kballard/dcbot/issues{/number}","pulls_url":"https://api.github.com/repos/kballard/dcbot/pulls{/number}","milestones_url":"https://api.github.com/repos/kballard/dcbot/milestones{/number}","notifications_url":"https://api.github.com/repos/kballard/dcbot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kballard/dcbot/labels{/name}"},{"id":1076,"name":"cudgel","full_name":"igouss/cudgel","owner":{"login":"igouss","id":339,"avatar_url":"https://0.gravatar.com/avatar/cedb4d8fed66a5365b4ff6a556c3385f?d=https%3A%2F%2Fidenticons.github.com%2F04025959b191f8f9de3f924f0940515f.png","gravatar_id":"cedb4d8fed66a5365b4ff6a556c3385f","url":"https://api.github.com/users/igouss","html_url":"https://github.com/igouss","followers_url":"https://api.github.com/users/igouss/followers","following_url":"https://api.github.com/users/igouss/following{/other_user}","gists_url":"https://api.github.com/users/igouss/gists{/gist_id}","starred_url":"https://api.github.com/users/igouss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/igouss/subscriptions","organizations_url":"https://api.github.com/users/igouss/orgs","repos_url":"https://api.github.com/users/igouss/repos","events_url":"https://api.github.com/users/igouss/events{/privacy}","received_events_url":"https://api.github.com/users/igouss/received_events","type":"User"},"private":false,"html_url":"https://github.com/igouss/cudgel","description":"A short heavy stick","fork":false,"url":"https://api.github.com/repos/igouss/cudgel","forks_url":"https://api.github.com/repos/igouss/cudgel/forks","keys_url":"https://api.github.com/repos/igouss/cudgel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/igouss/cudgel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/igouss/cudgel/teams","hooks_url":"https://api.github.com/repos/igouss/cudgel/hooks","issue_events_url":"https://api.github.com/repos/igouss/cudgel/issues/events{/number}","events_url":"https://api.github.com/repos/igouss/cudgel/events","assignees_url":"https://api.github.com/repos/igouss/cudgel/assignees{/user}","branches_url":"https://api.github.com/repos/igouss/cudgel/branches{/branch}","tags_url":"https://api.github.com/repos/igouss/cudgel/tags","blobs_url":"https://api.github.com/repos/igouss/cudgel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/igouss/cudgel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/igouss/cudgel/git/refs{/sha}","trees_url":"https://api.github.com/repos/igouss/cudgel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/igouss/cudgel/statuses/{sha}","languages_url":"https://api.github.com/repos/igouss/cudgel/languages","stargazers_url":"https://api.github.com/repos/igouss/cudgel/stargazers","contributors_url":"https://api.github.com/repos/igouss/cudgel/contributors","subscribers_url":"https://api.github.com/repos/igouss/cudgel/subscribers","subscription_url":"https://api.github.com/repos/igouss/cudgel/subscription","commits_url":"https://api.github.com/repos/igouss/cudgel/commits{/sha}","git_commits_url":"https://api.github.com/repos/igouss/cudgel/git/commits{/sha}","comments_url":"https://api.github.com/repos/igouss/cudgel/comments{/number}","issue_comment_url":"https://api.github.com/repos/igouss/cudgel/issues/comments/{number}","contents_url":"https://api.github.com/repos/igouss/cudgel/contents/{+path}","compare_url":"https://api.github.com/repos/igouss/cudgel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/igouss/cudgel/merges","archive_url":"https://api.github.com/repos/igouss/cudgel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/igouss/cudgel/downloads","issues_url":"https://api.github.com/repos/igouss/cudgel/issues{/number}","pulls_url":"https://api.github.com/repos/igouss/cudgel/pulls{/number}","milestones_url":"https://api.github.com/repos/igouss/cudgel/milestones{/number}","notifications_url":"https://api.github.com/repos/igouss/cudgel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/igouss/cudgel/labels{/name}"},{"id":1101,"name":"micro","full_name":"seaofclouds/micro","owner":{"login":"seaofclouds","id":708,"avatar_url":"https://2.gravatar.com/avatar/0c5c5a350941044192ff794a9cd2205b?d=https%3A%2F%2Fidenticons.github.com%2Fae0eb3eed39d2bcef4622b2499a05fe6.png","gravatar_id":"0c5c5a350941044192ff794a9cd2205b","url":"https://api.github.com/users/seaofclouds","html_url":"https://github.com/seaofclouds","followers_url":"https://api.github.com/users/seaofclouds/followers","following_url":"https://api.github.com/users/seaofclouds/following{/other_user}","gists_url":"https://api.github.com/users/seaofclouds/gists{/gist_id}","starred_url":"https://api.github.com/users/seaofclouds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seaofclouds/subscriptions","organizations_url":"https://api.github.com/users/seaofclouds/orgs","repos_url":"https://api.github.com/users/seaofclouds/repos","events_url":"https://api.github.com/users/seaofclouds/events{/privacy}","received_events_url":"https://api.github.com/users/seaofclouds/received_events","type":"User"},"private":false,"html_url":"https://github.com/seaofclouds/micro","description":"blogware that fits in your pocket","fork":false,"url":"https://api.github.com/repos/seaofclouds/micro","forks_url":"https://api.github.com/repos/seaofclouds/micro/forks","keys_url":"https://api.github.com/repos/seaofclouds/micro/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seaofclouds/micro/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seaofclouds/micro/teams","hooks_url":"https://api.github.com/repos/seaofclouds/micro/hooks","issue_events_url":"https://api.github.com/repos/seaofclouds/micro/issues/events{/number}","events_url":"https://api.github.com/repos/seaofclouds/micro/events","assignees_url":"https://api.github.com/repos/seaofclouds/micro/assignees{/user}","branches_url":"https://api.github.com/repos/seaofclouds/micro/branches{/branch}","tags_url":"https://api.github.com/repos/seaofclouds/micro/tags","blobs_url":"https://api.github.com/repos/seaofclouds/micro/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seaofclouds/micro/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seaofclouds/micro/git/refs{/sha}","trees_url":"https://api.github.com/repos/seaofclouds/micro/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seaofclouds/micro/statuses/{sha}","languages_url":"https://api.github.com/repos/seaofclouds/micro/languages","stargazers_url":"https://api.github.com/repos/seaofclouds/micro/stargazers","contributors_url":"https://api.github.com/repos/seaofclouds/micro/contributors","subscribers_url":"https://api.github.com/repos/seaofclouds/micro/subscribers","subscription_url":"https://api.github.com/repos/seaofclouds/micro/subscription","commits_url":"https://api.github.com/repos/seaofclouds/micro/commits{/sha}","git_commits_url":"https://api.github.com/repos/seaofclouds/micro/git/commits{/sha}","comments_url":"https://api.github.com/repos/seaofclouds/micro/comments{/number}","issue_comment_url":"https://api.github.com/repos/seaofclouds/micro/issues/comments/{number}","contents_url":"https://api.github.com/repos/seaofclouds/micro/contents/{+path}","compare_url":"https://api.github.com/repos/seaofclouds/micro/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seaofclouds/micro/merges","archive_url":"https://api.github.com/repos/seaofclouds/micro/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seaofclouds/micro/downloads","issues_url":"https://api.github.com/repos/seaofclouds/micro/issues{/number}","pulls_url":"https://api.github.com/repos/seaofclouds/micro/pulls{/number}","milestones_url":"https://api.github.com/repos/seaofclouds/micro/milestones{/number}","notifications_url":"https://api.github.com/repos/seaofclouds/micro/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seaofclouds/micro/labels{/name}"},{"id":1102,"name":"cacheable","full_name":"tobi/cacheable","owner":{"login":"tobi","id":347,"avatar_url":"https://1.gravatar.com/avatar/44a1b8a3a990e1a496261f55cd44fbd9?d=https%3A%2F%2Fidenticons.github.com%2Fc5ff2543b53f4cc0ad3819a36752467b.png","gravatar_id":"44a1b8a3a990e1a496261f55cd44fbd9","url":"https://api.github.com/users/tobi","html_url":"https://github.com/tobi","followers_url":"https://api.github.com/users/tobi/followers","following_url":"https://api.github.com/users/tobi/following{/other_user}","gists_url":"https://api.github.com/users/tobi/gists{/gist_id}","starred_url":"https://api.github.com/users/tobi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tobi/subscriptions","organizations_url":"https://api.github.com/users/tobi/orgs","repos_url":"https://api.github.com/users/tobi/repos","events_url":"https://api.github.com/users/tobi/events{/privacy}","received_events_url":"https://api.github.com/users/tobi/received_events","type":"User"},"private":false,"html_url":"https://github.com/tobi/cacheable","description":"Page caching extension of Shopify","fork":false,"url":"https://api.github.com/repos/tobi/cacheable","forks_url":"https://api.github.com/repos/tobi/cacheable/forks","keys_url":"https://api.github.com/repos/tobi/cacheable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tobi/cacheable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tobi/cacheable/teams","hooks_url":"https://api.github.com/repos/tobi/cacheable/hooks","issue_events_url":"https://api.github.com/repos/tobi/cacheable/issues/events{/number}","events_url":"https://api.github.com/repos/tobi/cacheable/events","assignees_url":"https://api.github.com/repos/tobi/cacheable/assignees{/user}","branches_url":"https://api.github.com/repos/tobi/cacheable/branches{/branch}","tags_url":"https://api.github.com/repos/tobi/cacheable/tags","blobs_url":"https://api.github.com/repos/tobi/cacheable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tobi/cacheable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tobi/cacheable/git/refs{/sha}","trees_url":"https://api.github.com/repos/tobi/cacheable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tobi/cacheable/statuses/{sha}","languages_url":"https://api.github.com/repos/tobi/cacheable/languages","stargazers_url":"https://api.github.com/repos/tobi/cacheable/stargazers","contributors_url":"https://api.github.com/repos/tobi/cacheable/contributors","subscribers_url":"https://api.github.com/repos/tobi/cacheable/subscribers","subscription_url":"https://api.github.com/repos/tobi/cacheable/subscription","commits_url":"https://api.github.com/repos/tobi/cacheable/commits{/sha}","git_commits_url":"https://api.github.com/repos/tobi/cacheable/git/commits{/sha}","comments_url":"https://api.github.com/repos/tobi/cacheable/comments{/number}","issue_comment_url":"https://api.github.com/repos/tobi/cacheable/issues/comments/{number}","contents_url":"https://api.github.com/repos/tobi/cacheable/contents/{+path}","compare_url":"https://api.github.com/repos/tobi/cacheable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tobi/cacheable/merges","archive_url":"https://api.github.com/repos/tobi/cacheable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tobi/cacheable/downloads","issues_url":"https://api.github.com/repos/tobi/cacheable/issues{/number}","pulls_url":"https://api.github.com/repos/tobi/cacheable/pulls{/number}","milestones_url":"https://api.github.com/repos/tobi/cacheable/milestones{/number}","notifications_url":"https://api.github.com/repos/tobi/cacheable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tobi/cacheable/labels{/name}"},{"id":1104,"name":"micro-theme","full_name":"seaofclouds/micro-theme","owner":{"login":"seaofclouds","id":708,"avatar_url":"https://2.gravatar.com/avatar/0c5c5a350941044192ff794a9cd2205b?d=https%3A%2F%2Fidenticons.github.com%2Fae0eb3eed39d2bcef4622b2499a05fe6.png","gravatar_id":"0c5c5a350941044192ff794a9cd2205b","url":"https://api.github.com/users/seaofclouds","html_url":"https://github.com/seaofclouds","followers_url":"https://api.github.com/users/seaofclouds/followers","following_url":"https://api.github.com/users/seaofclouds/following{/other_user}","gists_url":"https://api.github.com/users/seaofclouds/gists{/gist_id}","starred_url":"https://api.github.com/users/seaofclouds/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/seaofclouds/subscriptions","organizations_url":"https://api.github.com/users/seaofclouds/orgs","repos_url":"https://api.github.com/users/seaofclouds/repos","events_url":"https://api.github.com/users/seaofclouds/events{/privacy}","received_events_url":"https://api.github.com/users/seaofclouds/received_events","type":"User"},"private":false,"html_url":"https://github.com/seaofclouds/micro-theme","description":"simple blogging theme for mephisto and blogger","fork":false,"url":"https://api.github.com/repos/seaofclouds/micro-theme","forks_url":"https://api.github.com/repos/seaofclouds/micro-theme/forks","keys_url":"https://api.github.com/repos/seaofclouds/micro-theme/keys{/key_id}","collaborators_url":"https://api.github.com/repos/seaofclouds/micro-theme/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/seaofclouds/micro-theme/teams","hooks_url":"https://api.github.com/repos/seaofclouds/micro-theme/hooks","issue_events_url":"https://api.github.com/repos/seaofclouds/micro-theme/issues/events{/number}","events_url":"https://api.github.com/repos/seaofclouds/micro-theme/events","assignees_url":"https://api.github.com/repos/seaofclouds/micro-theme/assignees{/user}","branches_url":"https://api.github.com/repos/seaofclouds/micro-theme/branches{/branch}","tags_url":"https://api.github.com/repos/seaofclouds/micro-theme/tags","blobs_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/refs{/sha}","trees_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/trees{/sha}","statuses_url":"https://api.github.com/repos/seaofclouds/micro-theme/statuses/{sha}","languages_url":"https://api.github.com/repos/seaofclouds/micro-theme/languages","stargazers_url":"https://api.github.com/repos/seaofclouds/micro-theme/stargazers","contributors_url":"https://api.github.com/repos/seaofclouds/micro-theme/contributors","subscribers_url":"https://api.github.com/repos/seaofclouds/micro-theme/subscribers","subscription_url":"https://api.github.com/repos/seaofclouds/micro-theme/subscription","commits_url":"https://api.github.com/repos/seaofclouds/micro-theme/commits{/sha}","git_commits_url":"https://api.github.com/repos/seaofclouds/micro-theme/git/commits{/sha}","comments_url":"https://api.github.com/repos/seaofclouds/micro-theme/comments{/number}","issue_comment_url":"https://api.github.com/repos/seaofclouds/micro-theme/issues/comments/{number}","contents_url":"https://api.github.com/repos/seaofclouds/micro-theme/contents/{+path}","compare_url":"https://api.github.com/repos/seaofclouds/micro-theme/compare/{base}...{head}","merges_url":"https://api.github.com/repos/seaofclouds/micro-theme/merges","archive_url":"https://api.github.com/repos/seaofclouds/micro-theme/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/seaofclouds/micro-theme/downloads","issues_url":"https://api.github.com/repos/seaofclouds/micro-theme/issues{/number}","pulls_url":"https://api.github.com/repos/seaofclouds/micro-theme/pulls{/number}","milestones_url":"https://api.github.com/repos/seaofclouds/micro-theme/milestones{/number}","notifications_url":"https://api.github.com/repos/seaofclouds/micro-theme/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/seaofclouds/micro-theme/labels{/name}"},{"id":1108,"name":"icaltodoscheduler","full_name":"lypanov/icaltodoscheduler","owner":{"login":"lypanov","id":311,"avatar_url":"https://2.gravatar.com/avatar/fde764988033c802599aa33705dce509?d=https%3A%2F%2Fidenticons.github.com%2F9dfcd5e558dfa04aaf37f137a1d9d3e5.png","gravatar_id":"fde764988033c802599aa33705dce509","url":"https://api.github.com/users/lypanov","html_url":"https://github.com/lypanov","followers_url":"https://api.github.com/users/lypanov/followers","following_url":"https://api.github.com/users/lypanov/following{/other_user}","gists_url":"https://api.github.com/users/lypanov/gists{/gist_id}","starred_url":"https://api.github.com/users/lypanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lypanov/subscriptions","organizations_url":"https://api.github.com/users/lypanov/orgs","repos_url":"https://api.github.com/users/lypanov/repos","events_url":"https://api.github.com/users/lypanov/events{/privacy}","received_events_url":"https://api.github.com/users/lypanov/received_events","type":"User"},"private":false,"html_url":"https://github.com/lypanov/icaltodoscheduler","description":"iCal To Do scheduler for Leopard","fork":false,"url":"https://api.github.com/repos/lypanov/icaltodoscheduler","forks_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/forks","keys_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/teams","hooks_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/hooks","issue_events_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/issues/events{/number}","events_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/events","assignees_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/assignees{/user}","branches_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/branches{/branch}","tags_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/tags","blobs_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/refs{/sha}","trees_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/statuses/{sha}","languages_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/languages","stargazers_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/stargazers","contributors_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/contributors","subscribers_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/subscribers","subscription_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/subscription","commits_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/commits{/sha}","git_commits_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/git/commits{/sha}","comments_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/comments{/number}","issue_comment_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/issues/comments/{number}","contents_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/contents/{+path}","compare_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/merges","archive_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/downloads","issues_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/issues{/number}","pulls_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/pulls{/number}","milestones_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/milestones{/number}","notifications_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lypanov/icaltodoscheduler/labels{/name}"},{"id":1111,"name":"catface","full_name":"jney/catface","owner":{"login":"jney","id":747,"avatar_url":"https://1.gravatar.com/avatar/4b87f676cb6c4d648d71000681823693?d=https%3A%2F%2Fidenticons.github.com%2F8d317bdcf4aafcfc22149d77babee96d.png","gravatar_id":"4b87f676cb6c4d648d71000681823693","url":"https://api.github.com/users/jney","html_url":"https://github.com/jney","followers_url":"https://api.github.com/users/jney/followers","following_url":"https://api.github.com/users/jney/following{/other_user}","gists_url":"https://api.github.com/users/jney/gists{/gist_id}","starred_url":"https://api.github.com/users/jney/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jney/subscriptions","organizations_url":"https://api.github.com/users/jney/orgs","repos_url":"https://api.github.com/users/jney/repos","events_url":"https://api.github.com/users/jney/events{/privacy}","received_events_url":"https://api.github.com/users/jney/received_events","type":"User"},"private":false,"html_url":"https://github.com/jney/catface","description":"jquey plugin: a mix between facebox & catfish. message alert.","fork":false,"url":"https://api.github.com/repos/jney/catface","forks_url":"https://api.github.com/repos/jney/catface/forks","keys_url":"https://api.github.com/repos/jney/catface/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jney/catface/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jney/catface/teams","hooks_url":"https://api.github.com/repos/jney/catface/hooks","issue_events_url":"https://api.github.com/repos/jney/catface/issues/events{/number}","events_url":"https://api.github.com/repos/jney/catface/events","assignees_url":"https://api.github.com/repos/jney/catface/assignees{/user}","branches_url":"https://api.github.com/repos/jney/catface/branches{/branch}","tags_url":"https://api.github.com/repos/jney/catface/tags","blobs_url":"https://api.github.com/repos/jney/catface/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jney/catface/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jney/catface/git/refs{/sha}","trees_url":"https://api.github.com/repos/jney/catface/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jney/catface/statuses/{sha}","languages_url":"https://api.github.com/repos/jney/catface/languages","stargazers_url":"https://api.github.com/repos/jney/catface/stargazers","contributors_url":"https://api.github.com/repos/jney/catface/contributors","subscribers_url":"https://api.github.com/repos/jney/catface/subscribers","subscription_url":"https://api.github.com/repos/jney/catface/subscription","commits_url":"https://api.github.com/repos/jney/catface/commits{/sha}","git_commits_url":"https://api.github.com/repos/jney/catface/git/commits{/sha}","comments_url":"https://api.github.com/repos/jney/catface/comments{/number}","issue_comment_url":"https://api.github.com/repos/jney/catface/issues/comments/{number}","contents_url":"https://api.github.com/repos/jney/catface/contents/{+path}","compare_url":"https://api.github.com/repos/jney/catface/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jney/catface/merges","archive_url":"https://api.github.com/repos/jney/catface/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jney/catface/downloads","issues_url":"https://api.github.com/repos/jney/catface/issues{/number}","pulls_url":"https://api.github.com/repos/jney/catface/pulls{/number}","milestones_url":"https://api.github.com/repos/jney/catface/milestones{/number}","notifications_url":"https://api.github.com/repos/jney/catface/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jney/catface/labels{/name}"},{"id":1124,"name":"pyelection","full_name":"alex/pyelection","owner":{"login":"alex","id":772,"avatar_url":"https://2.gravatar.com/avatar/edcdfd5affb524e0f88ec1a00ed3fe5d?d=https%3A%2F%2Fidenticons.github.com%2Fe57c6b956a6521b28495f2886ca0977a.png","gravatar_id":"edcdfd5affb524e0f88ec1a00ed3fe5d","url":"https://api.github.com/users/alex","html_url":"https://github.com/alex","followers_url":"https://api.github.com/users/alex/followers","following_url":"https://api.github.com/users/alex/following{/other_user}","gists_url":"https://api.github.com/users/alex/gists{/gist_id}","starred_url":"https://api.github.com/users/alex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alex/subscriptions","organizations_url":"https://api.github.com/users/alex/orgs","repos_url":"https://api.github.com/users/alex/repos","events_url":"https://api.github.com/users/alex/events{/privacy}","received_events_url":"https://api.github.com/users/alex/received_events","type":"User"},"private":false,"html_url":"https://github.com/alex/pyelection","description":"A python application for following the US primaries","fork":false,"url":"https://api.github.com/repos/alex/pyelection","forks_url":"https://api.github.com/repos/alex/pyelection/forks","keys_url":"https://api.github.com/repos/alex/pyelection/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alex/pyelection/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alex/pyelection/teams","hooks_url":"https://api.github.com/repos/alex/pyelection/hooks","issue_events_url":"https://api.github.com/repos/alex/pyelection/issues/events{/number}","events_url":"https://api.github.com/repos/alex/pyelection/events","assignees_url":"https://api.github.com/repos/alex/pyelection/assignees{/user}","branches_url":"https://api.github.com/repos/alex/pyelection/branches{/branch}","tags_url":"https://api.github.com/repos/alex/pyelection/tags","blobs_url":"https://api.github.com/repos/alex/pyelection/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alex/pyelection/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alex/pyelection/git/refs{/sha}","trees_url":"https://api.github.com/repos/alex/pyelection/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alex/pyelection/statuses/{sha}","languages_url":"https://api.github.com/repos/alex/pyelection/languages","stargazers_url":"https://api.github.com/repos/alex/pyelection/stargazers","contributors_url":"https://api.github.com/repos/alex/pyelection/contributors","subscribers_url":"https://api.github.com/repos/alex/pyelection/subscribers","subscription_url":"https://api.github.com/repos/alex/pyelection/subscription","commits_url":"https://api.github.com/repos/alex/pyelection/commits{/sha}","git_commits_url":"https://api.github.com/repos/alex/pyelection/git/commits{/sha}","comments_url":"https://api.github.com/repos/alex/pyelection/comments{/number}","issue_comment_url":"https://api.github.com/repos/alex/pyelection/issues/comments/{number}","contents_url":"https://api.github.com/repos/alex/pyelection/contents/{+path}","compare_url":"https://api.github.com/repos/alex/pyelection/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alex/pyelection/merges","archive_url":"https://api.github.com/repos/alex/pyelection/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alex/pyelection/downloads","issues_url":"https://api.github.com/repos/alex/pyelection/issues{/number}","pulls_url":"https://api.github.com/repos/alex/pyelection/pulls{/number}","milestones_url":"https://api.github.com/repos/alex/pyelection/milestones{/number}","notifications_url":"https://api.github.com/repos/alex/pyelection/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alex/pyelection/labels{/name}"},{"id":1126,"name":"git-todo-py","full_name":"lydgate/git-todo-py","owner":{"login":"lydgate","id":771,"avatar_url":"https://2.gravatar.com/avatar/6f0880ac5ed12ad4b40e5befd00032bd?d=https%3A%2F%2Fidenticons.github.com%2Fb7ee6f5f9aa5cd17ca1aea43ce848496.png","gravatar_id":"6f0880ac5ed12ad4b40e5befd00032bd","url":"https://api.github.com/users/lydgate","html_url":"https://github.com/lydgate","followers_url":"https://api.github.com/users/lydgate/followers","following_url":"https://api.github.com/users/lydgate/following{/other_user}","gists_url":"https://api.github.com/users/lydgate/gists{/gist_id}","starred_url":"https://api.github.com/users/lydgate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lydgate/subscriptions","organizations_url":"https://api.github.com/users/lydgate/orgs","repos_url":"https://api.github.com/users/lydgate/repos","events_url":"https://api.github.com/users/lydgate/events{/privacy}","received_events_url":"https://api.github.com/users/lydgate/received_events","type":"User"},"private":false,"html_url":"https://github.com/lydgate/git-todo-py","description":"A fork of todo.py that commits all changes into a git repository.","fork":false,"url":"https://api.github.com/repos/lydgate/git-todo-py","forks_url":"https://api.github.com/repos/lydgate/git-todo-py/forks","keys_url":"https://api.github.com/repos/lydgate/git-todo-py/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lydgate/git-todo-py/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lydgate/git-todo-py/teams","hooks_url":"https://api.github.com/repos/lydgate/git-todo-py/hooks","issue_events_url":"https://api.github.com/repos/lydgate/git-todo-py/issues/events{/number}","events_url":"https://api.github.com/repos/lydgate/git-todo-py/events","assignees_url":"https://api.github.com/repos/lydgate/git-todo-py/assignees{/user}","branches_url":"https://api.github.com/repos/lydgate/git-todo-py/branches{/branch}","tags_url":"https://api.github.com/repos/lydgate/git-todo-py/tags","blobs_url":"https://api.github.com/repos/lydgate/git-todo-py/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lydgate/git-todo-py/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lydgate/git-todo-py/git/refs{/sha}","trees_url":"https://api.github.com/repos/lydgate/git-todo-py/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lydgate/git-todo-py/statuses/{sha}","languages_url":"https://api.github.com/repos/lydgate/git-todo-py/languages","stargazers_url":"https://api.github.com/repos/lydgate/git-todo-py/stargazers","contributors_url":"https://api.github.com/repos/lydgate/git-todo-py/contributors","subscribers_url":"https://api.github.com/repos/lydgate/git-todo-py/subscribers","subscription_url":"https://api.github.com/repos/lydgate/git-todo-py/subscription","commits_url":"https://api.github.com/repos/lydgate/git-todo-py/commits{/sha}","git_commits_url":"https://api.github.com/repos/lydgate/git-todo-py/git/commits{/sha}","comments_url":"https://api.github.com/repos/lydgate/git-todo-py/comments{/number}","issue_comment_url":"https://api.github.com/repos/lydgate/git-todo-py/issues/comments/{number}","contents_url":"https://api.github.com/repos/lydgate/git-todo-py/contents/{+path}","compare_url":"https://api.github.com/repos/lydgate/git-todo-py/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lydgate/git-todo-py/merges","archive_url":"https://api.github.com/repos/lydgate/git-todo-py/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lydgate/git-todo-py/downloads","issues_url":"https://api.github.com/repos/lydgate/git-todo-py/issues{/number}","pulls_url":"https://api.github.com/repos/lydgate/git-todo-py/pulls{/number}","milestones_url":"https://api.github.com/repos/lydgate/git-todo-py/milestones{/number}","notifications_url":"https://api.github.com/repos/lydgate/git-todo-py/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lydgate/git-todo-py/labels{/name}"},{"id":1129,"name":"merb-core","full_name":"piclez/merb-core","owner":{"login":"piclez","id":781,"avatar_url":"https://2.gravatar.com/avatar/c87ede80f824a59883082b697e12348d?d=https%3A%2F%2Fidenticons.github.com%2F7143d7fbadfa4693b9eec507d9d37443.png","gravatar_id":"c87ede80f824a59883082b697e12348d","url":"https://api.github.com/users/piclez","html_url":"https://github.com/piclez","followers_url":"https://api.github.com/users/piclez/followers","following_url":"https://api.github.com/users/piclez/following{/other_user}","gists_url":"https://api.github.com/users/piclez/gists{/gist_id}","starred_url":"https://api.github.com/users/piclez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piclez/subscriptions","organizations_url":"https://api.github.com/users/piclez/orgs","repos_url":"https://api.github.com/users/piclez/repos","events_url":"https://api.github.com/users/piclez/events{/privacy}","received_events_url":"https://api.github.com/users/piclez/received_events","type":"User"},"private":false,"html_url":"https://github.com/piclez/merb-core","description":"Merb Core: All you need. None you don't.","fork":true,"url":"https://api.github.com/repos/piclez/merb-core","forks_url":"https://api.github.com/repos/piclez/merb-core/forks","keys_url":"https://api.github.com/repos/piclez/merb-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/piclez/merb-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/piclez/merb-core/teams","hooks_url":"https://api.github.com/repos/piclez/merb-core/hooks","issue_events_url":"https://api.github.com/repos/piclez/merb-core/issues/events{/number}","events_url":"https://api.github.com/repos/piclez/merb-core/events","assignees_url":"https://api.github.com/repos/piclez/merb-core/assignees{/user}","branches_url":"https://api.github.com/repos/piclez/merb-core/branches{/branch}","tags_url":"https://api.github.com/repos/piclez/merb-core/tags","blobs_url":"https://api.github.com/repos/piclez/merb-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/piclez/merb-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/piclez/merb-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/piclez/merb-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/piclez/merb-core/statuses/{sha}","languages_url":"https://api.github.com/repos/piclez/merb-core/languages","stargazers_url":"https://api.github.com/repos/piclez/merb-core/stargazers","contributors_url":"https://api.github.com/repos/piclez/merb-core/contributors","subscribers_url":"https://api.github.com/repos/piclez/merb-core/subscribers","subscription_url":"https://api.github.com/repos/piclez/merb-core/subscription","commits_url":"https://api.github.com/repos/piclez/merb-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/piclez/merb-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/piclez/merb-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/piclez/merb-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/piclez/merb-core/contents/{+path}","compare_url":"https://api.github.com/repos/piclez/merb-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/piclez/merb-core/merges","archive_url":"https://api.github.com/repos/piclez/merb-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/piclez/merb-core/downloads","issues_url":"https://api.github.com/repos/piclez/merb-core/issues{/number}","pulls_url":"https://api.github.com/repos/piclez/merb-core/pulls{/number}","milestones_url":"https://api.github.com/repos/piclez/merb-core/milestones{/number}","notifications_url":"https://api.github.com/repos/piclez/merb-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/piclez/merb-core/labels{/name}"},{"id":1130,"name":"merb-more","full_name":"piclez/merb-more","owner":{"login":"piclez","id":781,"avatar_url":"https://2.gravatar.com/avatar/c87ede80f824a59883082b697e12348d?d=https%3A%2F%2Fidenticons.github.com%2F7143d7fbadfa4693b9eec507d9d37443.png","gravatar_id":"c87ede80f824a59883082b697e12348d","url":"https://api.github.com/users/piclez","html_url":"https://github.com/piclez","followers_url":"https://api.github.com/users/piclez/followers","following_url":"https://api.github.com/users/piclez/following{/other_user}","gists_url":"https://api.github.com/users/piclez/gists{/gist_id}","starred_url":"https://api.github.com/users/piclez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piclez/subscriptions","organizations_url":"https://api.github.com/users/piclez/orgs","repos_url":"https://api.github.com/users/piclez/repos","events_url":"https://api.github.com/users/piclez/events{/privacy}","received_events_url":"https://api.github.com/users/piclez/received_events","type":"User"},"private":false,"html_url":"https://github.com/piclez/merb-more","description":"Merb More: The Full Stack. Take what you need; leave what you don't.","fork":true,"url":"https://api.github.com/repos/piclez/merb-more","forks_url":"https://api.github.com/repos/piclez/merb-more/forks","keys_url":"https://api.github.com/repos/piclez/merb-more/keys{/key_id}","collaborators_url":"https://api.github.com/repos/piclez/merb-more/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/piclez/merb-more/teams","hooks_url":"https://api.github.com/repos/piclez/merb-more/hooks","issue_events_url":"https://api.github.com/repos/piclez/merb-more/issues/events{/number}","events_url":"https://api.github.com/repos/piclez/merb-more/events","assignees_url":"https://api.github.com/repos/piclez/merb-more/assignees{/user}","branches_url":"https://api.github.com/repos/piclez/merb-more/branches{/branch}","tags_url":"https://api.github.com/repos/piclez/merb-more/tags","blobs_url":"https://api.github.com/repos/piclez/merb-more/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/piclez/merb-more/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/piclez/merb-more/git/refs{/sha}","trees_url":"https://api.github.com/repos/piclez/merb-more/git/trees{/sha}","statuses_url":"https://api.github.com/repos/piclez/merb-more/statuses/{sha}","languages_url":"https://api.github.com/repos/piclez/merb-more/languages","stargazers_url":"https://api.github.com/repos/piclez/merb-more/stargazers","contributors_url":"https://api.github.com/repos/piclez/merb-more/contributors","subscribers_url":"https://api.github.com/repos/piclez/merb-more/subscribers","subscription_url":"https://api.github.com/repos/piclez/merb-more/subscription","commits_url":"https://api.github.com/repos/piclez/merb-more/commits{/sha}","git_commits_url":"https://api.github.com/repos/piclez/merb-more/git/commits{/sha}","comments_url":"https://api.github.com/repos/piclez/merb-more/comments{/number}","issue_comment_url":"https://api.github.com/repos/piclez/merb-more/issues/comments/{number}","contents_url":"https://api.github.com/repos/piclez/merb-more/contents/{+path}","compare_url":"https://api.github.com/repos/piclez/merb-more/compare/{base}...{head}","merges_url":"https://api.github.com/repos/piclez/merb-more/merges","archive_url":"https://api.github.com/repos/piclez/merb-more/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/piclez/merb-more/downloads","issues_url":"https://api.github.com/repos/piclez/merb-more/issues{/number}","pulls_url":"https://api.github.com/repos/piclez/merb-more/pulls{/number}","milestones_url":"https://api.github.com/repos/piclez/merb-more/milestones{/number}","notifications_url":"https://api.github.com/repos/piclez/merb-more/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/piclez/merb-more/labels{/name}"},{"id":1131,"name":"merb-plugins","full_name":"piclez/merb-plugins","owner":{"login":"piclez","id":781,"avatar_url":"https://2.gravatar.com/avatar/c87ede80f824a59883082b697e12348d?d=https%3A%2F%2Fidenticons.github.com%2F7143d7fbadfa4693b9eec507d9d37443.png","gravatar_id":"c87ede80f824a59883082b697e12348d","url":"https://api.github.com/users/piclez","html_url":"https://github.com/piclez","followers_url":"https://api.github.com/users/piclez/followers","following_url":"https://api.github.com/users/piclez/following{/other_user}","gists_url":"https://api.github.com/users/piclez/gists{/gist_id}","starred_url":"https://api.github.com/users/piclez/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/piclez/subscriptions","organizations_url":"https://api.github.com/users/piclez/orgs","repos_url":"https://api.github.com/users/piclez/repos","events_url":"https://api.github.com/users/piclez/events{/privacy}","received_events_url":"https://api.github.com/users/piclez/received_events","type":"User"},"private":false,"html_url":"https://github.com/piclez/merb-plugins","description":"Merb Plugins: Even more modules to hook up your Merb installation","fork":true,"url":"https://api.github.com/repos/piclez/merb-plugins","forks_url":"https://api.github.com/repos/piclez/merb-plugins/forks","keys_url":"https://api.github.com/repos/piclez/merb-plugins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/piclez/merb-plugins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/piclez/merb-plugins/teams","hooks_url":"https://api.github.com/repos/piclez/merb-plugins/hooks","issue_events_url":"https://api.github.com/repos/piclez/merb-plugins/issues/events{/number}","events_url":"https://api.github.com/repos/piclez/merb-plugins/events","assignees_url":"https://api.github.com/repos/piclez/merb-plugins/assignees{/user}","branches_url":"https://api.github.com/repos/piclez/merb-plugins/branches{/branch}","tags_url":"https://api.github.com/repos/piclez/merb-plugins/tags","blobs_url":"https://api.github.com/repos/piclez/merb-plugins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/piclez/merb-plugins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/piclez/merb-plugins/git/refs{/sha}","trees_url":"https://api.github.com/repos/piclez/merb-plugins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/piclez/merb-plugins/statuses/{sha}","languages_url":"https://api.github.com/repos/piclez/merb-plugins/languages","stargazers_url":"https://api.github.com/repos/piclez/merb-plugins/stargazers","contributors_url":"https://api.github.com/repos/piclez/merb-plugins/contributors","subscribers_url":"https://api.github.com/repos/piclez/merb-plugins/subscribers","subscription_url":"https://api.github.com/repos/piclez/merb-plugins/subscription","commits_url":"https://api.github.com/repos/piclez/merb-plugins/commits{/sha}","git_commits_url":"https://api.github.com/repos/piclez/merb-plugins/git/commits{/sha}","comments_url":"https://api.github.com/repos/piclez/merb-plugins/comments{/number}","issue_comment_url":"https://api.github.com/repos/piclez/merb-plugins/issues/comments/{number}","contents_url":"https://api.github.com/repos/piclez/merb-plugins/contents/{+path}","compare_url":"https://api.github.com/repos/piclez/merb-plugins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/piclez/merb-plugins/merges","archive_url":"https://api.github.com/repos/piclez/merb-plugins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/piclez/merb-plugins/downloads","issues_url":"https://api.github.com/repos/piclez/merb-plugins/issues{/number}","pulls_url":"https://api.github.com/repos/piclez/merb-plugins/pulls{/number}","milestones_url":"https://api.github.com/repos/piclez/merb-plugins/milestones{/number}","notifications_url":"https://api.github.com/repos/piclez/merb-plugins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/piclez/merb-plugins/labels{/name}"},{"id":1157,"name":"ami-ragel","full_name":"jicksta/ami-ragel","owner":{"login":"jicksta","id":155,"avatar_url":"https://1.gravatar.com/avatar/c48fff96ea2bf539a7939ca6d94f2443?d=https%3A%2F%2Fidenticons.github.com%2F2a79ea27c279e471f4d180b08d62b00a.png","gravatar_id":"c48fff96ea2bf539a7939ca6d94f2443","url":"https://api.github.com/users/jicksta","html_url":"https://github.com/jicksta","followers_url":"https://api.github.com/users/jicksta/followers","following_url":"https://api.github.com/users/jicksta/following{/other_user}","gists_url":"https://api.github.com/users/jicksta/gists{/gist_id}","starred_url":"https://api.github.com/users/jicksta/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jicksta/subscriptions","organizations_url":"https://api.github.com/users/jicksta/orgs","repos_url":"https://api.github.com/users/jicksta/repos","events_url":"https://api.github.com/users/jicksta/events{/privacy}","received_events_url":"https://api.github.com/users/jicksta/received_events","type":"User"},"private":false,"html_url":"https://github.com/jicksta/ami-ragel","description":"The new Asterisk Manager Interface implementation that uses Ragel and EventMachine","fork":false,"url":"https://api.github.com/repos/jicksta/ami-ragel","forks_url":"https://api.github.com/repos/jicksta/ami-ragel/forks","keys_url":"https://api.github.com/repos/jicksta/ami-ragel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jicksta/ami-ragel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jicksta/ami-ragel/teams","hooks_url":"https://api.github.com/repos/jicksta/ami-ragel/hooks","issue_events_url":"https://api.github.com/repos/jicksta/ami-ragel/issues/events{/number}","events_url":"https://api.github.com/repos/jicksta/ami-ragel/events","assignees_url":"https://api.github.com/repos/jicksta/ami-ragel/assignees{/user}","branches_url":"https://api.github.com/repos/jicksta/ami-ragel/branches{/branch}","tags_url":"https://api.github.com/repos/jicksta/ami-ragel/tags","blobs_url":"https://api.github.com/repos/jicksta/ami-ragel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jicksta/ami-ragel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jicksta/ami-ragel/git/refs{/sha}","trees_url":"https://api.github.com/repos/jicksta/ami-ragel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jicksta/ami-ragel/statuses/{sha}","languages_url":"https://api.github.com/repos/jicksta/ami-ragel/languages","stargazers_url":"https://api.github.com/repos/jicksta/ami-ragel/stargazers","contributors_url":"https://api.github.com/repos/jicksta/ami-ragel/contributors","subscribers_url":"https://api.github.com/repos/jicksta/ami-ragel/subscribers","subscription_url":"https://api.github.com/repos/jicksta/ami-ragel/subscription","commits_url":"https://api.github.com/repos/jicksta/ami-ragel/commits{/sha}","git_commits_url":"https://api.github.com/repos/jicksta/ami-ragel/git/commits{/sha}","comments_url":"https://api.github.com/repos/jicksta/ami-ragel/comments{/number}","issue_comment_url":"https://api.github.com/repos/jicksta/ami-ragel/issues/comments/{number}","contents_url":"https://api.github.com/repos/jicksta/ami-ragel/contents/{+path}","compare_url":"https://api.github.com/repos/jicksta/ami-ragel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jicksta/ami-ragel/merges","archive_url":"https://api.github.com/repos/jicksta/ami-ragel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jicksta/ami-ragel/downloads","issues_url":"https://api.github.com/repos/jicksta/ami-ragel/issues{/number}","pulls_url":"https://api.github.com/repos/jicksta/ami-ragel/pulls{/number}","milestones_url":"https://api.github.com/repos/jicksta/ami-ragel/milestones{/number}","notifications_url":"https://api.github.com/repos/jicksta/ami-ragel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jicksta/ami-ragel/labels{/name}"},{"id":1196,"name":"test","full_name":"weepy/test","owner":{"login":"weepy","id":820,"avatar_url":"https://0.gravatar.com/avatar/fccf42643feb2aaf9e6b4bfce0d737cc?d=https%3A%2F%2Fidenticons.github.com%2Fe2a2dcc36a08a345332c751b2f2e476c.png","gravatar_id":"fccf42643feb2aaf9e6b4bfce0d737cc","url":"https://api.github.com/users/weepy","html_url":"https://github.com/weepy","followers_url":"https://api.github.com/users/weepy/followers","following_url":"https://api.github.com/users/weepy/following{/other_user}","gists_url":"https://api.github.com/users/weepy/gists{/gist_id}","starred_url":"https://api.github.com/users/weepy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/weepy/subscriptions","organizations_url":"https://api.github.com/users/weepy/orgs","repos_url":"https://api.github.com/users/weepy/repos","events_url":"https://api.github.com/users/weepy/events{/privacy}","received_events_url":"https://api.github.com/users/weepy/received_events","type":"User"},"private":false,"html_url":"https://github.com/weepy/test","description":"test","fork":false,"url":"https://api.github.com/repos/weepy/test","forks_url":"https://api.github.com/repos/weepy/test/forks","keys_url":"https://api.github.com/repos/weepy/test/keys{/key_id}","collaborators_url":"https://api.github.com/repos/weepy/test/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/weepy/test/teams","hooks_url":"https://api.github.com/repos/weepy/test/hooks","issue_events_url":"https://api.github.com/repos/weepy/test/issues/events{/number}","events_url":"https://api.github.com/repos/weepy/test/events","assignees_url":"https://api.github.com/repos/weepy/test/assignees{/user}","branches_url":"https://api.github.com/repos/weepy/test/branches{/branch}","tags_url":"https://api.github.com/repos/weepy/test/tags","blobs_url":"https://api.github.com/repos/weepy/test/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/weepy/test/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/weepy/test/git/refs{/sha}","trees_url":"https://api.github.com/repos/weepy/test/git/trees{/sha}","statuses_url":"https://api.github.com/repos/weepy/test/statuses/{sha}","languages_url":"https://api.github.com/repos/weepy/test/languages","stargazers_url":"https://api.github.com/repos/weepy/test/stargazers","contributors_url":"https://api.github.com/repos/weepy/test/contributors","subscribers_url":"https://api.github.com/repos/weepy/test/subscribers","subscription_url":"https://api.github.com/repos/weepy/test/subscription","commits_url":"https://api.github.com/repos/weepy/test/commits{/sha}","git_commits_url":"https://api.github.com/repos/weepy/test/git/commits{/sha}","comments_url":"https://api.github.com/repos/weepy/test/comments{/number}","issue_comment_url":"https://api.github.com/repos/weepy/test/issues/comments/{number}","contents_url":"https://api.github.com/repos/weepy/test/contents/{+path}","compare_url":"https://api.github.com/repos/weepy/test/compare/{base}...{head}","merges_url":"https://api.github.com/repos/weepy/test/merges","archive_url":"https://api.github.com/repos/weepy/test/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/weepy/test/downloads","issues_url":"https://api.github.com/repos/weepy/test/issues{/number}","pulls_url":"https://api.github.com/repos/weepy/test/pulls{/number}","milestones_url":"https://api.github.com/repos/weepy/test/milestones{/number}","notifications_url":"https://api.github.com/repos/weepy/test/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/weepy/test/labels{/name}"},{"id":1208,"name":"hydrate","full_name":"olivM/hydrate","owner":{"login":"olivM","id":855,"avatar_url":"https://2.gravatar.com/avatar/0d4a250c55cc214768d6544ea43dc21f?d=https%3A%2F%2Fidenticons.github.com%2Faddfa9b7e234254d26e9c7f2af1005cb.png","gravatar_id":"0d4a250c55cc214768d6544ea43dc21f","url":"https://api.github.com/users/olivM","html_url":"https://github.com/olivM","followers_url":"https://api.github.com/users/olivM/followers","following_url":"https://api.github.com/users/olivM/following{/other_user}","gists_url":"https://api.github.com/users/olivM/gists{/gist_id}","starred_url":"https://api.github.com/users/olivM/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/olivM/subscriptions","organizations_url":"https://api.github.com/users/olivM/orgs","repos_url":"https://api.github.com/users/olivM/repos","events_url":"https://api.github.com/users/olivM/events{/privacy}","received_events_url":"https://api.github.com/users/olivM/received_events","type":"User"},"private":false,"html_url":"https://github.com/olivM/hydrate","description":"a blog hub (a daemon that aggregate items and re-publish them on differents platforms) : an attempt for a one4all blogging system","fork":false,"url":"https://api.github.com/repos/olivM/hydrate","forks_url":"https://api.github.com/repos/olivM/hydrate/forks","keys_url":"https://api.github.com/repos/olivM/hydrate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/olivM/hydrate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/olivM/hydrate/teams","hooks_url":"https://api.github.com/repos/olivM/hydrate/hooks","issue_events_url":"https://api.github.com/repos/olivM/hydrate/issues/events{/number}","events_url":"https://api.github.com/repos/olivM/hydrate/events","assignees_url":"https://api.github.com/repos/olivM/hydrate/assignees{/user}","branches_url":"https://api.github.com/repos/olivM/hydrate/branches{/branch}","tags_url":"https://api.github.com/repos/olivM/hydrate/tags","blobs_url":"https://api.github.com/repos/olivM/hydrate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/olivM/hydrate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/olivM/hydrate/git/refs{/sha}","trees_url":"https://api.github.com/repos/olivM/hydrate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/olivM/hydrate/statuses/{sha}","languages_url":"https://api.github.com/repos/olivM/hydrate/languages","stargazers_url":"https://api.github.com/repos/olivM/hydrate/stargazers","contributors_url":"https://api.github.com/repos/olivM/hydrate/contributors","subscribers_url":"https://api.github.com/repos/olivM/hydrate/subscribers","subscription_url":"https://api.github.com/repos/olivM/hydrate/subscription","commits_url":"https://api.github.com/repos/olivM/hydrate/commits{/sha}","git_commits_url":"https://api.github.com/repos/olivM/hydrate/git/commits{/sha}","comments_url":"https://api.github.com/repos/olivM/hydrate/comments{/number}","issue_comment_url":"https://api.github.com/repos/olivM/hydrate/issues/comments/{number}","contents_url":"https://api.github.com/repos/olivM/hydrate/contents/{+path}","compare_url":"https://api.github.com/repos/olivM/hydrate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/olivM/hydrate/merges","archive_url":"https://api.github.com/repos/olivM/hydrate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/olivM/hydrate/downloads","issues_url":"https://api.github.com/repos/olivM/hydrate/issues{/number}","pulls_url":"https://api.github.com/repos/olivM/hydrate/pulls{/number}","milestones_url":"https://api.github.com/repos/olivM/hydrate/milestones{/number}","notifications_url":"https://api.github.com/repos/olivM/hydrate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/olivM/hydrate/labels{/name}"},{"id":1212,"name":"pmpknpi","full_name":"sintaxi/pmpknpi","owner":{"login":"sintaxi","id":867,"avatar_url":"https://0.gravatar.com/avatar/bcf46750ba13cf50684639eecda1aa4f?d=https%3A%2F%2Fidenticons.github.com%2Fede7e2b6d13a41ddf9f4bdef84fdc737.png","gravatar_id":"bcf46750ba13cf50684639eecda1aa4f","url":"https://api.github.com/users/sintaxi","html_url":"https://github.com/sintaxi","followers_url":"https://api.github.com/users/sintaxi/followers","following_url":"https://api.github.com/users/sintaxi/following{/other_user}","gists_url":"https://api.github.com/users/sintaxi/gists{/gist_id}","starred_url":"https://api.github.com/users/sintaxi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sintaxi/subscriptions","organizations_url":"https://api.github.com/users/sintaxi/orgs","repos_url":"https://api.github.com/users/sintaxi/repos","events_url":"https://api.github.com/users/sintaxi/events{/privacy}","received_events_url":"https://api.github.com/users/sintaxi/received_events","type":"User"},"private":false,"html_url":"https://github.com/sintaxi/pmpknpi","description":"A RESTful Blog API written in Merb","fork":false,"url":"https://api.github.com/repos/sintaxi/pmpknpi","forks_url":"https://api.github.com/repos/sintaxi/pmpknpi/forks","keys_url":"https://api.github.com/repos/sintaxi/pmpknpi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sintaxi/pmpknpi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sintaxi/pmpknpi/teams","hooks_url":"https://api.github.com/repos/sintaxi/pmpknpi/hooks","issue_events_url":"https://api.github.com/repos/sintaxi/pmpknpi/issues/events{/number}","events_url":"https://api.github.com/repos/sintaxi/pmpknpi/events","assignees_url":"https://api.github.com/repos/sintaxi/pmpknpi/assignees{/user}","branches_url":"https://api.github.com/repos/sintaxi/pmpknpi/branches{/branch}","tags_url":"https://api.github.com/repos/sintaxi/pmpknpi/tags","blobs_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/refs{/sha}","trees_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sintaxi/pmpknpi/statuses/{sha}","languages_url":"https://api.github.com/repos/sintaxi/pmpknpi/languages","stargazers_url":"https://api.github.com/repos/sintaxi/pmpknpi/stargazers","contributors_url":"https://api.github.com/repos/sintaxi/pmpknpi/contributors","subscribers_url":"https://api.github.com/repos/sintaxi/pmpknpi/subscribers","subscription_url":"https://api.github.com/repos/sintaxi/pmpknpi/subscription","commits_url":"https://api.github.com/repos/sintaxi/pmpknpi/commits{/sha}","git_commits_url":"https://api.github.com/repos/sintaxi/pmpknpi/git/commits{/sha}","comments_url":"https://api.github.com/repos/sintaxi/pmpknpi/comments{/number}","issue_comment_url":"https://api.github.com/repos/sintaxi/pmpknpi/issues/comments/{number}","contents_url":"https://api.github.com/repos/sintaxi/pmpknpi/contents/{+path}","compare_url":"https://api.github.com/repos/sintaxi/pmpknpi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sintaxi/pmpknpi/merges","archive_url":"https://api.github.com/repos/sintaxi/pmpknpi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sintaxi/pmpknpi/downloads","issues_url":"https://api.github.com/repos/sintaxi/pmpknpi/issues{/number}","pulls_url":"https://api.github.com/repos/sintaxi/pmpknpi/pulls{/number}","milestones_url":"https://api.github.com/repos/sintaxi/pmpknpi/milestones{/number}","notifications_url":"https://api.github.com/repos/sintaxi/pmpknpi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sintaxi/pmpknpi/labels{/name}"},{"id":1213,"name":"restful-authentication","full_name":"rmanalan/restful-authentication","owner":{"login":"rmanalan","id":549,"avatar_url":"https://0.gravatar.com/avatar/78c939ec0390fe89d78cdbf85e8e6856?d=https%3A%2F%2Fidenticons.github.com%2Fccb1d45fb76f7c5a0bf619f979c6cf36.png","gravatar_id":"78c939ec0390fe89d78cdbf85e8e6856","url":"https://api.github.com/users/rmanalan","html_url":"https://github.com/rmanalan","followers_url":"https://api.github.com/users/rmanalan/followers","following_url":"https://api.github.com/users/rmanalan/following{/other_user}","gists_url":"https://api.github.com/users/rmanalan/gists{/gist_id}","starred_url":"https://api.github.com/users/rmanalan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmanalan/subscriptions","organizations_url":"https://api.github.com/users/rmanalan/orgs","repos_url":"https://api.github.com/users/rmanalan/repos","events_url":"https://api.github.com/users/rmanalan/events{/privacy}","received_events_url":"https://api.github.com/users/rmanalan/received_events","type":"User"},"private":false,"html_url":"https://github.com/rmanalan/restful-authentication","description":"Generates common user authentication code for Rails/Merb, with a full test/unit and rspec suite and optional Acts as State Machine support built-in. Added support for Oracle SSO authentication.","fork":true,"url":"https://api.github.com/repos/rmanalan/restful-authentication","forks_url":"https://api.github.com/repos/rmanalan/restful-authentication/forks","keys_url":"https://api.github.com/repos/rmanalan/restful-authentication/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rmanalan/restful-authentication/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rmanalan/restful-authentication/teams","hooks_url":"https://api.github.com/repos/rmanalan/restful-authentication/hooks","issue_events_url":"https://api.github.com/repos/rmanalan/restful-authentication/issues/events{/number}","events_url":"https://api.github.com/repos/rmanalan/restful-authentication/events","assignees_url":"https://api.github.com/repos/rmanalan/restful-authentication/assignees{/user}","branches_url":"https://api.github.com/repos/rmanalan/restful-authentication/branches{/branch}","tags_url":"https://api.github.com/repos/rmanalan/restful-authentication/tags","blobs_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/refs{/sha}","trees_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rmanalan/restful-authentication/statuses/{sha}","languages_url":"https://api.github.com/repos/rmanalan/restful-authentication/languages","stargazers_url":"https://api.github.com/repos/rmanalan/restful-authentication/stargazers","contributors_url":"https://api.github.com/repos/rmanalan/restful-authentication/contributors","subscribers_url":"https://api.github.com/repos/rmanalan/restful-authentication/subscribers","subscription_url":"https://api.github.com/repos/rmanalan/restful-authentication/subscription","commits_url":"https://api.github.com/repos/rmanalan/restful-authentication/commits{/sha}","git_commits_url":"https://api.github.com/repos/rmanalan/restful-authentication/git/commits{/sha}","comments_url":"https://api.github.com/repos/rmanalan/restful-authentication/comments{/number}","issue_comment_url":"https://api.github.com/repos/rmanalan/restful-authentication/issues/comments/{number}","contents_url":"https://api.github.com/repos/rmanalan/restful-authentication/contents/{+path}","compare_url":"https://api.github.com/repos/rmanalan/restful-authentication/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rmanalan/restful-authentication/merges","archive_url":"https://api.github.com/repos/rmanalan/restful-authentication/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rmanalan/restful-authentication/downloads","issues_url":"https://api.github.com/repos/rmanalan/restful-authentication/issues{/number}","pulls_url":"https://api.github.com/repos/rmanalan/restful-authentication/pulls{/number}","milestones_url":"https://api.github.com/repos/rmanalan/restful-authentication/milestones{/number}","notifications_url":"https://api.github.com/repos/rmanalan/restful-authentication/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rmanalan/restful-authentication/labels{/name}"},{"id":1217,"name":"facebox","full_name":"rmanalan/facebox","owner":{"login":"rmanalan","id":549,"avatar_url":"https://0.gravatar.com/avatar/78c939ec0390fe89d78cdbf85e8e6856?d=https%3A%2F%2Fidenticons.github.com%2Fccb1d45fb76f7c5a0bf619f979c6cf36.png","gravatar_id":"78c939ec0390fe89d78cdbf85e8e6856","url":"https://api.github.com/users/rmanalan","html_url":"https://github.com/rmanalan","followers_url":"https://api.github.com/users/rmanalan/followers","following_url":"https://api.github.com/users/rmanalan/following{/other_user}","gists_url":"https://api.github.com/users/rmanalan/gists{/gist_id}","starred_url":"https://api.github.com/users/rmanalan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmanalan/subscriptions","organizations_url":"https://api.github.com/users/rmanalan/orgs","repos_url":"https://api.github.com/users/rmanalan/repos","events_url":"https://api.github.com/users/rmanalan/events{/privacy}","received_events_url":"https://api.github.com/users/rmanalan/received_events","type":"User"},"private":false,"html_url":"https://github.com/rmanalan/facebox","description":"Facebook-style lightbox, built in jQuery","fork":true,"url":"https://api.github.com/repos/rmanalan/facebox","forks_url":"https://api.github.com/repos/rmanalan/facebox/forks","keys_url":"https://api.github.com/repos/rmanalan/facebox/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rmanalan/facebox/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rmanalan/facebox/teams","hooks_url":"https://api.github.com/repos/rmanalan/facebox/hooks","issue_events_url":"https://api.github.com/repos/rmanalan/facebox/issues/events{/number}","events_url":"https://api.github.com/repos/rmanalan/facebox/events","assignees_url":"https://api.github.com/repos/rmanalan/facebox/assignees{/user}","branches_url":"https://api.github.com/repos/rmanalan/facebox/branches{/branch}","tags_url":"https://api.github.com/repos/rmanalan/facebox/tags","blobs_url":"https://api.github.com/repos/rmanalan/facebox/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rmanalan/facebox/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rmanalan/facebox/git/refs{/sha}","trees_url":"https://api.github.com/repos/rmanalan/facebox/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rmanalan/facebox/statuses/{sha}","languages_url":"https://api.github.com/repos/rmanalan/facebox/languages","stargazers_url":"https://api.github.com/repos/rmanalan/facebox/stargazers","contributors_url":"https://api.github.com/repos/rmanalan/facebox/contributors","subscribers_url":"https://api.github.com/repos/rmanalan/facebox/subscribers","subscription_url":"https://api.github.com/repos/rmanalan/facebox/subscription","commits_url":"https://api.github.com/repos/rmanalan/facebox/commits{/sha}","git_commits_url":"https://api.github.com/repos/rmanalan/facebox/git/commits{/sha}","comments_url":"https://api.github.com/repos/rmanalan/facebox/comments{/number}","issue_comment_url":"https://api.github.com/repos/rmanalan/facebox/issues/comments/{number}","contents_url":"https://api.github.com/repos/rmanalan/facebox/contents/{+path}","compare_url":"https://api.github.com/repos/rmanalan/facebox/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rmanalan/facebox/merges","archive_url":"https://api.github.com/repos/rmanalan/facebox/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rmanalan/facebox/downloads","issues_url":"https://api.github.com/repos/rmanalan/facebox/issues{/number}","pulls_url":"https://api.github.com/repos/rmanalan/facebox/pulls{/number}","milestones_url":"https://api.github.com/repos/rmanalan/facebox/milestones{/number}","notifications_url":"https://api.github.com/repos/rmanalan/facebox/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rmanalan/facebox/labels{/name}"},{"id":1220,"name":"gcbot","full_name":"halorgium/gcbot","owner":{"login":"halorgium","id":263,"avatar_url":"https://1.gravatar.com/avatar/3200c5348a7c08c2f20fdaceac6804b0?d=https%3A%2F%2Fidenticons.github.com%2F8c19f571e251e61cb8dd3612f26d5ecf.png","gravatar_id":"3200c5348a7c08c2f20fdaceac6804b0","url":"https://api.github.com/users/halorgium","html_url":"https://github.com/halorgium","followers_url":"https://api.github.com/users/halorgium/followers","following_url":"https://api.github.com/users/halorgium/following{/other_user}","gists_url":"https://api.github.com/users/halorgium/gists{/gist_id}","starred_url":"https://api.github.com/users/halorgium/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/halorgium/subscriptions","organizations_url":"https://api.github.com/users/halorgium/orgs","repos_url":"https://api.github.com/users/halorgium/repos","events_url":"https://api.github.com/users/halorgium/events{/privacy}","received_events_url":"https://api.github.com/users/halorgium/received_events","type":"User"},"private":false,"html_url":"https://github.com/halorgium/gcbot","description":"","fork":false,"url":"https://api.github.com/repos/halorgium/gcbot","forks_url":"https://api.github.com/repos/halorgium/gcbot/forks","keys_url":"https://api.github.com/repos/halorgium/gcbot/keys{/key_id}","collaborators_url":"https://api.github.com/repos/halorgium/gcbot/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/halorgium/gcbot/teams","hooks_url":"https://api.github.com/repos/halorgium/gcbot/hooks","issue_events_url":"https://api.github.com/repos/halorgium/gcbot/issues/events{/number}","events_url":"https://api.github.com/repos/halorgium/gcbot/events","assignees_url":"https://api.github.com/repos/halorgium/gcbot/assignees{/user}","branches_url":"https://api.github.com/repos/halorgium/gcbot/branches{/branch}","tags_url":"https://api.github.com/repos/halorgium/gcbot/tags","blobs_url":"https://api.github.com/repos/halorgium/gcbot/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/halorgium/gcbot/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/halorgium/gcbot/git/refs{/sha}","trees_url":"https://api.github.com/repos/halorgium/gcbot/git/trees{/sha}","statuses_url":"https://api.github.com/repos/halorgium/gcbot/statuses/{sha}","languages_url":"https://api.github.com/repos/halorgium/gcbot/languages","stargazers_url":"https://api.github.com/repos/halorgium/gcbot/stargazers","contributors_url":"https://api.github.com/repos/halorgium/gcbot/contributors","subscribers_url":"https://api.github.com/repos/halorgium/gcbot/subscribers","subscription_url":"https://api.github.com/repos/halorgium/gcbot/subscription","commits_url":"https://api.github.com/repos/halorgium/gcbot/commits{/sha}","git_commits_url":"https://api.github.com/repos/halorgium/gcbot/git/commits{/sha}","comments_url":"https://api.github.com/repos/halorgium/gcbot/comments{/number}","issue_comment_url":"https://api.github.com/repos/halorgium/gcbot/issues/comments/{number}","contents_url":"https://api.github.com/repos/halorgium/gcbot/contents/{+path}","compare_url":"https://api.github.com/repos/halorgium/gcbot/compare/{base}...{head}","merges_url":"https://api.github.com/repos/halorgium/gcbot/merges","archive_url":"https://api.github.com/repos/halorgium/gcbot/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/halorgium/gcbot/downloads","issues_url":"https://api.github.com/repos/halorgium/gcbot/issues{/number}","pulls_url":"https://api.github.com/repos/halorgium/gcbot/pulls{/number}","milestones_url":"https://api.github.com/repos/halorgium/gcbot/milestones{/number}","notifications_url":"https://api.github.com/repos/halorgium/gcbot/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/halorgium/gcbot/labels{/name}"},{"id":1227,"name":"will_paginate","full_name":"mislav/will_paginate","owner":{"login":"mislav","id":887,"avatar_url":"https://0.gravatar.com/avatar/8f93a872e399bc1353cc8d4e791d5401?d=https%3A%2F%2Fidenticons.github.com%2F7ce3284b743aefde80ffd9aec500e085.png","gravatar_id":"8f93a872e399bc1353cc8d4e791d5401","url":"https://api.github.com/users/mislav","html_url":"https://github.com/mislav","followers_url":"https://api.github.com/users/mislav/followers","following_url":"https://api.github.com/users/mislav/following{/other_user}","gists_url":"https://api.github.com/users/mislav/gists{/gist_id}","starred_url":"https://api.github.com/users/mislav/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mislav/subscriptions","organizations_url":"https://api.github.com/users/mislav/orgs","repos_url":"https://api.github.com/users/mislav/repos","events_url":"https://api.github.com/users/mislav/events{/privacy}","received_events_url":"https://api.github.com/users/mislav/received_events","type":"User"},"private":false,"html_url":"https://github.com/mislav/will_paginate","description":"Pagination library for Rails 3, Sinatra, Merb, DataMapper, and more","fork":false,"url":"https://api.github.com/repos/mislav/will_paginate","forks_url":"https://api.github.com/repos/mislav/will_paginate/forks","keys_url":"https://api.github.com/repos/mislav/will_paginate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mislav/will_paginate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mislav/will_paginate/teams","hooks_url":"https://api.github.com/repos/mislav/will_paginate/hooks","issue_events_url":"https://api.github.com/repos/mislav/will_paginate/issues/events{/number}","events_url":"https://api.github.com/repos/mislav/will_paginate/events","assignees_url":"https://api.github.com/repos/mislav/will_paginate/assignees{/user}","branches_url":"https://api.github.com/repos/mislav/will_paginate/branches{/branch}","tags_url":"https://api.github.com/repos/mislav/will_paginate/tags","blobs_url":"https://api.github.com/repos/mislav/will_paginate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mislav/will_paginate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mislav/will_paginate/git/refs{/sha}","trees_url":"https://api.github.com/repos/mislav/will_paginate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mislav/will_paginate/statuses/{sha}","languages_url":"https://api.github.com/repos/mislav/will_paginate/languages","stargazers_url":"https://api.github.com/repos/mislav/will_paginate/stargazers","contributors_url":"https://api.github.com/repos/mislav/will_paginate/contributors","subscribers_url":"https://api.github.com/repos/mislav/will_paginate/subscribers","subscription_url":"https://api.github.com/repos/mislav/will_paginate/subscription","commits_url":"https://api.github.com/repos/mislav/will_paginate/commits{/sha}","git_commits_url":"https://api.github.com/repos/mislav/will_paginate/git/commits{/sha}","comments_url":"https://api.github.com/repos/mislav/will_paginate/comments{/number}","issue_comment_url":"https://api.github.com/repos/mislav/will_paginate/issues/comments/{number}","contents_url":"https://api.github.com/repos/mislav/will_paginate/contents/{+path}","compare_url":"https://api.github.com/repos/mislav/will_paginate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mislav/will_paginate/merges","archive_url":"https://api.github.com/repos/mislav/will_paginate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mislav/will_paginate/downloads","issues_url":"https://api.github.com/repos/mislav/will_paginate/issues{/number}","pulls_url":"https://api.github.com/repos/mislav/will_paginate/pulls{/number}","milestones_url":"https://api.github.com/repos/mislav/will_paginate/milestones{/number}","notifications_url":"https://api.github.com/repos/mislav/will_paginate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mislav/will_paginate/labels{/name}"},{"id":1233,"name":"socialgraph-viewer","full_name":"rmanalan/socialgraph-viewer","owner":{"login":"rmanalan","id":549,"avatar_url":"https://0.gravatar.com/avatar/78c939ec0390fe89d78cdbf85e8e6856?d=https%3A%2F%2Fidenticons.github.com%2Fccb1d45fb76f7c5a0bf619f979c6cf36.png","gravatar_id":"78c939ec0390fe89d78cdbf85e8e6856","url":"https://api.github.com/users/rmanalan","html_url":"https://github.com/rmanalan","followers_url":"https://api.github.com/users/rmanalan/followers","following_url":"https://api.github.com/users/rmanalan/following{/other_user}","gists_url":"https://api.github.com/users/rmanalan/gists{/gist_id}","starred_url":"https://api.github.com/users/rmanalan/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/rmanalan/subscriptions","organizations_url":"https://api.github.com/users/rmanalan/orgs","repos_url":"https://api.github.com/users/rmanalan/repos","events_url":"https://api.github.com/users/rmanalan/events{/privacy}","received_events_url":"https://api.github.com/users/rmanalan/received_events","type":"User"},"private":false,"html_url":"https://github.com/rmanalan/socialgraph-viewer","description":"Simple social graph javascript viewer. Uses the Google Social Graph API","fork":false,"url":"https://api.github.com/repos/rmanalan/socialgraph-viewer","forks_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/forks","keys_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/teams","hooks_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/hooks","issue_events_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/issues/events{/number}","events_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/events","assignees_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/assignees{/user}","branches_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/branches{/branch}","tags_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/tags","blobs_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/refs{/sha}","trees_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/statuses/{sha}","languages_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/languages","stargazers_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/stargazers","contributors_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/contributors","subscribers_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/subscribers","subscription_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/subscription","commits_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/commits{/sha}","git_commits_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/git/commits{/sha}","comments_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/comments{/number}","issue_comment_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/issues/comments/{number}","contents_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/contents/{+path}","compare_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/merges","archive_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/downloads","issues_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/issues{/number}","pulls_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/pulls{/number}","milestones_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/milestones{/number}","notifications_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/rmanalan/socialgraph-viewer/labels{/name}"},{"id":1234,"name":"ruvi","full_name":"lypanov/ruvi","owner":{"login":"lypanov","id":311,"avatar_url":"https://2.gravatar.com/avatar/fde764988033c802599aa33705dce509?d=https%3A%2F%2Fidenticons.github.com%2F9dfcd5e558dfa04aaf37f137a1d9d3e5.png","gravatar_id":"fde764988033c802599aa33705dce509","url":"https://api.github.com/users/lypanov","html_url":"https://github.com/lypanov","followers_url":"https://api.github.com/users/lypanov/followers","following_url":"https://api.github.com/users/lypanov/following{/other_user}","gists_url":"https://api.github.com/users/lypanov/gists{/gist_id}","starred_url":"https://api.github.com/users/lypanov/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lypanov/subscriptions","organizations_url":"https://api.github.com/users/lypanov/orgs","repos_url":"https://api.github.com/users/lypanov/repos","events_url":"https://api.github.com/users/lypanov/events{/privacy}","received_events_url":"https://api.github.com/users/lypanov/received_events","type":"User"},"private":false,"html_url":"https://github.com/lypanov/ruvi","description":"vi wannebe written in ruby","fork":false,"url":"https://api.github.com/repos/lypanov/ruvi","forks_url":"https://api.github.com/repos/lypanov/ruvi/forks","keys_url":"https://api.github.com/repos/lypanov/ruvi/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lypanov/ruvi/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lypanov/ruvi/teams","hooks_url":"https://api.github.com/repos/lypanov/ruvi/hooks","issue_events_url":"https://api.github.com/repos/lypanov/ruvi/issues/events{/number}","events_url":"https://api.github.com/repos/lypanov/ruvi/events","assignees_url":"https://api.github.com/repos/lypanov/ruvi/assignees{/user}","branches_url":"https://api.github.com/repos/lypanov/ruvi/branches{/branch}","tags_url":"https://api.github.com/repos/lypanov/ruvi/tags","blobs_url":"https://api.github.com/repos/lypanov/ruvi/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lypanov/ruvi/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lypanov/ruvi/git/refs{/sha}","trees_url":"https://api.github.com/repos/lypanov/ruvi/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lypanov/ruvi/statuses/{sha}","languages_url":"https://api.github.com/repos/lypanov/ruvi/languages","stargazers_url":"https://api.github.com/repos/lypanov/ruvi/stargazers","contributors_url":"https://api.github.com/repos/lypanov/ruvi/contributors","subscribers_url":"https://api.github.com/repos/lypanov/ruvi/subscribers","subscription_url":"https://api.github.com/repos/lypanov/ruvi/subscription","commits_url":"https://api.github.com/repos/lypanov/ruvi/commits{/sha}","git_commits_url":"https://api.github.com/repos/lypanov/ruvi/git/commits{/sha}","comments_url":"https://api.github.com/repos/lypanov/ruvi/comments{/number}","issue_comment_url":"https://api.github.com/repos/lypanov/ruvi/issues/comments/{number}","contents_url":"https://api.github.com/repos/lypanov/ruvi/contents/{+path}","compare_url":"https://api.github.com/repos/lypanov/ruvi/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lypanov/ruvi/merges","archive_url":"https://api.github.com/repos/lypanov/ruvi/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lypanov/ruvi/downloads","issues_url":"https://api.github.com/repos/lypanov/ruvi/issues{/number}","pulls_url":"https://api.github.com/repos/lypanov/ruvi/pulls{/number}","milestones_url":"https://api.github.com/repos/lypanov/ruvi/milestones{/number}","notifications_url":"https://api.github.com/repos/lypanov/ruvi/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lypanov/ruvi/labels{/name}"},{"id":1241,"name":"soco","full_name":"caius/soco","owner":{"login":"caius","id":696,"avatar_url":"https://0.gravatar.com/avatar/ad072c8b8e23a18a49eddb6517490fa1?d=https%3A%2F%2Fidenticons.github.com%2F0cb929eae7a499e50248a3a78f7acfc7.png","gravatar_id":"ad072c8b8e23a18a49eddb6517490fa1","url":"https://api.github.com/users/caius","html_url":"https://github.com/caius","followers_url":"https://api.github.com/users/caius/followers","following_url":"https://api.github.com/users/caius/following{/other_user}","gists_url":"https://api.github.com/users/caius/gists{/gist_id}","starred_url":"https://api.github.com/users/caius/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/caius/subscriptions","organizations_url":"https://api.github.com/users/caius/orgs","repos_url":"https://api.github.com/users/caius/repos","events_url":"https://api.github.com/users/caius/events{/privacy}","received_events_url":"https://api.github.com/users/caius/received_events","type":"User"},"private":false,"html_url":"https://github.com/caius/soco","description":"A static file dynamically generated website backend","fork":false,"url":"https://api.github.com/repos/caius/soco","forks_url":"https://api.github.com/repos/caius/soco/forks","keys_url":"https://api.github.com/repos/caius/soco/keys{/key_id}","collaborators_url":"https://api.github.com/repos/caius/soco/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/caius/soco/teams","hooks_url":"https://api.github.com/repos/caius/soco/hooks","issue_events_url":"https://api.github.com/repos/caius/soco/issues/events{/number}","events_url":"https://api.github.com/repos/caius/soco/events","assignees_url":"https://api.github.com/repos/caius/soco/assignees{/user}","branches_url":"https://api.github.com/repos/caius/soco/branches{/branch}","tags_url":"https://api.github.com/repos/caius/soco/tags","blobs_url":"https://api.github.com/repos/caius/soco/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/caius/soco/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/caius/soco/git/refs{/sha}","trees_url":"https://api.github.com/repos/caius/soco/git/trees{/sha}","statuses_url":"https://api.github.com/repos/caius/soco/statuses/{sha}","languages_url":"https://api.github.com/repos/caius/soco/languages","stargazers_url":"https://api.github.com/repos/caius/soco/stargazers","contributors_url":"https://api.github.com/repos/caius/soco/contributors","subscribers_url":"https://api.github.com/repos/caius/soco/subscribers","subscription_url":"https://api.github.com/repos/caius/soco/subscription","commits_url":"https://api.github.com/repos/caius/soco/commits{/sha}","git_commits_url":"https://api.github.com/repos/caius/soco/git/commits{/sha}","comments_url":"https://api.github.com/repos/caius/soco/comments{/number}","issue_comment_url":"https://api.github.com/repos/caius/soco/issues/comments/{number}","contents_url":"https://api.github.com/repos/caius/soco/contents/{+path}","compare_url":"https://api.github.com/repos/caius/soco/compare/{base}...{head}","merges_url":"https://api.github.com/repos/caius/soco/merges","archive_url":"https://api.github.com/repos/caius/soco/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/caius/soco/downloads","issues_url":"https://api.github.com/repos/caius/soco/issues{/number}","pulls_url":"https://api.github.com/repos/caius/soco/pulls{/number}","milestones_url":"https://api.github.com/repos/caius/soco/milestones{/number}","notifications_url":"https://api.github.com/repos/caius/soco/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/caius/soco/labels{/name}"},{"id":1249,"name":"ruby-gsl","full_name":"codahale/ruby-gsl","owner":{"login":"codahale","id":207,"avatar_url":"https://2.gravatar.com/avatar/87206f3bf53d403e16ec023c56e904c5?d=https%3A%2F%2Fidenticons.github.com%2F69adc1e107f7f7d035d7baf04342e1ca.png","gravatar_id":"87206f3bf53d403e16ec023c56e904c5","url":"https://api.github.com/users/codahale","html_url":"https://github.com/codahale","followers_url":"https://api.github.com/users/codahale/followers","following_url":"https://api.github.com/users/codahale/following{/other_user}","gists_url":"https://api.github.com/users/codahale/gists{/gist_id}","starred_url":"https://api.github.com/users/codahale/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codahale/subscriptions","organizations_url":"https://api.github.com/users/codahale/orgs","repos_url":"https://api.github.com/users/codahale/repos","events_url":"https://api.github.com/users/codahale/events{/privacy}","received_events_url":"https://api.github.com/users/codahale/received_events","type":"User"},"private":false,"html_url":"https://github.com/codahale/ruby-gsl","description":"[ABANDONED] New development on the Ruby bindings for the GNU Scientific Library","fork":false,"url":"https://api.github.com/repos/codahale/ruby-gsl","forks_url":"https://api.github.com/repos/codahale/ruby-gsl/forks","keys_url":"https://api.github.com/repos/codahale/ruby-gsl/keys{/key_id}","collaborators_url":"https://api.github.com/repos/codahale/ruby-gsl/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/codahale/ruby-gsl/teams","hooks_url":"https://api.github.com/repos/codahale/ruby-gsl/hooks","issue_events_url":"https://api.github.com/repos/codahale/ruby-gsl/issues/events{/number}","events_url":"https://api.github.com/repos/codahale/ruby-gsl/events","assignees_url":"https://api.github.com/repos/codahale/ruby-gsl/assignees{/user}","branches_url":"https://api.github.com/repos/codahale/ruby-gsl/branches{/branch}","tags_url":"https://api.github.com/repos/codahale/ruby-gsl/tags","blobs_url":"https://api.github.com/repos/codahale/ruby-gsl/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/codahale/ruby-gsl/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/codahale/ruby-gsl/git/refs{/sha}","trees_url":"https://api.github.com/repos/codahale/ruby-gsl/git/trees{/sha}","statuses_url":"https://api.github.com/repos/codahale/ruby-gsl/statuses/{sha}","languages_url":"https://api.github.com/repos/codahale/ruby-gsl/languages","stargazers_url":"https://api.github.com/repos/codahale/ruby-gsl/stargazers","contributors_url":"https://api.github.com/repos/codahale/ruby-gsl/contributors","subscribers_url":"https://api.github.com/repos/codahale/ruby-gsl/subscribers","subscription_url":"https://api.github.com/repos/codahale/ruby-gsl/subscription","commits_url":"https://api.github.com/repos/codahale/ruby-gsl/commits{/sha}","git_commits_url":"https://api.github.com/repos/codahale/ruby-gsl/git/commits{/sha}","comments_url":"https://api.github.com/repos/codahale/ruby-gsl/comments{/number}","issue_comment_url":"https://api.github.com/repos/codahale/ruby-gsl/issues/comments/{number}","contents_url":"https://api.github.com/repos/codahale/ruby-gsl/contents/{+path}","compare_url":"https://api.github.com/repos/codahale/ruby-gsl/compare/{base}...{head}","merges_url":"https://api.github.com/repos/codahale/ruby-gsl/merges","archive_url":"https://api.github.com/repos/codahale/ruby-gsl/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/codahale/ruby-gsl/downloads","issues_url":"https://api.github.com/repos/codahale/ruby-gsl/issues{/number}","pulls_url":"https://api.github.com/repos/codahale/ruby-gsl/pulls{/number}","milestones_url":"https://api.github.com/repos/codahale/ruby-gsl/milestones{/number}","notifications_url":"https://api.github.com/repos/codahale/ruby-gsl/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/codahale/ruby-gsl/labels{/name}"},{"id":1252,"name":"yard","full_name":"lsegal/yard","owner":{"login":"lsegal","id":686,"avatar_url":"https://0.gravatar.com/avatar/510395998b7e929a8f48dc8cdb087379?d=https%3A%2F%2Fidenticons.github.com%2F109a0ca3bc27f3e96597370d5c8cf03d.png","gravatar_id":"510395998b7e929a8f48dc8cdb087379","url":"https://api.github.com/users/lsegal","html_url":"https://github.com/lsegal","followers_url":"https://api.github.com/users/lsegal/followers","following_url":"https://api.github.com/users/lsegal/following{/other_user}","gists_url":"https://api.github.com/users/lsegal/gists{/gist_id}","starred_url":"https://api.github.com/users/lsegal/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lsegal/subscriptions","organizations_url":"https://api.github.com/users/lsegal/orgs","repos_url":"https://api.github.com/users/lsegal/repos","events_url":"https://api.github.com/users/lsegal/events{/privacy}","received_events_url":"https://api.github.com/users/lsegal/received_events","type":"User"},"private":false,"html_url":"https://github.com/lsegal/yard","description":"YARD is a Ruby Documentation tool. The Y stands for \"Yay!\"","fork":false,"url":"https://api.github.com/repos/lsegal/yard","forks_url":"https://api.github.com/repos/lsegal/yard/forks","keys_url":"https://api.github.com/repos/lsegal/yard/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lsegal/yard/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lsegal/yard/teams","hooks_url":"https://api.github.com/repos/lsegal/yard/hooks","issue_events_url":"https://api.github.com/repos/lsegal/yard/issues/events{/number}","events_url":"https://api.github.com/repos/lsegal/yard/events","assignees_url":"https://api.github.com/repos/lsegal/yard/assignees{/user}","branches_url":"https://api.github.com/repos/lsegal/yard/branches{/branch}","tags_url":"https://api.github.com/repos/lsegal/yard/tags","blobs_url":"https://api.github.com/repos/lsegal/yard/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lsegal/yard/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lsegal/yard/git/refs{/sha}","trees_url":"https://api.github.com/repos/lsegal/yard/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lsegal/yard/statuses/{sha}","languages_url":"https://api.github.com/repos/lsegal/yard/languages","stargazers_url":"https://api.github.com/repos/lsegal/yard/stargazers","contributors_url":"https://api.github.com/repos/lsegal/yard/contributors","subscribers_url":"https://api.github.com/repos/lsegal/yard/subscribers","subscription_url":"https://api.github.com/repos/lsegal/yard/subscription","commits_url":"https://api.github.com/repos/lsegal/yard/commits{/sha}","git_commits_url":"https://api.github.com/repos/lsegal/yard/git/commits{/sha}","comments_url":"https://api.github.com/repos/lsegal/yard/comments{/number}","issue_comment_url":"https://api.github.com/repos/lsegal/yard/issues/comments/{number}","contents_url":"https://api.github.com/repos/lsegal/yard/contents/{+path}","compare_url":"https://api.github.com/repos/lsegal/yard/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lsegal/yard/merges","archive_url":"https://api.github.com/repos/lsegal/yard/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lsegal/yard/downloads","issues_url":"https://api.github.com/repos/lsegal/yard/issues{/number}","pulls_url":"https://api.github.com/repos/lsegal/yard/pulls{/number}","milestones_url":"https://api.github.com/repos/lsegal/yard/milestones{/number}","notifications_url":"https://api.github.com/repos/lsegal/yard/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lsegal/yard/labels{/name}"},{"id":1253,"name":"castanaut","full_name":"joseph/castanaut","owner":{"login":"joseph","id":900,"avatar_url":"https://0.gravatar.com/avatar/dba7eb74aae18f1045ac33579736949b?d=https%3A%2F%2Fidenticons.github.com%2Facf4b89d3d503d8252c9c4ba75ddbf6d.png","gravatar_id":"dba7eb74aae18f1045ac33579736949b","url":"https://api.github.com/users/joseph","html_url":"https://github.com/joseph","followers_url":"https://api.github.com/users/joseph/followers","following_url":"https://api.github.com/users/joseph/following{/other_user}","gists_url":"https://api.github.com/users/joseph/gists{/gist_id}","starred_url":"https://api.github.com/users/joseph/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/joseph/subscriptions","organizations_url":"https://api.github.com/users/joseph/orgs","repos_url":"https://api.github.com/users/joseph/repos","events_url":"https://api.github.com/users/joseph/events{/privacy}","received_events_url":"https://api.github.com/users/joseph/received_events","type":"User"},"private":false,"html_url":"https://github.com/joseph/castanaut","description":" Castanaut lets you write executable scripts for your screencasts. With a simple dictionary of stage directions, you can create complex interactions with a variety of applications.","fork":false,"url":"https://api.github.com/repos/joseph/castanaut","forks_url":"https://api.github.com/repos/joseph/castanaut/forks","keys_url":"https://api.github.com/repos/joseph/castanaut/keys{/key_id}","collaborators_url":"https://api.github.com/repos/joseph/castanaut/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/joseph/castanaut/teams","hooks_url":"https://api.github.com/repos/joseph/castanaut/hooks","issue_events_url":"https://api.github.com/repos/joseph/castanaut/issues/events{/number}","events_url":"https://api.github.com/repos/joseph/castanaut/events","assignees_url":"https://api.github.com/repos/joseph/castanaut/assignees{/user}","branches_url":"https://api.github.com/repos/joseph/castanaut/branches{/branch}","tags_url":"https://api.github.com/repos/joseph/castanaut/tags","blobs_url":"https://api.github.com/repos/joseph/castanaut/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/joseph/castanaut/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/joseph/castanaut/git/refs{/sha}","trees_url":"https://api.github.com/repos/joseph/castanaut/git/trees{/sha}","statuses_url":"https://api.github.com/repos/joseph/castanaut/statuses/{sha}","languages_url":"https://api.github.com/repos/joseph/castanaut/languages","stargazers_url":"https://api.github.com/repos/joseph/castanaut/stargazers","contributors_url":"https://api.github.com/repos/joseph/castanaut/contributors","subscribers_url":"https://api.github.com/repos/joseph/castanaut/subscribers","subscription_url":"https://api.github.com/repos/joseph/castanaut/subscription","commits_url":"https://api.github.com/repos/joseph/castanaut/commits{/sha}","git_commits_url":"https://api.github.com/repos/joseph/castanaut/git/commits{/sha}","comments_url":"https://api.github.com/repos/joseph/castanaut/comments{/number}","issue_comment_url":"https://api.github.com/repos/joseph/castanaut/issues/comments/{number}","contents_url":"https://api.github.com/repos/joseph/castanaut/contents/{+path}","compare_url":"https://api.github.com/repos/joseph/castanaut/compare/{base}...{head}","merges_url":"https://api.github.com/repos/joseph/castanaut/merges","archive_url":"https://api.github.com/repos/joseph/castanaut/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/joseph/castanaut/downloads","issues_url":"https://api.github.com/repos/joseph/castanaut/issues{/number}","pulls_url":"https://api.github.com/repos/joseph/castanaut/pulls{/number}","milestones_url":"https://api.github.com/repos/joseph/castanaut/milestones{/number}","notifications_url":"https://api.github.com/repos/joseph/castanaut/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/joseph/castanaut/labels{/name}"},{"id":1259,"name":"ruby-tmbundle","full_name":"drnic/ruby-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://1.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/ruby-tmbundle","description":"Ruby TextMate bundle","fork":false,"url":"https://api.github.com/repos/drnic/ruby-tmbundle","forks_url":"https://api.github.com/repos/drnic/ruby-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/ruby-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/ruby-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/ruby-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/ruby-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/ruby-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/ruby-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/ruby-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/ruby-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/ruby-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/ruby-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/ruby-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/ruby-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/ruby-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/ruby-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/ruby-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/ruby-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/ruby-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/ruby-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/ruby-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/ruby-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/ruby-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/ruby-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/ruby-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/ruby-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/ruby-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/ruby-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/ruby-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/ruby-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/ruby-tmbundle/labels{/name}"},{"id":1298,"name":"html-tmbundle","full_name":"drnic/html-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://1.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/html-tmbundle","description":"HTML TextMate bundle","fork":false,"url":"https://api.github.com/repos/drnic/html-tmbundle","forks_url":"https://api.github.com/repos/drnic/html-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/html-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/html-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/html-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/html-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/html-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/html-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/html-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/html-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/html-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/html-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/html-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/html-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/html-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/html-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/html-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/html-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/html-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/html-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/html-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/html-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/html-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/html-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/html-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/html-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/html-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/html-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/html-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/html-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/html-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/html-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/html-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/html-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/html-tmbundle/labels{/name}"},{"id":1299,"name":"orb","full_name":"noin/orb","owner":{"login":"noin","id":840,"avatar_url":"https://2.gravatar.com/avatar/f08f6910e7ad06bf8709bc3ffd4f7031?d=https%3A%2F%2Fidenticons.github.com%2Ffa83a11a198d5a7f0bf77a1987bcd006.png","gravatar_id":"f08f6910e7ad06bf8709bc3ffd4f7031","url":"https://api.github.com/users/noin","html_url":"https://github.com/noin","followers_url":"https://api.github.com/users/noin/followers","following_url":"https://api.github.com/users/noin/following{/other_user}","gists_url":"https://api.github.com/users/noin/gists{/gist_id}","starred_url":"https://api.github.com/users/noin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/noin/subscriptions","organizations_url":"https://api.github.com/users/noin/orgs","repos_url":"https://api.github.com/users/noin/repos","events_url":"https://api.github.com/users/noin/events{/privacy}","received_events_url":"https://api.github.com/users/noin/received_events","type":"User"},"private":false,"html_url":"https://github.com/noin/orb","description":"nFlux-Orb","fork":false,"url":"https://api.github.com/repos/noin/orb","forks_url":"https://api.github.com/repos/noin/orb/forks","keys_url":"https://api.github.com/repos/noin/orb/keys{/key_id}","collaborators_url":"https://api.github.com/repos/noin/orb/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/noin/orb/teams","hooks_url":"https://api.github.com/repos/noin/orb/hooks","issue_events_url":"https://api.github.com/repos/noin/orb/issues/events{/number}","events_url":"https://api.github.com/repos/noin/orb/events","assignees_url":"https://api.github.com/repos/noin/orb/assignees{/user}","branches_url":"https://api.github.com/repos/noin/orb/branches{/branch}","tags_url":"https://api.github.com/repos/noin/orb/tags","blobs_url":"https://api.github.com/repos/noin/orb/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/noin/orb/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/noin/orb/git/refs{/sha}","trees_url":"https://api.github.com/repos/noin/orb/git/trees{/sha}","statuses_url":"https://api.github.com/repos/noin/orb/statuses/{sha}","languages_url":"https://api.github.com/repos/noin/orb/languages","stargazers_url":"https://api.github.com/repos/noin/orb/stargazers","contributors_url":"https://api.github.com/repos/noin/orb/contributors","subscribers_url":"https://api.github.com/repos/noin/orb/subscribers","subscription_url":"https://api.github.com/repos/noin/orb/subscription","commits_url":"https://api.github.com/repos/noin/orb/commits{/sha}","git_commits_url":"https://api.github.com/repos/noin/orb/git/commits{/sha}","comments_url":"https://api.github.com/repos/noin/orb/comments{/number}","issue_comment_url":"https://api.github.com/repos/noin/orb/issues/comments/{number}","contents_url":"https://api.github.com/repos/noin/orb/contents/{+path}","compare_url":"https://api.github.com/repos/noin/orb/compare/{base}...{head}","merges_url":"https://api.github.com/repos/noin/orb/merges","archive_url":"https://api.github.com/repos/noin/orb/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/noin/orb/downloads","issues_url":"https://api.github.com/repos/noin/orb/issues{/number}","pulls_url":"https://api.github.com/repos/noin/orb/pulls{/number}","milestones_url":"https://api.github.com/repos/noin/orb/milestones{/number}","notifications_url":"https://api.github.com/repos/noin/orb/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/noin/orb/labels{/name}"},{"id":1302,"name":"ikhebhonger","full_name":"bart-xx/ikhebhonger","owner":{"login":"bart-xx","id":909,"avatar_url":"https://1.gravatar.com/avatar/6d723250f9c1c093ee16b53a09448d8c?d=https%3A%2F%2Fidenticons.github.com%2Fa4300b002bcfb71f291dac175d52df94.png","gravatar_id":"6d723250f9c1c093ee16b53a09448d8c","url":"https://api.github.com/users/bart-xx","html_url":"https://github.com/bart-xx","followers_url":"https://api.github.com/users/bart-xx/followers","following_url":"https://api.github.com/users/bart-xx/following{/other_user}","gists_url":"https://api.github.com/users/bart-xx/gists{/gist_id}","starred_url":"https://api.github.com/users/bart-xx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bart-xx/subscriptions","organizations_url":"https://api.github.com/users/bart-xx/orgs","repos_url":"https://api.github.com/users/bart-xx/repos","events_url":"https://api.github.com/users/bart-xx/events{/privacy}","received_events_url":"https://api.github.com/users/bart-xx/received_events","type":"User"},"private":false,"html_url":"https://github.com/bart-xx/ikhebhonger","description":"Restaurant mashup site","fork":false,"url":"https://api.github.com/repos/bart-xx/ikhebhonger","forks_url":"https://api.github.com/repos/bart-xx/ikhebhonger/forks","keys_url":"https://api.github.com/repos/bart-xx/ikhebhonger/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bart-xx/ikhebhonger/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bart-xx/ikhebhonger/teams","hooks_url":"https://api.github.com/repos/bart-xx/ikhebhonger/hooks","issue_events_url":"https://api.github.com/repos/bart-xx/ikhebhonger/issues/events{/number}","events_url":"https://api.github.com/repos/bart-xx/ikhebhonger/events","assignees_url":"https://api.github.com/repos/bart-xx/ikhebhonger/assignees{/user}","branches_url":"https://api.github.com/repos/bart-xx/ikhebhonger/branches{/branch}","tags_url":"https://api.github.com/repos/bart-xx/ikhebhonger/tags","blobs_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/refs{/sha}","trees_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bart-xx/ikhebhonger/statuses/{sha}","languages_url":"https://api.github.com/repos/bart-xx/ikhebhonger/languages","stargazers_url":"https://api.github.com/repos/bart-xx/ikhebhonger/stargazers","contributors_url":"https://api.github.com/repos/bart-xx/ikhebhonger/contributors","subscribers_url":"https://api.github.com/repos/bart-xx/ikhebhonger/subscribers","subscription_url":"https://api.github.com/repos/bart-xx/ikhebhonger/subscription","commits_url":"https://api.github.com/repos/bart-xx/ikhebhonger/commits{/sha}","git_commits_url":"https://api.github.com/repos/bart-xx/ikhebhonger/git/commits{/sha}","comments_url":"https://api.github.com/repos/bart-xx/ikhebhonger/comments{/number}","issue_comment_url":"https://api.github.com/repos/bart-xx/ikhebhonger/issues/comments/{number}","contents_url":"https://api.github.com/repos/bart-xx/ikhebhonger/contents/{+path}","compare_url":"https://api.github.com/repos/bart-xx/ikhebhonger/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bart-xx/ikhebhonger/merges","archive_url":"https://api.github.com/repos/bart-xx/ikhebhonger/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bart-xx/ikhebhonger/downloads","issues_url":"https://api.github.com/repos/bart-xx/ikhebhonger/issues{/number}","pulls_url":"https://api.github.com/repos/bart-xx/ikhebhonger/pulls{/number}","milestones_url":"https://api.github.com/repos/bart-xx/ikhebhonger/milestones{/number}","notifications_url":"https://api.github.com/repos/bart-xx/ikhebhonger/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bart-xx/ikhebhonger/labels{/name}"},{"id":1303,"name":"permalizer","full_name":"revans/permalizer","owner":{"login":"revans","id":394,"avatar_url":"https://0.gravatar.com/avatar/bc5fbb4a793359c2c527e37edfa470a2?d=https%3A%2F%2Fidenticons.github.com%2F28f0b864598a1291557bed248a998d4e.png","gravatar_id":"bc5fbb4a793359c2c527e37edfa470a2","url":"https://api.github.com/users/revans","html_url":"https://github.com/revans","followers_url":"https://api.github.com/users/revans/followers","following_url":"https://api.github.com/users/revans/following{/other_user}","gists_url":"https://api.github.com/users/revans/gists{/gist_id}","starred_url":"https://api.github.com/users/revans/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/revans/subscriptions","organizations_url":"https://api.github.com/users/revans/orgs","repos_url":"https://api.github.com/users/revans/repos","events_url":"https://api.github.com/users/revans/events{/privacy}","received_events_url":"https://api.github.com/users/revans/received_events","type":"User"},"private":false,"html_url":"https://github.com/revans/permalizer","description":"An easy way to create Permalinks.","fork":false,"url":"https://api.github.com/repos/revans/permalizer","forks_url":"https://api.github.com/repos/revans/permalizer/forks","keys_url":"https://api.github.com/repos/revans/permalizer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/revans/permalizer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/revans/permalizer/teams","hooks_url":"https://api.github.com/repos/revans/permalizer/hooks","issue_events_url":"https://api.github.com/repos/revans/permalizer/issues/events{/number}","events_url":"https://api.github.com/repos/revans/permalizer/events","assignees_url":"https://api.github.com/repos/revans/permalizer/assignees{/user}","branches_url":"https://api.github.com/repos/revans/permalizer/branches{/branch}","tags_url":"https://api.github.com/repos/revans/permalizer/tags","blobs_url":"https://api.github.com/repos/revans/permalizer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/revans/permalizer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/revans/permalizer/git/refs{/sha}","trees_url":"https://api.github.com/repos/revans/permalizer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/revans/permalizer/statuses/{sha}","languages_url":"https://api.github.com/repos/revans/permalizer/languages","stargazers_url":"https://api.github.com/repos/revans/permalizer/stargazers","contributors_url":"https://api.github.com/repos/revans/permalizer/contributors","subscribers_url":"https://api.github.com/repos/revans/permalizer/subscribers","subscription_url":"https://api.github.com/repos/revans/permalizer/subscription","commits_url":"https://api.github.com/repos/revans/permalizer/commits{/sha}","git_commits_url":"https://api.github.com/repos/revans/permalizer/git/commits{/sha}","comments_url":"https://api.github.com/repos/revans/permalizer/comments{/number}","issue_comment_url":"https://api.github.com/repos/revans/permalizer/issues/comments/{number}","contents_url":"https://api.github.com/repos/revans/permalizer/contents/{+path}","compare_url":"https://api.github.com/repos/revans/permalizer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/revans/permalizer/merges","archive_url":"https://api.github.com/repos/revans/permalizer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/revans/permalizer/downloads","issues_url":"https://api.github.com/repos/revans/permalizer/issues{/number}","pulls_url":"https://api.github.com/repos/revans/permalizer/pulls{/number}","milestones_url":"https://api.github.com/repos/revans/permalizer/milestones{/number}","notifications_url":"https://api.github.com/repos/revans/permalizer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/revans/permalizer/labels{/name}"},{"id":1318,"name":"sprinkle","full_name":"sprinkle-tool/sprinkle","owner":{"login":"sprinkle-tool","id":4121318,"avatar_url":"https://identicons.github.com/e5cfb82e868d055ce1ddbebed117d622.png","gravatar_id":null,"url":"https://api.github.com/users/sprinkle-tool","html_url":"https://github.com/sprinkle-tool","followers_url":"https://api.github.com/users/sprinkle-tool/followers","following_url":"https://api.github.com/users/sprinkle-tool/following{/other_user}","gists_url":"https://api.github.com/users/sprinkle-tool/gists{/gist_id}","starred_url":"https://api.github.com/users/sprinkle-tool/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/sprinkle-tool/subscriptions","organizations_url":"https://api.github.com/users/sprinkle-tool/orgs","repos_url":"https://api.github.com/users/sprinkle-tool/repos","events_url":"https://api.github.com/users/sprinkle-tool/events{/privacy}","received_events_url":"https://api.github.com/users/sprinkle-tool/received_events","type":"Organization"},"private":false,"html_url":"https://github.com/sprinkle-tool/sprinkle","description":"Sprinkle is a software provisioning tool you can use to build remote servers with. eg. to install a Rails, or Sinatra stack on a brand new slice directly after its been created","fork":false,"url":"https://api.github.com/repos/sprinkle-tool/sprinkle","forks_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/forks","keys_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/teams","hooks_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/hooks","issue_events_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/issues/events{/number}","events_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/events","assignees_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/assignees{/user}","branches_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/branches{/branch}","tags_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/tags","blobs_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/refs{/sha}","trees_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/statuses/{sha}","languages_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/languages","stargazers_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/stargazers","contributors_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/contributors","subscribers_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/subscribers","subscription_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/subscription","commits_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/commits{/sha}","git_commits_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/git/commits{/sha}","comments_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/comments{/number}","issue_comment_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/issues/comments/{number}","contents_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/contents/{+path}","compare_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/merges","archive_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/downloads","issues_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/issues{/number}","pulls_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/pulls{/number}","milestones_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/milestones{/number}","notifications_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/sprinkle-tool/sprinkle/labels{/name}"},{"id":1321,"name":"wlwdeezerplayer","full_name":"julesss/wlwdeezerplayer","owner":{"login":"julesss","id":929,"avatar_url":"https://identicons.github.com/0d0871f0806eae32d30983b62252da50.png","gravatar_id":null,"url":"https://api.github.com/users/julesss","html_url":"https://github.com/julesss","followers_url":"https://api.github.com/users/julesss/followers","following_url":"https://api.github.com/users/julesss/following{/other_user}","gists_url":"https://api.github.com/users/julesss/gists{/gist_id}","starred_url":"https://api.github.com/users/julesss/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/julesss/subscriptions","organizations_url":"https://api.github.com/users/julesss/orgs","repos_url":"https://api.github.com/users/julesss/repos","events_url":"https://api.github.com/users/julesss/events{/privacy}","received_events_url":"https://api.github.com/users/julesss/received_events","type":"User"},"private":false,"html_url":"https://github.com/julesss/wlwdeezerplayer","description":"Lets you insert a Deezer player in your blog using Windows Live Writer","fork":false,"url":"https://api.github.com/repos/julesss/wlwdeezerplayer","forks_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/forks","keys_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/teams","hooks_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/hooks","issue_events_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/issues/events{/number}","events_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/events","assignees_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/assignees{/user}","branches_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/branches{/branch}","tags_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/tags","blobs_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/refs{/sha}","trees_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/statuses/{sha}","languages_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/languages","stargazers_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/stargazers","contributors_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/contributors","subscribers_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/subscribers","subscription_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/subscription","commits_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/commits{/sha}","git_commits_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/git/commits{/sha}","comments_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/comments{/number}","issue_comment_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/issues/comments/{number}","contents_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/contents/{+path}","compare_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/merges","archive_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/downloads","issues_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/issues{/number}","pulls_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/pulls{/number}","milestones_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/milestones{/number}","notifications_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/julesss/wlwdeezerplayer/labels{/name}"},{"id":1344,"name":"utility-belt","full_name":"gilesbowkett/utility-belt","owner":{"login":"gilesbowkett","id":974,"avatar_url":"https://2.gravatar.com/avatar/ce8b03e5750097942c58e12b46724312?d=https%3A%2F%2Fidenticons.github.com%2F4311359ed4969e8401880e3c1836fbe1.png","gravatar_id":"ce8b03e5750097942c58e12b46724312","url":"https://api.github.com/users/gilesbowkett","html_url":"https://github.com/gilesbowkett","followers_url":"https://api.github.com/users/gilesbowkett/followers","following_url":"https://api.github.com/users/gilesbowkett/following{/other_user}","gists_url":"https://api.github.com/users/gilesbowkett/gists{/gist_id}","starred_url":"https://api.github.com/users/gilesbowkett/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gilesbowkett/subscriptions","organizations_url":"https://api.github.com/users/gilesbowkett/orgs","repos_url":"https://api.github.com/users/gilesbowkett/repos","events_url":"https://api.github.com/users/gilesbowkett/events{/privacy}","received_events_url":"https://api.github.com/users/gilesbowkett/received_events","type":"User"},"private":false,"html_url":"https://github.com/gilesbowkett/utility-belt","description":"IRB Power User Utility Belt","fork":false,"url":"https://api.github.com/repos/gilesbowkett/utility-belt","forks_url":"https://api.github.com/repos/gilesbowkett/utility-belt/forks","keys_url":"https://api.github.com/repos/gilesbowkett/utility-belt/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gilesbowkett/utility-belt/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gilesbowkett/utility-belt/teams","hooks_url":"https://api.github.com/repos/gilesbowkett/utility-belt/hooks","issue_events_url":"https://api.github.com/repos/gilesbowkett/utility-belt/issues/events{/number}","events_url":"https://api.github.com/repos/gilesbowkett/utility-belt/events","assignees_url":"https://api.github.com/repos/gilesbowkett/utility-belt/assignees{/user}","branches_url":"https://api.github.com/repos/gilesbowkett/utility-belt/branches{/branch}","tags_url":"https://api.github.com/repos/gilesbowkett/utility-belt/tags","blobs_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/refs{/sha}","trees_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gilesbowkett/utility-belt/statuses/{sha}","languages_url":"https://api.github.com/repos/gilesbowkett/utility-belt/languages","stargazers_url":"https://api.github.com/repos/gilesbowkett/utility-belt/stargazers","contributors_url":"https://api.github.com/repos/gilesbowkett/utility-belt/contributors","subscribers_url":"https://api.github.com/repos/gilesbowkett/utility-belt/subscribers","subscription_url":"https://api.github.com/repos/gilesbowkett/utility-belt/subscription","commits_url":"https://api.github.com/repos/gilesbowkett/utility-belt/commits{/sha}","git_commits_url":"https://api.github.com/repos/gilesbowkett/utility-belt/git/commits{/sha}","comments_url":"https://api.github.com/repos/gilesbowkett/utility-belt/comments{/number}","issue_comment_url":"https://api.github.com/repos/gilesbowkett/utility-belt/issues/comments/{number}","contents_url":"https://api.github.com/repos/gilesbowkett/utility-belt/contents/{+path}","compare_url":"https://api.github.com/repos/gilesbowkett/utility-belt/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gilesbowkett/utility-belt/merges","archive_url":"https://api.github.com/repos/gilesbowkett/utility-belt/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gilesbowkett/utility-belt/downloads","issues_url":"https://api.github.com/repos/gilesbowkett/utility-belt/issues{/number}","pulls_url":"https://api.github.com/repos/gilesbowkett/utility-belt/pulls{/number}","milestones_url":"https://api.github.com/repos/gilesbowkett/utility-belt/milestones{/number}","notifications_url":"https://api.github.com/repos/gilesbowkett/utility-belt/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gilesbowkett/utility-belt/labels{/name}"},{"id":1353,"name":"restful-authentication","full_name":"labria/restful-authentication","owner":{"login":"labria","id":323,"avatar_url":"https://1.gravatar.com/avatar/f5049506664636c6cc725099367bd167?d=https%3A%2F%2Fidenticons.github.com%2Fbc6dc48b743dc5d013b1abaebd2faed2.png","gravatar_id":"f5049506664636c6cc725099367bd167","url":"https://api.github.com/users/labria","html_url":"https://github.com/labria","followers_url":"https://api.github.com/users/labria/followers","following_url":"https://api.github.com/users/labria/following{/other_user}","gists_url":"https://api.github.com/users/labria/gists{/gist_id}","starred_url":"https://api.github.com/users/labria/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/labria/subscriptions","organizations_url":"https://api.github.com/users/labria/orgs","repos_url":"https://api.github.com/users/labria/repos","events_url":"https://api.github.com/users/labria/events{/privacy}","received_events_url":"https://api.github.com/users/labria/received_events","type":"User"},"private":false,"html_url":"https://github.com/labria/restful-authentication","description":"Attempt to add SSL client certificate support to the restful_authenctication plugin","fork":true,"url":"https://api.github.com/repos/labria/restful-authentication","forks_url":"https://api.github.com/repos/labria/restful-authentication/forks","keys_url":"https://api.github.com/repos/labria/restful-authentication/keys{/key_id}","collaborators_url":"https://api.github.com/repos/labria/restful-authentication/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/labria/restful-authentication/teams","hooks_url":"https://api.github.com/repos/labria/restful-authentication/hooks","issue_events_url":"https://api.github.com/repos/labria/restful-authentication/issues/events{/number}","events_url":"https://api.github.com/repos/labria/restful-authentication/events","assignees_url":"https://api.github.com/repos/labria/restful-authentication/assignees{/user}","branches_url":"https://api.github.com/repos/labria/restful-authentication/branches{/branch}","tags_url":"https://api.github.com/repos/labria/restful-authentication/tags","blobs_url":"https://api.github.com/repos/labria/restful-authentication/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/labria/restful-authentication/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/labria/restful-authentication/git/refs{/sha}","trees_url":"https://api.github.com/repos/labria/restful-authentication/git/trees{/sha}","statuses_url":"https://api.github.com/repos/labria/restful-authentication/statuses/{sha}","languages_url":"https://api.github.com/repos/labria/restful-authentication/languages","stargazers_url":"https://api.github.com/repos/labria/restful-authentication/stargazers","contributors_url":"https://api.github.com/repos/labria/restful-authentication/contributors","subscribers_url":"https://api.github.com/repos/labria/restful-authentication/subscribers","subscription_url":"https://api.github.com/repos/labria/restful-authentication/subscription","commits_url":"https://api.github.com/repos/labria/restful-authentication/commits{/sha}","git_commits_url":"https://api.github.com/repos/labria/restful-authentication/git/commits{/sha}","comments_url":"https://api.github.com/repos/labria/restful-authentication/comments{/number}","issue_comment_url":"https://api.github.com/repos/labria/restful-authentication/issues/comments/{number}","contents_url":"https://api.github.com/repos/labria/restful-authentication/contents/{+path}","compare_url":"https://api.github.com/repos/labria/restful-authentication/compare/{base}...{head}","merges_url":"https://api.github.com/repos/labria/restful-authentication/merges","archive_url":"https://api.github.com/repos/labria/restful-authentication/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/labria/restful-authentication/downloads","issues_url":"https://api.github.com/repos/labria/restful-authentication/issues{/number}","pulls_url":"https://api.github.com/repos/labria/restful-authentication/pulls{/number}","milestones_url":"https://api.github.com/repos/labria/restful-authentication/milestones{/number}","notifications_url":"https://api.github.com/repos/labria/restful-authentication/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/labria/restful-authentication/labels{/name}"},{"id":1355,"name":"ruby-screen","full_name":"dpetersen/ruby-screen","owner":{"login":"dpetersen","id":408,"avatar_url":"https://2.gravatar.com/avatar/5cc7967fc5c25199c88410bc56eb1329?d=https%3A%2F%2Fidenticons.github.com%2F0d0fd7c6e093f7b804fa0150b875b868.png","gravatar_id":"5cc7967fc5c25199c88410bc56eb1329","url":"https://api.github.com/users/dpetersen","html_url":"https://github.com/dpetersen","followers_url":"https://api.github.com/users/dpetersen/followers","following_url":"https://api.github.com/users/dpetersen/following{/other_user}","gists_url":"https://api.github.com/users/dpetersen/gists{/gist_id}","starred_url":"https://api.github.com/users/dpetersen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dpetersen/subscriptions","organizations_url":"https://api.github.com/users/dpetersen/orgs","repos_url":"https://api.github.com/users/dpetersen/repos","events_url":"https://api.github.com/users/dpetersen/events{/privacy}","received_events_url":"https://api.github.com/users/dpetersen/received_events","type":"User"},"private":false,"html_url":"https://github.com/dpetersen/ruby-screen","description":"A utility to supplement GNU Screen, easing use of custom configurations, packaged as a RubyGem.","fork":false,"url":"https://api.github.com/repos/dpetersen/ruby-screen","forks_url":"https://api.github.com/repos/dpetersen/ruby-screen/forks","keys_url":"https://api.github.com/repos/dpetersen/ruby-screen/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dpetersen/ruby-screen/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dpetersen/ruby-screen/teams","hooks_url":"https://api.github.com/repos/dpetersen/ruby-screen/hooks","issue_events_url":"https://api.github.com/repos/dpetersen/ruby-screen/issues/events{/number}","events_url":"https://api.github.com/repos/dpetersen/ruby-screen/events","assignees_url":"https://api.github.com/repos/dpetersen/ruby-screen/assignees{/user}","branches_url":"https://api.github.com/repos/dpetersen/ruby-screen/branches{/branch}","tags_url":"https://api.github.com/repos/dpetersen/ruby-screen/tags","blobs_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/refs{/sha}","trees_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dpetersen/ruby-screen/statuses/{sha}","languages_url":"https://api.github.com/repos/dpetersen/ruby-screen/languages","stargazers_url":"https://api.github.com/repos/dpetersen/ruby-screen/stargazers","contributors_url":"https://api.github.com/repos/dpetersen/ruby-screen/contributors","subscribers_url":"https://api.github.com/repos/dpetersen/ruby-screen/subscribers","subscription_url":"https://api.github.com/repos/dpetersen/ruby-screen/subscription","commits_url":"https://api.github.com/repos/dpetersen/ruby-screen/commits{/sha}","git_commits_url":"https://api.github.com/repos/dpetersen/ruby-screen/git/commits{/sha}","comments_url":"https://api.github.com/repos/dpetersen/ruby-screen/comments{/number}","issue_comment_url":"https://api.github.com/repos/dpetersen/ruby-screen/issues/comments/{number}","contents_url":"https://api.github.com/repos/dpetersen/ruby-screen/contents/{+path}","compare_url":"https://api.github.com/repos/dpetersen/ruby-screen/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dpetersen/ruby-screen/merges","archive_url":"https://api.github.com/repos/dpetersen/ruby-screen/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dpetersen/ruby-screen/downloads","issues_url":"https://api.github.com/repos/dpetersen/ruby-screen/issues{/number}","pulls_url":"https://api.github.com/repos/dpetersen/ruby-screen/pulls{/number}","milestones_url":"https://api.github.com/repos/dpetersen/ruby-screen/milestones{/number}","notifications_url":"https://api.github.com/repos/dpetersen/ruby-screen/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dpetersen/ruby-screen/labels{/name}"},{"id":1364,"name":"eatingsafe","full_name":"aharper/eatingsafe","owner":{"login":"aharper","id":1002,"avatar_url":"https://identicons.github.com/fba9d88164f3e2d9109ee770223212a0.png","gravatar_id":null,"url":"https://api.github.com/users/aharper","html_url":"https://github.com/aharper","followers_url":"https://api.github.com/users/aharper/followers","following_url":"https://api.github.com/users/aharper/following{/other_user}","gists_url":"https://api.github.com/users/aharper/gists{/gist_id}","starred_url":"https://api.github.com/users/aharper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aharper/subscriptions","organizations_url":"https://api.github.com/users/aharper/orgs","repos_url":"https://api.github.com/users/aharper/repos","events_url":"https://api.github.com/users/aharper/events{/privacy}","received_events_url":"https://api.github.com/users/aharper/received_events","type":"User"},"private":false,"html_url":"https://github.com/aharper/eatingsafe","description":"","fork":false,"url":"https://api.github.com/repos/aharper/eatingsafe","forks_url":"https://api.github.com/repos/aharper/eatingsafe/forks","keys_url":"https://api.github.com/repos/aharper/eatingsafe/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aharper/eatingsafe/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aharper/eatingsafe/teams","hooks_url":"https://api.github.com/repos/aharper/eatingsafe/hooks","issue_events_url":"https://api.github.com/repos/aharper/eatingsafe/issues/events{/number}","events_url":"https://api.github.com/repos/aharper/eatingsafe/events","assignees_url":"https://api.github.com/repos/aharper/eatingsafe/assignees{/user}","branches_url":"https://api.github.com/repos/aharper/eatingsafe/branches{/branch}","tags_url":"https://api.github.com/repos/aharper/eatingsafe/tags","blobs_url":"https://api.github.com/repos/aharper/eatingsafe/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aharper/eatingsafe/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aharper/eatingsafe/git/refs{/sha}","trees_url":"https://api.github.com/repos/aharper/eatingsafe/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aharper/eatingsafe/statuses/{sha}","languages_url":"https://api.github.com/repos/aharper/eatingsafe/languages","stargazers_url":"https://api.github.com/repos/aharper/eatingsafe/stargazers","contributors_url":"https://api.github.com/repos/aharper/eatingsafe/contributors","subscribers_url":"https://api.github.com/repos/aharper/eatingsafe/subscribers","subscription_url":"https://api.github.com/repos/aharper/eatingsafe/subscription","commits_url":"https://api.github.com/repos/aharper/eatingsafe/commits{/sha}","git_commits_url":"https://api.github.com/repos/aharper/eatingsafe/git/commits{/sha}","comments_url":"https://api.github.com/repos/aharper/eatingsafe/comments{/number}","issue_comment_url":"https://api.github.com/repos/aharper/eatingsafe/issues/comments/{number}","contents_url":"https://api.github.com/repos/aharper/eatingsafe/contents/{+path}","compare_url":"https://api.github.com/repos/aharper/eatingsafe/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aharper/eatingsafe/merges","archive_url":"https://api.github.com/repos/aharper/eatingsafe/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aharper/eatingsafe/downloads","issues_url":"https://api.github.com/repos/aharper/eatingsafe/issues{/number}","pulls_url":"https://api.github.com/repos/aharper/eatingsafe/pulls{/number}","milestones_url":"https://api.github.com/repos/aharper/eatingsafe/milestones{/number}","notifications_url":"https://api.github.com/repos/aharper/eatingsafe/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aharper/eatingsafe/labels{/name}"},{"id":1377,"name":"name_parser","full_name":"bricooke/name_parser","owner":{"login":"bricooke","id":977,"avatar_url":"https://1.gravatar.com/avatar/916de6eec58087391b518c5ac3ac7f47?d=https%3A%2F%2Fidenticons.github.com%2Fcc1aa436277138f61cda703991069eaf.png","gravatar_id":"916de6eec58087391b518c5ac3ac7f47","url":"https://api.github.com/users/bricooke","html_url":"https://github.com/bricooke","followers_url":"https://api.github.com/users/bricooke/followers","following_url":"https://api.github.com/users/bricooke/following{/other_user}","gists_url":"https://api.github.com/users/bricooke/gists{/gist_id}","starred_url":"https://api.github.com/users/bricooke/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bricooke/subscriptions","organizations_url":"https://api.github.com/users/bricooke/orgs","repos_url":"https://api.github.com/users/bricooke/repos","events_url":"https://api.github.com/users/bricooke/events{/privacy}","received_events_url":"https://api.github.com/users/bricooke/received_events","type":"User"},"private":false,"html_url":"https://github.com/bricooke/name_parser","description":"Gem for parsing names into first, last, middle, prefix and suffix","fork":false,"url":"https://api.github.com/repos/bricooke/name_parser","forks_url":"https://api.github.com/repos/bricooke/name_parser/forks","keys_url":"https://api.github.com/repos/bricooke/name_parser/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bricooke/name_parser/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bricooke/name_parser/teams","hooks_url":"https://api.github.com/repos/bricooke/name_parser/hooks","issue_events_url":"https://api.github.com/repos/bricooke/name_parser/issues/events{/number}","events_url":"https://api.github.com/repos/bricooke/name_parser/events","assignees_url":"https://api.github.com/repos/bricooke/name_parser/assignees{/user}","branches_url":"https://api.github.com/repos/bricooke/name_parser/branches{/branch}","tags_url":"https://api.github.com/repos/bricooke/name_parser/tags","blobs_url":"https://api.github.com/repos/bricooke/name_parser/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bricooke/name_parser/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bricooke/name_parser/git/refs{/sha}","trees_url":"https://api.github.com/repos/bricooke/name_parser/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bricooke/name_parser/statuses/{sha}","languages_url":"https://api.github.com/repos/bricooke/name_parser/languages","stargazers_url":"https://api.github.com/repos/bricooke/name_parser/stargazers","contributors_url":"https://api.github.com/repos/bricooke/name_parser/contributors","subscribers_url":"https://api.github.com/repos/bricooke/name_parser/subscribers","subscription_url":"https://api.github.com/repos/bricooke/name_parser/subscription","commits_url":"https://api.github.com/repos/bricooke/name_parser/commits{/sha}","git_commits_url":"https://api.github.com/repos/bricooke/name_parser/git/commits{/sha}","comments_url":"https://api.github.com/repos/bricooke/name_parser/comments{/number}","issue_comment_url":"https://api.github.com/repos/bricooke/name_parser/issues/comments/{number}","contents_url":"https://api.github.com/repos/bricooke/name_parser/contents/{+path}","compare_url":"https://api.github.com/repos/bricooke/name_parser/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bricooke/name_parser/merges","archive_url":"https://api.github.com/repos/bricooke/name_parser/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bricooke/name_parser/downloads","issues_url":"https://api.github.com/repos/bricooke/name_parser/issues{/number}","pulls_url":"https://api.github.com/repos/bricooke/name_parser/pulls{/number}","milestones_url":"https://api.github.com/repos/bricooke/name_parser/milestones{/number}","notifications_url":"https://api.github.com/repos/bricooke/name_parser/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bricooke/name_parser/labels{/name}"},{"id":1381,"name":"ext_scaffold","full_name":"drudru/ext_scaffold","owner":{"login":"drudru","id":546,"avatar_url":"https://identicons.github.com/ed265bc903a5a097f61d3ec064d96d2e.png","gravatar_id":null,"url":"https://api.github.com/users/drudru","html_url":"https://github.com/drudru","followers_url":"https://api.github.com/users/drudru/followers","following_url":"https://api.github.com/users/drudru/following{/other_user}","gists_url":"https://api.github.com/users/drudru/gists{/gist_id}","starred_url":"https://api.github.com/users/drudru/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drudru/subscriptions","organizations_url":"https://api.github.com/users/drudru/orgs","repos_url":"https://api.github.com/users/drudru/repos","events_url":"https://api.github.com/users/drudru/events{/privacy}","received_events_url":"https://api.github.com/users/drudru/received_events","type":"User"},"private":false,"html_url":"https://github.com/drudru/ext_scaffold","description":"copy of ext_scaffold","fork":false,"url":"https://api.github.com/repos/drudru/ext_scaffold","forks_url":"https://api.github.com/repos/drudru/ext_scaffold/forks","keys_url":"https://api.github.com/repos/drudru/ext_scaffold/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drudru/ext_scaffold/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drudru/ext_scaffold/teams","hooks_url":"https://api.github.com/repos/drudru/ext_scaffold/hooks","issue_events_url":"https://api.github.com/repos/drudru/ext_scaffold/issues/events{/number}","events_url":"https://api.github.com/repos/drudru/ext_scaffold/events","assignees_url":"https://api.github.com/repos/drudru/ext_scaffold/assignees{/user}","branches_url":"https://api.github.com/repos/drudru/ext_scaffold/branches{/branch}","tags_url":"https://api.github.com/repos/drudru/ext_scaffold/tags","blobs_url":"https://api.github.com/repos/drudru/ext_scaffold/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drudru/ext_scaffold/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drudru/ext_scaffold/git/refs{/sha}","trees_url":"https://api.github.com/repos/drudru/ext_scaffold/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drudru/ext_scaffold/statuses/{sha}","languages_url":"https://api.github.com/repos/drudru/ext_scaffold/languages","stargazers_url":"https://api.github.com/repos/drudru/ext_scaffold/stargazers","contributors_url":"https://api.github.com/repos/drudru/ext_scaffold/contributors","subscribers_url":"https://api.github.com/repos/drudru/ext_scaffold/subscribers","subscription_url":"https://api.github.com/repos/drudru/ext_scaffold/subscription","commits_url":"https://api.github.com/repos/drudru/ext_scaffold/commits{/sha}","git_commits_url":"https://api.github.com/repos/drudru/ext_scaffold/git/commits{/sha}","comments_url":"https://api.github.com/repos/drudru/ext_scaffold/comments{/number}","issue_comment_url":"https://api.github.com/repos/drudru/ext_scaffold/issues/comments/{number}","contents_url":"https://api.github.com/repos/drudru/ext_scaffold/contents/{+path}","compare_url":"https://api.github.com/repos/drudru/ext_scaffold/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drudru/ext_scaffold/merges","archive_url":"https://api.github.com/repos/drudru/ext_scaffold/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drudru/ext_scaffold/downloads","issues_url":"https://api.github.com/repos/drudru/ext_scaffold/issues{/number}","pulls_url":"https://api.github.com/repos/drudru/ext_scaffold/pulls{/number}","milestones_url":"https://api.github.com/repos/drudru/ext_scaffold/milestones{/number}","notifications_url":"https://api.github.com/repos/drudru/ext_scaffold/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drudru/ext_scaffold/labels{/name}"},{"id":1385,"name":"spongewolf","full_name":"ckhsponge/spongewolf","owner":{"login":"ckhsponge","id":590,"avatar_url":"https://2.gravatar.com/avatar/56b08cc76663f72307f41583a1980454?d=https%3A%2F%2Fidenticons.github.com%2F08b255a5d42b89b0585260b6f2360bdd.png","gravatar_id":"56b08cc76663f72307f41583a1980454","url":"https://api.github.com/users/ckhsponge","html_url":"https://github.com/ckhsponge","followers_url":"https://api.github.com/users/ckhsponge/followers","following_url":"https://api.github.com/users/ckhsponge/following{/other_user}","gists_url":"https://api.github.com/users/ckhsponge/gists{/gist_id}","starred_url":"https://api.github.com/users/ckhsponge/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ckhsponge/subscriptions","organizations_url":"https://api.github.com/users/ckhsponge/orgs","repos_url":"https://api.github.com/users/ckhsponge/repos","events_url":"https://api.github.com/users/ckhsponge/events{/privacy}","received_events_url":"https://api.github.com/users/ckhsponge/received_events","type":"User"},"private":false,"html_url":"https://github.com/ckhsponge/spongewolf","description":"Rails application for building event lists and calendars using the Spongecell API","fork":false,"url":"https://api.github.com/repos/ckhsponge/spongewolf","forks_url":"https://api.github.com/repos/ckhsponge/spongewolf/forks","keys_url":"https://api.github.com/repos/ckhsponge/spongewolf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ckhsponge/spongewolf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ckhsponge/spongewolf/teams","hooks_url":"https://api.github.com/repos/ckhsponge/spongewolf/hooks","issue_events_url":"https://api.github.com/repos/ckhsponge/spongewolf/issues/events{/number}","events_url":"https://api.github.com/repos/ckhsponge/spongewolf/events","assignees_url":"https://api.github.com/repos/ckhsponge/spongewolf/assignees{/user}","branches_url":"https://api.github.com/repos/ckhsponge/spongewolf/branches{/branch}","tags_url":"https://api.github.com/repos/ckhsponge/spongewolf/tags","blobs_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/refs{/sha}","trees_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ckhsponge/spongewolf/statuses/{sha}","languages_url":"https://api.github.com/repos/ckhsponge/spongewolf/languages","stargazers_url":"https://api.github.com/repos/ckhsponge/spongewolf/stargazers","contributors_url":"https://api.github.com/repos/ckhsponge/spongewolf/contributors","subscribers_url":"https://api.github.com/repos/ckhsponge/spongewolf/subscribers","subscription_url":"https://api.github.com/repos/ckhsponge/spongewolf/subscription","commits_url":"https://api.github.com/repos/ckhsponge/spongewolf/commits{/sha}","git_commits_url":"https://api.github.com/repos/ckhsponge/spongewolf/git/commits{/sha}","comments_url":"https://api.github.com/repos/ckhsponge/spongewolf/comments{/number}","issue_comment_url":"https://api.github.com/repos/ckhsponge/spongewolf/issues/comments/{number}","contents_url":"https://api.github.com/repos/ckhsponge/spongewolf/contents/{+path}","compare_url":"https://api.github.com/repos/ckhsponge/spongewolf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ckhsponge/spongewolf/merges","archive_url":"https://api.github.com/repos/ckhsponge/spongewolf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ckhsponge/spongewolf/downloads","issues_url":"https://api.github.com/repos/ckhsponge/spongewolf/issues{/number}","pulls_url":"https://api.github.com/repos/ckhsponge/spongewolf/pulls{/number}","milestones_url":"https://api.github.com/repos/ckhsponge/spongewolf/milestones{/number}","notifications_url":"https://api.github.com/repos/ckhsponge/spongewolf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ckhsponge/spongewolf/labels{/name}"},{"id":1388,"name":"amazing","full_name":"dag/amazing","owner":{"login":"dag","id":319,"avatar_url":"https://1.gravatar.com/avatar/482f6832b98eccb86e2a5dc4de8aad91?d=https%3A%2F%2Fidenticons.github.com%2F8d3bba7425e7c98c50f52ca1b52d3735.png","gravatar_id":"482f6832b98eccb86e2a5dc4de8aad91","url":"https://api.github.com/users/dag","html_url":"https://github.com/dag","followers_url":"https://api.github.com/users/dag/followers","following_url":"https://api.github.com/users/dag/following{/other_user}","gists_url":"https://api.github.com/users/dag/gists{/gist_id}","starred_url":"https://api.github.com/users/dag/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dag/subscriptions","organizations_url":"https://api.github.com/users/dag/orgs","repos_url":"https://api.github.com/users/dag/repos","events_url":"https://api.github.com/users/dag/events{/privacy}","received_events_url":"https://api.github.com/users/dag/received_events","type":"User"},"private":false,"html_url":"https://github.com/dag/amazing","description":"an amazing widget manager for an awesome window manager","fork":false,"url":"https://api.github.com/repos/dag/amazing","forks_url":"https://api.github.com/repos/dag/amazing/forks","keys_url":"https://api.github.com/repos/dag/amazing/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dag/amazing/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dag/amazing/teams","hooks_url":"https://api.github.com/repos/dag/amazing/hooks","issue_events_url":"https://api.github.com/repos/dag/amazing/issues/events{/number}","events_url":"https://api.github.com/repos/dag/amazing/events","assignees_url":"https://api.github.com/repos/dag/amazing/assignees{/user}","branches_url":"https://api.github.com/repos/dag/amazing/branches{/branch}","tags_url":"https://api.github.com/repos/dag/amazing/tags","blobs_url":"https://api.github.com/repos/dag/amazing/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dag/amazing/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dag/amazing/git/refs{/sha}","trees_url":"https://api.github.com/repos/dag/amazing/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dag/amazing/statuses/{sha}","languages_url":"https://api.github.com/repos/dag/amazing/languages","stargazers_url":"https://api.github.com/repos/dag/amazing/stargazers","contributors_url":"https://api.github.com/repos/dag/amazing/contributors","subscribers_url":"https://api.github.com/repos/dag/amazing/subscribers","subscription_url":"https://api.github.com/repos/dag/amazing/subscription","commits_url":"https://api.github.com/repos/dag/amazing/commits{/sha}","git_commits_url":"https://api.github.com/repos/dag/amazing/git/commits{/sha}","comments_url":"https://api.github.com/repos/dag/amazing/comments{/number}","issue_comment_url":"https://api.github.com/repos/dag/amazing/issues/comments/{number}","contents_url":"https://api.github.com/repos/dag/amazing/contents/{+path}","compare_url":"https://api.github.com/repos/dag/amazing/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dag/amazing/merges","archive_url":"https://api.github.com/repos/dag/amazing/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dag/amazing/downloads","issues_url":"https://api.github.com/repos/dag/amazing/issues{/number}","pulls_url":"https://api.github.com/repos/dag/amazing/pulls{/number}","milestones_url":"https://api.github.com/repos/dag/amazing/milestones{/number}","notifications_url":"https://api.github.com/repos/dag/amazing/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dag/amazing/labels{/name}"},{"id":1398,"name":"ruby-merlin","full_name":"pdsphil/ruby-merlin","owner":{"login":"pdsphil","id":268,"avatar_url":"https://1.gravatar.com/avatar/e0bd199c24c59f1666f3ce960c3309ee?d=https%3A%2F%2Fidenticons.github.com%2F8f121ce07d74717e0b1f21d122e04521.png","gravatar_id":"e0bd199c24c59f1666f3ce960c3309ee","url":"https://api.github.com/users/pdsphil","html_url":"https://github.com/pdsphil","followers_url":"https://api.github.com/users/pdsphil/followers","following_url":"https://api.github.com/users/pdsphil/following{/other_user}","gists_url":"https://api.github.com/users/pdsphil/gists{/gist_id}","starred_url":"https://api.github.com/users/pdsphil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pdsphil/subscriptions","organizations_url":"https://api.github.com/users/pdsphil/orgs","repos_url":"https://api.github.com/users/pdsphil/repos","events_url":"https://api.github.com/users/pdsphil/events{/privacy}","received_events_url":"https://api.github.com/users/pdsphil/received_events","type":"User"},"private":false,"html_url":"https://github.com/pdsphil/ruby-merlin","description":"Ruby interface to the Merlin API","fork":false,"url":"https://api.github.com/repos/pdsphil/ruby-merlin","forks_url":"https://api.github.com/repos/pdsphil/ruby-merlin/forks","keys_url":"https://api.github.com/repos/pdsphil/ruby-merlin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pdsphil/ruby-merlin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pdsphil/ruby-merlin/teams","hooks_url":"https://api.github.com/repos/pdsphil/ruby-merlin/hooks","issue_events_url":"https://api.github.com/repos/pdsphil/ruby-merlin/issues/events{/number}","events_url":"https://api.github.com/repos/pdsphil/ruby-merlin/events","assignees_url":"https://api.github.com/repos/pdsphil/ruby-merlin/assignees{/user}","branches_url":"https://api.github.com/repos/pdsphil/ruby-merlin/branches{/branch}","tags_url":"https://api.github.com/repos/pdsphil/ruby-merlin/tags","blobs_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/refs{/sha}","trees_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pdsphil/ruby-merlin/statuses/{sha}","languages_url":"https://api.github.com/repos/pdsphil/ruby-merlin/languages","stargazers_url":"https://api.github.com/repos/pdsphil/ruby-merlin/stargazers","contributors_url":"https://api.github.com/repos/pdsphil/ruby-merlin/contributors","subscribers_url":"https://api.github.com/repos/pdsphil/ruby-merlin/subscribers","subscription_url":"https://api.github.com/repos/pdsphil/ruby-merlin/subscription","commits_url":"https://api.github.com/repos/pdsphil/ruby-merlin/commits{/sha}","git_commits_url":"https://api.github.com/repos/pdsphil/ruby-merlin/git/commits{/sha}","comments_url":"https://api.github.com/repos/pdsphil/ruby-merlin/comments{/number}","issue_comment_url":"https://api.github.com/repos/pdsphil/ruby-merlin/issues/comments/{number}","contents_url":"https://api.github.com/repos/pdsphil/ruby-merlin/contents/{+path}","compare_url":"https://api.github.com/repos/pdsphil/ruby-merlin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pdsphil/ruby-merlin/merges","archive_url":"https://api.github.com/repos/pdsphil/ruby-merlin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pdsphil/ruby-merlin/downloads","issues_url":"https://api.github.com/repos/pdsphil/ruby-merlin/issues{/number}","pulls_url":"https://api.github.com/repos/pdsphil/ruby-merlin/pulls{/number}","milestones_url":"https://api.github.com/repos/pdsphil/ruby-merlin/milestones{/number}","notifications_url":"https://api.github.com/repos/pdsphil/ruby-merlin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pdsphil/ruby-merlin/labels{/name}"},{"id":1401,"name":"tekkonfig","full_name":"tekkub/tekkonfig","owner":{"login":"tekkub","id":706,"avatar_url":"https://1.gravatar.com/avatar/472814aac7576b67da59ea79fcbf7d66?d=https%3A%2F%2Fidenticons.github.com%2F9c82c7143c102b71c593d98d96093fde.png","gravatar_id":"472814aac7576b67da59ea79fcbf7d66","url":"https://api.github.com/users/tekkub","html_url":"https://github.com/tekkub","followers_url":"https://api.github.com/users/tekkub/followers","following_url":"https://api.github.com/users/tekkub/following{/other_user}","gists_url":"https://api.github.com/users/tekkub/gists{/gist_id}","starred_url":"https://api.github.com/users/tekkub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tekkub/subscriptions","organizations_url":"https://api.github.com/users/tekkub/orgs","repos_url":"https://api.github.com/users/tekkub/repos","events_url":"https://api.github.com/users/tekkub/events{/privacy}","received_events_url":"https://api.github.com/users/tekkub/received_events","type":"User"},"private":false,"html_url":"https://github.com/tekkub/tekkonfig","description":"Misc GUI widget factories for World of Warcraft addons","fork":false,"url":"https://api.github.com/repos/tekkub/tekkonfig","forks_url":"https://api.github.com/repos/tekkub/tekkonfig/forks","keys_url":"https://api.github.com/repos/tekkub/tekkonfig/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tekkub/tekkonfig/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tekkub/tekkonfig/teams","hooks_url":"https://api.github.com/repos/tekkub/tekkonfig/hooks","issue_events_url":"https://api.github.com/repos/tekkub/tekkonfig/issues/events{/number}","events_url":"https://api.github.com/repos/tekkub/tekkonfig/events","assignees_url":"https://api.github.com/repos/tekkub/tekkonfig/assignees{/user}","branches_url":"https://api.github.com/repos/tekkub/tekkonfig/branches{/branch}","tags_url":"https://api.github.com/repos/tekkub/tekkonfig/tags","blobs_url":"https://api.github.com/repos/tekkub/tekkonfig/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tekkub/tekkonfig/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tekkub/tekkonfig/git/refs{/sha}","trees_url":"https://api.github.com/repos/tekkub/tekkonfig/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tekkub/tekkonfig/statuses/{sha}","languages_url":"https://api.github.com/repos/tekkub/tekkonfig/languages","stargazers_url":"https://api.github.com/repos/tekkub/tekkonfig/stargazers","contributors_url":"https://api.github.com/repos/tekkub/tekkonfig/contributors","subscribers_url":"https://api.github.com/repos/tekkub/tekkonfig/subscribers","subscription_url":"https://api.github.com/repos/tekkub/tekkonfig/subscription","commits_url":"https://api.github.com/repos/tekkub/tekkonfig/commits{/sha}","git_commits_url":"https://api.github.com/repos/tekkub/tekkonfig/git/commits{/sha}","comments_url":"https://api.github.com/repos/tekkub/tekkonfig/comments{/number}","issue_comment_url":"https://api.github.com/repos/tekkub/tekkonfig/issues/comments/{number}","contents_url":"https://api.github.com/repos/tekkub/tekkonfig/contents/{+path}","compare_url":"https://api.github.com/repos/tekkub/tekkonfig/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tekkub/tekkonfig/merges","archive_url":"https://api.github.com/repos/tekkub/tekkonfig/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tekkub/tekkonfig/downloads","issues_url":"https://api.github.com/repos/tekkub/tekkonfig/issues{/number}","pulls_url":"https://api.github.com/repos/tekkub/tekkonfig/pulls{/number}","milestones_url":"https://api.github.com/repos/tekkub/tekkonfig/milestones{/number}","notifications_url":"https://api.github.com/repos/tekkub/tekkonfig/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tekkub/tekkonfig/labels{/name}"},{"id":1402,"name":"ruby-idology","full_name":"pdsphil/ruby-idology","owner":{"login":"pdsphil","id":268,"avatar_url":"https://1.gravatar.com/avatar/e0bd199c24c59f1666f3ce960c3309ee?d=https%3A%2F%2Fidenticons.github.com%2F8f121ce07d74717e0b1f21d122e04521.png","gravatar_id":"e0bd199c24c59f1666f3ce960c3309ee","url":"https://api.github.com/users/pdsphil","html_url":"https://github.com/pdsphil","followers_url":"https://api.github.com/users/pdsphil/followers","following_url":"https://api.github.com/users/pdsphil/following{/other_user}","gists_url":"https://api.github.com/users/pdsphil/gists{/gist_id}","starred_url":"https://api.github.com/users/pdsphil/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pdsphil/subscriptions","organizations_url":"https://api.github.com/users/pdsphil/orgs","repos_url":"https://api.github.com/users/pdsphil/repos","events_url":"https://api.github.com/users/pdsphil/events{/privacy}","received_events_url":"https://api.github.com/users/pdsphil/received_events","type":"User"},"private":false,"html_url":"https://github.com/pdsphil/ruby-idology","description":"Ruby interface to the IDology API","fork":false,"url":"https://api.github.com/repos/pdsphil/ruby-idology","forks_url":"https://api.github.com/repos/pdsphil/ruby-idology/forks","keys_url":"https://api.github.com/repos/pdsphil/ruby-idology/keys{/key_id}","collaborators_url":"https://api.github.com/repos/pdsphil/ruby-idology/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/pdsphil/ruby-idology/teams","hooks_url":"https://api.github.com/repos/pdsphil/ruby-idology/hooks","issue_events_url":"https://api.github.com/repos/pdsphil/ruby-idology/issues/events{/number}","events_url":"https://api.github.com/repos/pdsphil/ruby-idology/events","assignees_url":"https://api.github.com/repos/pdsphil/ruby-idology/assignees{/user}","branches_url":"https://api.github.com/repos/pdsphil/ruby-idology/branches{/branch}","tags_url":"https://api.github.com/repos/pdsphil/ruby-idology/tags","blobs_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/refs{/sha}","trees_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/trees{/sha}","statuses_url":"https://api.github.com/repos/pdsphil/ruby-idology/statuses/{sha}","languages_url":"https://api.github.com/repos/pdsphil/ruby-idology/languages","stargazers_url":"https://api.github.com/repos/pdsphil/ruby-idology/stargazers","contributors_url":"https://api.github.com/repos/pdsphil/ruby-idology/contributors","subscribers_url":"https://api.github.com/repos/pdsphil/ruby-idology/subscribers","subscription_url":"https://api.github.com/repos/pdsphil/ruby-idology/subscription","commits_url":"https://api.github.com/repos/pdsphil/ruby-idology/commits{/sha}","git_commits_url":"https://api.github.com/repos/pdsphil/ruby-idology/git/commits{/sha}","comments_url":"https://api.github.com/repos/pdsphil/ruby-idology/comments{/number}","issue_comment_url":"https://api.github.com/repos/pdsphil/ruby-idology/issues/comments/{number}","contents_url":"https://api.github.com/repos/pdsphil/ruby-idology/contents/{+path}","compare_url":"https://api.github.com/repos/pdsphil/ruby-idology/compare/{base}...{head}","merges_url":"https://api.github.com/repos/pdsphil/ruby-idology/merges","archive_url":"https://api.github.com/repos/pdsphil/ruby-idology/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/pdsphil/ruby-idology/downloads","issues_url":"https://api.github.com/repos/pdsphil/ruby-idology/issues{/number}","pulls_url":"https://api.github.com/repos/pdsphil/ruby-idology/pulls{/number}","milestones_url":"https://api.github.com/repos/pdsphil/ruby-idology/milestones{/number}","notifications_url":"https://api.github.com/repos/pdsphil/ruby-idology/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/pdsphil/ruby-idology/labels{/name}"},{"id":1408,"name":"luaclr","full_name":"mascarenhas/luaclr","owner":{"login":"mascarenhas","id":363,"avatar_url":"https://0.gravatar.com/avatar/f9757c8ee985d7343427b8bd1797ec2f?d=https%3A%2F%2Fidenticons.github.com%2F00411460f7c92d2124a67ea0f4cb5f85.png","gravatar_id":"f9757c8ee985d7343427b8bd1797ec2f","url":"https://api.github.com/users/mascarenhas","html_url":"https://github.com/mascarenhas","followers_url":"https://api.github.com/users/mascarenhas/followers","following_url":"https://api.github.com/users/mascarenhas/following{/other_user}","gists_url":"https://api.github.com/users/mascarenhas/gists{/gist_id}","starred_url":"https://api.github.com/users/mascarenhas/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mascarenhas/subscriptions","organizations_url":"https://api.github.com/users/mascarenhas/orgs","repos_url":"https://api.github.com/users/mascarenhas/repos","events_url":"https://api.github.com/users/mascarenhas/events{/privacy}","received_events_url":"https://api.github.com/users/mascarenhas/received_events","type":"User"},"private":false,"html_url":"https://github.com/mascarenhas/luaclr","description":"","fork":false,"url":"https://api.github.com/repos/mascarenhas/luaclr","forks_url":"https://api.github.com/repos/mascarenhas/luaclr/forks","keys_url":"https://api.github.com/repos/mascarenhas/luaclr/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mascarenhas/luaclr/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mascarenhas/luaclr/teams","hooks_url":"https://api.github.com/repos/mascarenhas/luaclr/hooks","issue_events_url":"https://api.github.com/repos/mascarenhas/luaclr/issues/events{/number}","events_url":"https://api.github.com/repos/mascarenhas/luaclr/events","assignees_url":"https://api.github.com/repos/mascarenhas/luaclr/assignees{/user}","branches_url":"https://api.github.com/repos/mascarenhas/luaclr/branches{/branch}","tags_url":"https://api.github.com/repos/mascarenhas/luaclr/tags","blobs_url":"https://api.github.com/repos/mascarenhas/luaclr/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mascarenhas/luaclr/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mascarenhas/luaclr/git/refs{/sha}","trees_url":"https://api.github.com/repos/mascarenhas/luaclr/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mascarenhas/luaclr/statuses/{sha}","languages_url":"https://api.github.com/repos/mascarenhas/luaclr/languages","stargazers_url":"https://api.github.com/repos/mascarenhas/luaclr/stargazers","contributors_url":"https://api.github.com/repos/mascarenhas/luaclr/contributors","subscribers_url":"https://api.github.com/repos/mascarenhas/luaclr/subscribers","subscription_url":"https://api.github.com/repos/mascarenhas/luaclr/subscription","commits_url":"https://api.github.com/repos/mascarenhas/luaclr/commits{/sha}","git_commits_url":"https://api.github.com/repos/mascarenhas/luaclr/git/commits{/sha}","comments_url":"https://api.github.com/repos/mascarenhas/luaclr/comments{/number}","issue_comment_url":"https://api.github.com/repos/mascarenhas/luaclr/issues/comments/{number}","contents_url":"https://api.github.com/repos/mascarenhas/luaclr/contents/{+path}","compare_url":"https://api.github.com/repos/mascarenhas/luaclr/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mascarenhas/luaclr/merges","archive_url":"https://api.github.com/repos/mascarenhas/luaclr/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mascarenhas/luaclr/downloads","issues_url":"https://api.github.com/repos/mascarenhas/luaclr/issues{/number}","pulls_url":"https://api.github.com/repos/mascarenhas/luaclr/pulls{/number}","milestones_url":"https://api.github.com/repos/mascarenhas/luaclr/milestones{/number}","notifications_url":"https://api.github.com/repos/mascarenhas/luaclr/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mascarenhas/luaclr/labels{/name}"},{"id":1411,"name":"bricklet-core","full_name":"jasonm/bricklet-core","owner":{"login":"jasonm","id":1031,"avatar_url":"https://2.gravatar.com/avatar/8478f9ebe099ad853f022deeb2c1defe?d=https%3A%2F%2Fidenticons.github.com%2Fafdec7005cc9f14302cd0474fd0f3c96.png","gravatar_id":"8478f9ebe099ad853f022deeb2c1defe","url":"https://api.github.com/users/jasonm","html_url":"https://github.com/jasonm","followers_url":"https://api.github.com/users/jasonm/followers","following_url":"https://api.github.com/users/jasonm/following{/other_user}","gists_url":"https://api.github.com/users/jasonm/gists{/gist_id}","starred_url":"https://api.github.com/users/jasonm/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jasonm/subscriptions","organizations_url":"https://api.github.com/users/jasonm/orgs","repos_url":"https://api.github.com/users/jasonm/repos","events_url":"https://api.github.com/users/jasonm/events{/privacy}","received_events_url":"https://api.github.com/users/jasonm/received_events","type":"User"},"private":false,"html_url":"https://github.com/jasonm/bricklet-core","description":"Core data server for BioBrick format","fork":false,"url":"https://api.github.com/repos/jasonm/bricklet-core","forks_url":"https://api.github.com/repos/jasonm/bricklet-core/forks","keys_url":"https://api.github.com/repos/jasonm/bricklet-core/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jasonm/bricklet-core/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jasonm/bricklet-core/teams","hooks_url":"https://api.github.com/repos/jasonm/bricklet-core/hooks","issue_events_url":"https://api.github.com/repos/jasonm/bricklet-core/issues/events{/number}","events_url":"https://api.github.com/repos/jasonm/bricklet-core/events","assignees_url":"https://api.github.com/repos/jasonm/bricklet-core/assignees{/user}","branches_url":"https://api.github.com/repos/jasonm/bricklet-core/branches{/branch}","tags_url":"https://api.github.com/repos/jasonm/bricklet-core/tags","blobs_url":"https://api.github.com/repos/jasonm/bricklet-core/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jasonm/bricklet-core/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jasonm/bricklet-core/git/refs{/sha}","trees_url":"https://api.github.com/repos/jasonm/bricklet-core/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jasonm/bricklet-core/statuses/{sha}","languages_url":"https://api.github.com/repos/jasonm/bricklet-core/languages","stargazers_url":"https://api.github.com/repos/jasonm/bricklet-core/stargazers","contributors_url":"https://api.github.com/repos/jasonm/bricklet-core/contributors","subscribers_url":"https://api.github.com/repos/jasonm/bricklet-core/subscribers","subscription_url":"https://api.github.com/repos/jasonm/bricklet-core/subscription","commits_url":"https://api.github.com/repos/jasonm/bricklet-core/commits{/sha}","git_commits_url":"https://api.github.com/repos/jasonm/bricklet-core/git/commits{/sha}","comments_url":"https://api.github.com/repos/jasonm/bricklet-core/comments{/number}","issue_comment_url":"https://api.github.com/repos/jasonm/bricklet-core/issues/comments/{number}","contents_url":"https://api.github.com/repos/jasonm/bricklet-core/contents/{+path}","compare_url":"https://api.github.com/repos/jasonm/bricklet-core/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jasonm/bricklet-core/merges","archive_url":"https://api.github.com/repos/jasonm/bricklet-core/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jasonm/bricklet-core/downloads","issues_url":"https://api.github.com/repos/jasonm/bricklet-core/issues{/number}","pulls_url":"https://api.github.com/repos/jasonm/bricklet-core/pulls{/number}","milestones_url":"https://api.github.com/repos/jasonm/bricklet-core/milestones{/number}","notifications_url":"https://api.github.com/repos/jasonm/bricklet-core/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jasonm/bricklet-core/labels{/name}"},{"id":1414,"name":"bookeater","full_name":"gensym/bookeater","owner":{"login":"gensym","id":899,"avatar_url":"https://0.gravatar.com/avatar/e63b603ed7ffcb6b5c65707abc30e303?d=https%3A%2F%2Fidenticons.github.com%2F01882513d5fa7c329e940dda99b12147.png","gravatar_id":"e63b603ed7ffcb6b5c65707abc30e303","url":"https://api.github.com/users/gensym","html_url":"https://github.com/gensym","followers_url":"https://api.github.com/users/gensym/followers","following_url":"https://api.github.com/users/gensym/following{/other_user}","gists_url":"https://api.github.com/users/gensym/gists{/gist_id}","starred_url":"https://api.github.com/users/gensym/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gensym/subscriptions","organizations_url":"https://api.github.com/users/gensym/orgs","repos_url":"https://api.github.com/users/gensym/repos","events_url":"https://api.github.com/users/gensym/events{/privacy}","received_events_url":"https://api.github.com/users/gensym/received_events","type":"User"},"private":false,"html_url":"https://github.com/gensym/bookeater","description":"BookEater.net","fork":false,"url":"https://api.github.com/repos/gensym/bookeater","forks_url":"https://api.github.com/repos/gensym/bookeater/forks","keys_url":"https://api.github.com/repos/gensym/bookeater/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gensym/bookeater/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gensym/bookeater/teams","hooks_url":"https://api.github.com/repos/gensym/bookeater/hooks","issue_events_url":"https://api.github.com/repos/gensym/bookeater/issues/events{/number}","events_url":"https://api.github.com/repos/gensym/bookeater/events","assignees_url":"https://api.github.com/repos/gensym/bookeater/assignees{/user}","branches_url":"https://api.github.com/repos/gensym/bookeater/branches{/branch}","tags_url":"https://api.github.com/repos/gensym/bookeater/tags","blobs_url":"https://api.github.com/repos/gensym/bookeater/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gensym/bookeater/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gensym/bookeater/git/refs{/sha}","trees_url":"https://api.github.com/repos/gensym/bookeater/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gensym/bookeater/statuses/{sha}","languages_url":"https://api.github.com/repos/gensym/bookeater/languages","stargazers_url":"https://api.github.com/repos/gensym/bookeater/stargazers","contributors_url":"https://api.github.com/repos/gensym/bookeater/contributors","subscribers_url":"https://api.github.com/repos/gensym/bookeater/subscribers","subscription_url":"https://api.github.com/repos/gensym/bookeater/subscription","commits_url":"https://api.github.com/repos/gensym/bookeater/commits{/sha}","git_commits_url":"https://api.github.com/repos/gensym/bookeater/git/commits{/sha}","comments_url":"https://api.github.com/repos/gensym/bookeater/comments{/number}","issue_comment_url":"https://api.github.com/repos/gensym/bookeater/issues/comments/{number}","contents_url":"https://api.github.com/repos/gensym/bookeater/contents/{+path}","compare_url":"https://api.github.com/repos/gensym/bookeater/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gensym/bookeater/merges","archive_url":"https://api.github.com/repos/gensym/bookeater/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gensym/bookeater/downloads","issues_url":"https://api.github.com/repos/gensym/bookeater/issues{/number}","pulls_url":"https://api.github.com/repos/gensym/bookeater/pulls{/number}","milestones_url":"https://api.github.com/repos/gensym/bookeater/milestones{/number}","notifications_url":"https://api.github.com/repos/gensym/bookeater/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gensym/bookeater/labels{/name}"},{"id":1425,"name":"facon","full_name":"chuyeow/facon","owner":{"login":"chuyeow","id":213,"avatar_url":"https://2.gravatar.com/avatar/00fd4ce27c06ba63e7ddca4c3d67e5ea?d=https%3A%2F%2Fidenticons.github.com%2F979d472a84804b9f647bc185a877a8b5.png","gravatar_id":"00fd4ce27c06ba63e7ddca4c3d67e5ea","url":"https://api.github.com/users/chuyeow","html_url":"https://github.com/chuyeow","followers_url":"https://api.github.com/users/chuyeow/followers","following_url":"https://api.github.com/users/chuyeow/following{/other_user}","gists_url":"https://api.github.com/users/chuyeow/gists{/gist_id}","starred_url":"https://api.github.com/users/chuyeow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/chuyeow/subscriptions","organizations_url":"https://api.github.com/users/chuyeow/orgs","repos_url":"https://api.github.com/users/chuyeow/repos","events_url":"https://api.github.com/users/chuyeow/events{/privacy}","received_events_url":"https://api.github.com/users/chuyeow/received_events","type":"User"},"private":false,"html_url":"https://github.com/chuyeow/facon","description":"Facon is a mocking library in the spirit of the Bacon spec library. Small, compact, and works with Bacon.","fork":false,"url":"https://api.github.com/repos/chuyeow/facon","forks_url":"https://api.github.com/repos/chuyeow/facon/forks","keys_url":"https://api.github.com/repos/chuyeow/facon/keys{/key_id}","collaborators_url":"https://api.github.com/repos/chuyeow/facon/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/chuyeow/facon/teams","hooks_url":"https://api.github.com/repos/chuyeow/facon/hooks","issue_events_url":"https://api.github.com/repos/chuyeow/facon/issues/events{/number}","events_url":"https://api.github.com/repos/chuyeow/facon/events","assignees_url":"https://api.github.com/repos/chuyeow/facon/assignees{/user}","branches_url":"https://api.github.com/repos/chuyeow/facon/branches{/branch}","tags_url":"https://api.github.com/repos/chuyeow/facon/tags","blobs_url":"https://api.github.com/repos/chuyeow/facon/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/chuyeow/facon/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/chuyeow/facon/git/refs{/sha}","trees_url":"https://api.github.com/repos/chuyeow/facon/git/trees{/sha}","statuses_url":"https://api.github.com/repos/chuyeow/facon/statuses/{sha}","languages_url":"https://api.github.com/repos/chuyeow/facon/languages","stargazers_url":"https://api.github.com/repos/chuyeow/facon/stargazers","contributors_url":"https://api.github.com/repos/chuyeow/facon/contributors","subscribers_url":"https://api.github.com/repos/chuyeow/facon/subscribers","subscription_url":"https://api.github.com/repos/chuyeow/facon/subscription","commits_url":"https://api.github.com/repos/chuyeow/facon/commits{/sha}","git_commits_url":"https://api.github.com/repos/chuyeow/facon/git/commits{/sha}","comments_url":"https://api.github.com/repos/chuyeow/facon/comments{/number}","issue_comment_url":"https://api.github.com/repos/chuyeow/facon/issues/comments/{number}","contents_url":"https://api.github.com/repos/chuyeow/facon/contents/{+path}","compare_url":"https://api.github.com/repos/chuyeow/facon/compare/{base}...{head}","merges_url":"https://api.github.com/repos/chuyeow/facon/merges","archive_url":"https://api.github.com/repos/chuyeow/facon/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/chuyeow/facon/downloads","issues_url":"https://api.github.com/repos/chuyeow/facon/issues{/number}","pulls_url":"https://api.github.com/repos/chuyeow/facon/pulls{/number}","milestones_url":"https://api.github.com/repos/chuyeow/facon/milestones{/number}","notifications_url":"https://api.github.com/repos/chuyeow/facon/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/chuyeow/facon/labels{/name}"},{"id":1429,"name":"stat","full_name":"vanpelt/stat","owner":{"login":"vanpelt","id":17,"avatar_url":"https://1.gravatar.com/avatar/1da36d4c1f34454de6c07855098675f6?d=https%3A%2F%2Fidenticons.github.com%2F70efdf2ec9b086079795c442636b55fb.png","gravatar_id":"1da36d4c1f34454de6c07855098675f6","url":"https://api.github.com/users/vanpelt","html_url":"https://github.com/vanpelt","followers_url":"https://api.github.com/users/vanpelt/followers","following_url":"https://api.github.com/users/vanpelt/following{/other_user}","gists_url":"https://api.github.com/users/vanpelt/gists{/gist_id}","starred_url":"https://api.github.com/users/vanpelt/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/vanpelt/subscriptions","organizations_url":"https://api.github.com/users/vanpelt/orgs","repos_url":"https://api.github.com/users/vanpelt/repos","events_url":"https://api.github.com/users/vanpelt/events{/privacy}","received_events_url":"https://api.github.com/users/vanpelt/received_events","type":"User"},"private":false,"html_url":"https://github.com/vanpelt/stat","description":"A Rakefile that makes static website creation and deploying stupid simple","fork":false,"url":"https://api.github.com/repos/vanpelt/stat","forks_url":"https://api.github.com/repos/vanpelt/stat/forks","keys_url":"https://api.github.com/repos/vanpelt/stat/keys{/key_id}","collaborators_url":"https://api.github.com/repos/vanpelt/stat/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/vanpelt/stat/teams","hooks_url":"https://api.github.com/repos/vanpelt/stat/hooks","issue_events_url":"https://api.github.com/repos/vanpelt/stat/issues/events{/number}","events_url":"https://api.github.com/repos/vanpelt/stat/events","assignees_url":"https://api.github.com/repos/vanpelt/stat/assignees{/user}","branches_url":"https://api.github.com/repos/vanpelt/stat/branches{/branch}","tags_url":"https://api.github.com/repos/vanpelt/stat/tags","blobs_url":"https://api.github.com/repos/vanpelt/stat/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/vanpelt/stat/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/vanpelt/stat/git/refs{/sha}","trees_url":"https://api.github.com/repos/vanpelt/stat/git/trees{/sha}","statuses_url":"https://api.github.com/repos/vanpelt/stat/statuses/{sha}","languages_url":"https://api.github.com/repos/vanpelt/stat/languages","stargazers_url":"https://api.github.com/repos/vanpelt/stat/stargazers","contributors_url":"https://api.github.com/repos/vanpelt/stat/contributors","subscribers_url":"https://api.github.com/repos/vanpelt/stat/subscribers","subscription_url":"https://api.github.com/repos/vanpelt/stat/subscription","commits_url":"https://api.github.com/repos/vanpelt/stat/commits{/sha}","git_commits_url":"https://api.github.com/repos/vanpelt/stat/git/commits{/sha}","comments_url":"https://api.github.com/repos/vanpelt/stat/comments{/number}","issue_comment_url":"https://api.github.com/repos/vanpelt/stat/issues/comments/{number}","contents_url":"https://api.github.com/repos/vanpelt/stat/contents/{+path}","compare_url":"https://api.github.com/repos/vanpelt/stat/compare/{base}...{head}","merges_url":"https://api.github.com/repos/vanpelt/stat/merges","archive_url":"https://api.github.com/repos/vanpelt/stat/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/vanpelt/stat/downloads","issues_url":"https://api.github.com/repos/vanpelt/stat/issues{/number}","pulls_url":"https://api.github.com/repos/vanpelt/stat/pulls{/number}","milestones_url":"https://api.github.com/repos/vanpelt/stat/milestones{/number}","notifications_url":"https://api.github.com/repos/vanpelt/stat/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/vanpelt/stat/labels{/name}"},{"id":1435,"name":"rubynomic","full_name":"Norgg/rubynomic","owner":{"login":"Norgg","id":913,"avatar_url":"https://0.gravatar.com/avatar/f041ccf24524caf8d010097770b5eeae?d=https%3A%2F%2Fidenticons.github.com%2F8b5040a8a5baf3e0e67386c2e3a9b903.png","gravatar_id":"f041ccf24524caf8d010097770b5eeae","url":"https://api.github.com/users/Norgg","html_url":"https://github.com/Norgg","followers_url":"https://api.github.com/users/Norgg/followers","following_url":"https://api.github.com/users/Norgg/following{/other_user}","gists_url":"https://api.github.com/users/Norgg/gists{/gist_id}","starred_url":"https://api.github.com/users/Norgg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Norgg/subscriptions","organizations_url":"https://api.github.com/users/Norgg/orgs","repos_url":"https://api.github.com/users/Norgg/repos","events_url":"https://api.github.com/users/Norgg/events{/privacy}","received_events_url":"https://api.github.com/users/Norgg/received_events","type":"User"},"private":false,"html_url":"https://github.com/Norgg/rubynomic","description":"Initial source code for ruby nomic games","fork":false,"url":"https://api.github.com/repos/Norgg/rubynomic","forks_url":"https://api.github.com/repos/Norgg/rubynomic/forks","keys_url":"https://api.github.com/repos/Norgg/rubynomic/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Norgg/rubynomic/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Norgg/rubynomic/teams","hooks_url":"https://api.github.com/repos/Norgg/rubynomic/hooks","issue_events_url":"https://api.github.com/repos/Norgg/rubynomic/issues/events{/number}","events_url":"https://api.github.com/repos/Norgg/rubynomic/events","assignees_url":"https://api.github.com/repos/Norgg/rubynomic/assignees{/user}","branches_url":"https://api.github.com/repos/Norgg/rubynomic/branches{/branch}","tags_url":"https://api.github.com/repos/Norgg/rubynomic/tags","blobs_url":"https://api.github.com/repos/Norgg/rubynomic/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Norgg/rubynomic/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Norgg/rubynomic/git/refs{/sha}","trees_url":"https://api.github.com/repos/Norgg/rubynomic/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Norgg/rubynomic/statuses/{sha}","languages_url":"https://api.github.com/repos/Norgg/rubynomic/languages","stargazers_url":"https://api.github.com/repos/Norgg/rubynomic/stargazers","contributors_url":"https://api.github.com/repos/Norgg/rubynomic/contributors","subscribers_url":"https://api.github.com/repos/Norgg/rubynomic/subscribers","subscription_url":"https://api.github.com/repos/Norgg/rubynomic/subscription","commits_url":"https://api.github.com/repos/Norgg/rubynomic/commits{/sha}","git_commits_url":"https://api.github.com/repos/Norgg/rubynomic/git/commits{/sha}","comments_url":"https://api.github.com/repos/Norgg/rubynomic/comments{/number}","issue_comment_url":"https://api.github.com/repos/Norgg/rubynomic/issues/comments/{number}","contents_url":"https://api.github.com/repos/Norgg/rubynomic/contents/{+path}","compare_url":"https://api.github.com/repos/Norgg/rubynomic/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Norgg/rubynomic/merges","archive_url":"https://api.github.com/repos/Norgg/rubynomic/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Norgg/rubynomic/downloads","issues_url":"https://api.github.com/repos/Norgg/rubynomic/issues{/number}","pulls_url":"https://api.github.com/repos/Norgg/rubynomic/pulls{/number}","milestones_url":"https://api.github.com/repos/Norgg/rubynomic/milestones{/number}","notifications_url":"https://api.github.com/repos/Norgg/rubynomic/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Norgg/rubynomic/labels{/name}"},{"id":1436,"name":"depth-charge","full_name":"bscofield/depth-charge","owner":{"login":"bscofield","id":433,"avatar_url":"https://1.gravatar.com/avatar/01604be00b0c8371437cbc2b96265b9b?d=https%3A%2F%2Fidenticons.github.com%2F019d385eb67632a7e958e23f24bd07d7.png","gravatar_id":"01604be00b0c8371437cbc2b96265b9b","url":"https://api.github.com/users/bscofield","html_url":"https://github.com/bscofield","followers_url":"https://api.github.com/users/bscofield/followers","following_url":"https://api.github.com/users/bscofield/following{/other_user}","gists_url":"https://api.github.com/users/bscofield/gists{/gist_id}","starred_url":"https://api.github.com/users/bscofield/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bscofield/subscriptions","organizations_url":"https://api.github.com/users/bscofield/orgs","repos_url":"https://api.github.com/users/bscofield/repos","events_url":"https://api.github.com/users/bscofield/events{/privacy}","received_events_url":"https://api.github.com/users/bscofield/received_events","type":"User"},"private":false,"html_url":"https://github.com/bscofield/depth-charge","description":"A quick and dirty dependency finder for your Ruby projects","fork":false,"url":"https://api.github.com/repos/bscofield/depth-charge","forks_url":"https://api.github.com/repos/bscofield/depth-charge/forks","keys_url":"https://api.github.com/repos/bscofield/depth-charge/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bscofield/depth-charge/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bscofield/depth-charge/teams","hooks_url":"https://api.github.com/repos/bscofield/depth-charge/hooks","issue_events_url":"https://api.github.com/repos/bscofield/depth-charge/issues/events{/number}","events_url":"https://api.github.com/repos/bscofield/depth-charge/events","assignees_url":"https://api.github.com/repos/bscofield/depth-charge/assignees{/user}","branches_url":"https://api.github.com/repos/bscofield/depth-charge/branches{/branch}","tags_url":"https://api.github.com/repos/bscofield/depth-charge/tags","blobs_url":"https://api.github.com/repos/bscofield/depth-charge/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bscofield/depth-charge/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bscofield/depth-charge/git/refs{/sha}","trees_url":"https://api.github.com/repos/bscofield/depth-charge/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bscofield/depth-charge/statuses/{sha}","languages_url":"https://api.github.com/repos/bscofield/depth-charge/languages","stargazers_url":"https://api.github.com/repos/bscofield/depth-charge/stargazers","contributors_url":"https://api.github.com/repos/bscofield/depth-charge/contributors","subscribers_url":"https://api.github.com/repos/bscofield/depth-charge/subscribers","subscription_url":"https://api.github.com/repos/bscofield/depth-charge/subscription","commits_url":"https://api.github.com/repos/bscofield/depth-charge/commits{/sha}","git_commits_url":"https://api.github.com/repos/bscofield/depth-charge/git/commits{/sha}","comments_url":"https://api.github.com/repos/bscofield/depth-charge/comments{/number}","issue_comment_url":"https://api.github.com/repos/bscofield/depth-charge/issues/comments/{number}","contents_url":"https://api.github.com/repos/bscofield/depth-charge/contents/{+path}","compare_url":"https://api.github.com/repos/bscofield/depth-charge/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bscofield/depth-charge/merges","archive_url":"https://api.github.com/repos/bscofield/depth-charge/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bscofield/depth-charge/downloads","issues_url":"https://api.github.com/repos/bscofield/depth-charge/issues{/number}","pulls_url":"https://api.github.com/repos/bscofield/depth-charge/pulls{/number}","milestones_url":"https://api.github.com/repos/bscofield/depth-charge/milestones{/number}","notifications_url":"https://api.github.com/repos/bscofield/depth-charge/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bscofield/depth-charge/labels{/name}"},{"id":1440,"name":"portfolio","full_name":"myabc/portfolio","owner":{"login":"myabc","id":755,"avatar_url":"https://0.gravatar.com/avatar/9b1a71682de14fc6fc2b944a9c4814a0?d=https%3A%2F%2Fidenticons.github.com%2Fccb0989662211f61edae2e26d58ea92f.png","gravatar_id":"9b1a71682de14fc6fc2b944a9c4814a0","url":"https://api.github.com/users/myabc","html_url":"https://github.com/myabc","followers_url":"https://api.github.com/users/myabc/followers","following_url":"https://api.github.com/users/myabc/following{/other_user}","gists_url":"https://api.github.com/users/myabc/gists{/gist_id}","starred_url":"https://api.github.com/users/myabc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/myabc/subscriptions","organizations_url":"https://api.github.com/users/myabc/orgs","repos_url":"https://api.github.com/users/myabc/repos","events_url":"https://api.github.com/users/myabc/events{/privacy}","received_events_url":"https://api.github.com/users/myabc/received_events","type":"User"},"private":false,"html_url":"https://github.com/myabc/portfolio","description":"Alex Coles Portfolio","fork":false,"url":"https://api.github.com/repos/myabc/portfolio","forks_url":"https://api.github.com/repos/myabc/portfolio/forks","keys_url":"https://api.github.com/repos/myabc/portfolio/keys{/key_id}","collaborators_url":"https://api.github.com/repos/myabc/portfolio/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/myabc/portfolio/teams","hooks_url":"https://api.github.com/repos/myabc/portfolio/hooks","issue_events_url":"https://api.github.com/repos/myabc/portfolio/issues/events{/number}","events_url":"https://api.github.com/repos/myabc/portfolio/events","assignees_url":"https://api.github.com/repos/myabc/portfolio/assignees{/user}","branches_url":"https://api.github.com/repos/myabc/portfolio/branches{/branch}","tags_url":"https://api.github.com/repos/myabc/portfolio/tags","blobs_url":"https://api.github.com/repos/myabc/portfolio/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/myabc/portfolio/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/myabc/portfolio/git/refs{/sha}","trees_url":"https://api.github.com/repos/myabc/portfolio/git/trees{/sha}","statuses_url":"https://api.github.com/repos/myabc/portfolio/statuses/{sha}","languages_url":"https://api.github.com/repos/myabc/portfolio/languages","stargazers_url":"https://api.github.com/repos/myabc/portfolio/stargazers","contributors_url":"https://api.github.com/repos/myabc/portfolio/contributors","subscribers_url":"https://api.github.com/repos/myabc/portfolio/subscribers","subscription_url":"https://api.github.com/repos/myabc/portfolio/subscription","commits_url":"https://api.github.com/repos/myabc/portfolio/commits{/sha}","git_commits_url":"https://api.github.com/repos/myabc/portfolio/git/commits{/sha}","comments_url":"https://api.github.com/repos/myabc/portfolio/comments{/number}","issue_comment_url":"https://api.github.com/repos/myabc/portfolio/issues/comments/{number}","contents_url":"https://api.github.com/repos/myabc/portfolio/contents/{+path}","compare_url":"https://api.github.com/repos/myabc/portfolio/compare/{base}...{head}","merges_url":"https://api.github.com/repos/myabc/portfolio/merges","archive_url":"https://api.github.com/repos/myabc/portfolio/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/myabc/portfolio/downloads","issues_url":"https://api.github.com/repos/myabc/portfolio/issues{/number}","pulls_url":"https://api.github.com/repos/myabc/portfolio/pulls{/number}","milestones_url":"https://api.github.com/repos/myabc/portfolio/milestones{/number}","notifications_url":"https://api.github.com/repos/myabc/portfolio/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/myabc/portfolio/labels{/name}"},{"id":1441,"name":"clickatell","full_name":"lukeredpath/clickatell","owner":{"login":"lukeredpath","id":613,"avatar_url":"https://0.gravatar.com/avatar/bdd4d23d1a822b2d68b53e7c51d69a39?d=https%3A%2F%2Fidenticons.github.com%2Ff29c21d4897f78948b91f03172341b7b.png","gravatar_id":"bdd4d23d1a822b2d68b53e7c51d69a39","url":"https://api.github.com/users/lukeredpath","html_url":"https://github.com/lukeredpath","followers_url":"https://api.github.com/users/lukeredpath/followers","following_url":"https://api.github.com/users/lukeredpath/following{/other_user}","gists_url":"https://api.github.com/users/lukeredpath/gists{/gist_id}","starred_url":"https://api.github.com/users/lukeredpath/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/lukeredpath/subscriptions","organizations_url":"https://api.github.com/users/lukeredpath/orgs","repos_url":"https://api.github.com/users/lukeredpath/repos","events_url":"https://api.github.com/users/lukeredpath/events{/privacy}","received_events_url":"https://api.github.com/users/lukeredpath/received_events","type":"User"},"private":false,"html_url":"https://github.com/lukeredpath/clickatell","description":"NO LONGER SUPPORTED - Ruby interface to the Clickatell SMS Gateway API","fork":false,"url":"https://api.github.com/repos/lukeredpath/clickatell","forks_url":"https://api.github.com/repos/lukeredpath/clickatell/forks","keys_url":"https://api.github.com/repos/lukeredpath/clickatell/keys{/key_id}","collaborators_url":"https://api.github.com/repos/lukeredpath/clickatell/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/lukeredpath/clickatell/teams","hooks_url":"https://api.github.com/repos/lukeredpath/clickatell/hooks","issue_events_url":"https://api.github.com/repos/lukeredpath/clickatell/issues/events{/number}","events_url":"https://api.github.com/repos/lukeredpath/clickatell/events","assignees_url":"https://api.github.com/repos/lukeredpath/clickatell/assignees{/user}","branches_url":"https://api.github.com/repos/lukeredpath/clickatell/branches{/branch}","tags_url":"https://api.github.com/repos/lukeredpath/clickatell/tags","blobs_url":"https://api.github.com/repos/lukeredpath/clickatell/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/lukeredpath/clickatell/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/lukeredpath/clickatell/git/refs{/sha}","trees_url":"https://api.github.com/repos/lukeredpath/clickatell/git/trees{/sha}","statuses_url":"https://api.github.com/repos/lukeredpath/clickatell/statuses/{sha}","languages_url":"https://api.github.com/repos/lukeredpath/clickatell/languages","stargazers_url":"https://api.github.com/repos/lukeredpath/clickatell/stargazers","contributors_url":"https://api.github.com/repos/lukeredpath/clickatell/contributors","subscribers_url":"https://api.github.com/repos/lukeredpath/clickatell/subscribers","subscription_url":"https://api.github.com/repos/lukeredpath/clickatell/subscription","commits_url":"https://api.github.com/repos/lukeredpath/clickatell/commits{/sha}","git_commits_url":"https://api.github.com/repos/lukeredpath/clickatell/git/commits{/sha}","comments_url":"https://api.github.com/repos/lukeredpath/clickatell/comments{/number}","issue_comment_url":"https://api.github.com/repos/lukeredpath/clickatell/issues/comments/{number}","contents_url":"https://api.github.com/repos/lukeredpath/clickatell/contents/{+path}","compare_url":"https://api.github.com/repos/lukeredpath/clickatell/compare/{base}...{head}","merges_url":"https://api.github.com/repos/lukeredpath/clickatell/merges","archive_url":"https://api.github.com/repos/lukeredpath/clickatell/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/lukeredpath/clickatell/downloads","issues_url":"https://api.github.com/repos/lukeredpath/clickatell/issues{/number}","pulls_url":"https://api.github.com/repos/lukeredpath/clickatell/pulls{/number}","milestones_url":"https://api.github.com/repos/lukeredpath/clickatell/milestones{/number}","notifications_url":"https://api.github.com/repos/lukeredpath/clickatell/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/lukeredpath/clickatell/labels{/name}"},{"id":1444,"name":"do_notation","full_name":"aanand/do_notation","owner":{"login":"aanand","id":1062,"avatar_url":"https://2.gravatar.com/avatar/73022df4be6fcced9792f50497b4f119?d=https%3A%2F%2Fidenticons.github.com%2Fcd89fef7ffdd490db800357f47722b20.png","gravatar_id":"73022df4be6fcced9792f50497b4f119","url":"https://api.github.com/users/aanand","html_url":"https://github.com/aanand","followers_url":"https://api.github.com/users/aanand/followers","following_url":"https://api.github.com/users/aanand/following{/other_user}","gists_url":"https://api.github.com/users/aanand/gists{/gist_id}","starred_url":"https://api.github.com/users/aanand/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/aanand/subscriptions","organizations_url":"https://api.github.com/users/aanand/orgs","repos_url":"https://api.github.com/users/aanand/repos","events_url":"https://api.github.com/users/aanand/events{/privacy}","received_events_url":"https://api.github.com/users/aanand/received_events","type":"User"},"private":false,"html_url":"https://github.com/aanand/do_notation","description":"Haskell-style monad do-notation for Ruby","fork":false,"url":"https://api.github.com/repos/aanand/do_notation","forks_url":"https://api.github.com/repos/aanand/do_notation/forks","keys_url":"https://api.github.com/repos/aanand/do_notation/keys{/key_id}","collaborators_url":"https://api.github.com/repos/aanand/do_notation/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/aanand/do_notation/teams","hooks_url":"https://api.github.com/repos/aanand/do_notation/hooks","issue_events_url":"https://api.github.com/repos/aanand/do_notation/issues/events{/number}","events_url":"https://api.github.com/repos/aanand/do_notation/events","assignees_url":"https://api.github.com/repos/aanand/do_notation/assignees{/user}","branches_url":"https://api.github.com/repos/aanand/do_notation/branches{/branch}","tags_url":"https://api.github.com/repos/aanand/do_notation/tags","blobs_url":"https://api.github.com/repos/aanand/do_notation/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/aanand/do_notation/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/aanand/do_notation/git/refs{/sha}","trees_url":"https://api.github.com/repos/aanand/do_notation/git/trees{/sha}","statuses_url":"https://api.github.com/repos/aanand/do_notation/statuses/{sha}","languages_url":"https://api.github.com/repos/aanand/do_notation/languages","stargazers_url":"https://api.github.com/repos/aanand/do_notation/stargazers","contributors_url":"https://api.github.com/repos/aanand/do_notation/contributors","subscribers_url":"https://api.github.com/repos/aanand/do_notation/subscribers","subscription_url":"https://api.github.com/repos/aanand/do_notation/subscription","commits_url":"https://api.github.com/repos/aanand/do_notation/commits{/sha}","git_commits_url":"https://api.github.com/repos/aanand/do_notation/git/commits{/sha}","comments_url":"https://api.github.com/repos/aanand/do_notation/comments{/number}","issue_comment_url":"https://api.github.com/repos/aanand/do_notation/issues/comments/{number}","contents_url":"https://api.github.com/repos/aanand/do_notation/contents/{+path}","compare_url":"https://api.github.com/repos/aanand/do_notation/compare/{base}...{head}","merges_url":"https://api.github.com/repos/aanand/do_notation/merges","archive_url":"https://api.github.com/repos/aanand/do_notation/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/aanand/do_notation/downloads","issues_url":"https://api.github.com/repos/aanand/do_notation/issues{/number}","pulls_url":"https://api.github.com/repos/aanand/do_notation/pulls{/number}","milestones_url":"https://api.github.com/repos/aanand/do_notation/milestones{/number}","notifications_url":"https://api.github.com/repos/aanand/do_notation/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/aanand/do_notation/labels{/name}"},{"id":1453,"name":"pictrails","full_name":"shingara/pictrails","owner":{"login":"shingara","id":1088,"avatar_url":"https://0.gravatar.com/avatar/2fd0206c71a1b22a9cc6293f38537461?d=https%3A%2F%2Fidenticons.github.com%2Fb1563a78ec59337587f6ab6397699afc.png","gravatar_id":"2fd0206c71a1b22a9cc6293f38537461","url":"https://api.github.com/users/shingara","html_url":"https://github.com/shingara","followers_url":"https://api.github.com/users/shingara/followers","following_url":"https://api.github.com/users/shingara/following{/other_user}","gists_url":"https://api.github.com/users/shingara/gists{/gist_id}","starred_url":"https://api.github.com/users/shingara/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/shingara/subscriptions","organizations_url":"https://api.github.com/users/shingara/orgs","repos_url":"https://api.github.com/users/shingara/repos","events_url":"https://api.github.com/users/shingara/events{/privacy}","received_events_url":"https://api.github.com/users/shingara/received_events","type":"User"},"private":false,"html_url":"https://github.com/shingara/pictrails","description":"A Web Photo Gallery, written with Rails 2.0. Pictrails can manage several photo galleries.","fork":false,"url":"https://api.github.com/repos/shingara/pictrails","forks_url":"https://api.github.com/repos/shingara/pictrails/forks","keys_url":"https://api.github.com/repos/shingara/pictrails/keys{/key_id}","collaborators_url":"https://api.github.com/repos/shingara/pictrails/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/shingara/pictrails/teams","hooks_url":"https://api.github.com/repos/shingara/pictrails/hooks","issue_events_url":"https://api.github.com/repos/shingara/pictrails/issues/events{/number}","events_url":"https://api.github.com/repos/shingara/pictrails/events","assignees_url":"https://api.github.com/repos/shingara/pictrails/assignees{/user}","branches_url":"https://api.github.com/repos/shingara/pictrails/branches{/branch}","tags_url":"https://api.github.com/repos/shingara/pictrails/tags","blobs_url":"https://api.github.com/repos/shingara/pictrails/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/shingara/pictrails/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/shingara/pictrails/git/refs{/sha}","trees_url":"https://api.github.com/repos/shingara/pictrails/git/trees{/sha}","statuses_url":"https://api.github.com/repos/shingara/pictrails/statuses/{sha}","languages_url":"https://api.github.com/repos/shingara/pictrails/languages","stargazers_url":"https://api.github.com/repos/shingara/pictrails/stargazers","contributors_url":"https://api.github.com/repos/shingara/pictrails/contributors","subscribers_url":"https://api.github.com/repos/shingara/pictrails/subscribers","subscription_url":"https://api.github.com/repos/shingara/pictrails/subscription","commits_url":"https://api.github.com/repos/shingara/pictrails/commits{/sha}","git_commits_url":"https://api.github.com/repos/shingara/pictrails/git/commits{/sha}","comments_url":"https://api.github.com/repos/shingara/pictrails/comments{/number}","issue_comment_url":"https://api.github.com/repos/shingara/pictrails/issues/comments/{number}","contents_url":"https://api.github.com/repos/shingara/pictrails/contents/{+path}","compare_url":"https://api.github.com/repos/shingara/pictrails/compare/{base}...{head}","merges_url":"https://api.github.com/repos/shingara/pictrails/merges","archive_url":"https://api.github.com/repos/shingara/pictrails/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/shingara/pictrails/downloads","issues_url":"https://api.github.com/repos/shingara/pictrails/issues{/number}","pulls_url":"https://api.github.com/repos/shingara/pictrails/pulls{/number}","milestones_url":"https://api.github.com/repos/shingara/pictrails/milestones{/number}","notifications_url":"https://api.github.com/repos/shingara/pictrails/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/shingara/pictrails/labels{/name}"},{"id":1462,"name":"annotate_models","full_name":"ctran/annotate_models","owner":{"login":"ctran","id":491,"avatar_url":"https://1.gravatar.com/avatar/accad816054fc1b2fa7dae2a2fce5266?d=https%3A%2F%2Fidenticons.github.com%2F559cb990c9dffd8675f6bc2186971dc2.png","gravatar_id":"accad816054fc1b2fa7dae2a2fce5266","url":"https://api.github.com/users/ctran","html_url":"https://github.com/ctran","followers_url":"https://api.github.com/users/ctran/followers","following_url":"https://api.github.com/users/ctran/following{/other_user}","gists_url":"https://api.github.com/users/ctran/gists{/gist_id}","starred_url":"https://api.github.com/users/ctran/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ctran/subscriptions","organizations_url":"https://api.github.com/users/ctran/orgs","repos_url":"https://api.github.com/users/ctran/repos","events_url":"https://api.github.com/users/ctran/events{/privacy}","received_events_url":"https://api.github.com/users/ctran/received_events","type":"User"},"private":false,"html_url":"https://github.com/ctran/annotate_models","description":"Annotate ActiveRecord models as a gem","fork":false,"url":"https://api.github.com/repos/ctran/annotate_models","forks_url":"https://api.github.com/repos/ctran/annotate_models/forks","keys_url":"https://api.github.com/repos/ctran/annotate_models/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ctran/annotate_models/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ctran/annotate_models/teams","hooks_url":"https://api.github.com/repos/ctran/annotate_models/hooks","issue_events_url":"https://api.github.com/repos/ctran/annotate_models/issues/events{/number}","events_url":"https://api.github.com/repos/ctran/annotate_models/events","assignees_url":"https://api.github.com/repos/ctran/annotate_models/assignees{/user}","branches_url":"https://api.github.com/repos/ctran/annotate_models/branches{/branch}","tags_url":"https://api.github.com/repos/ctran/annotate_models/tags","blobs_url":"https://api.github.com/repos/ctran/annotate_models/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ctran/annotate_models/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ctran/annotate_models/git/refs{/sha}","trees_url":"https://api.github.com/repos/ctran/annotate_models/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ctran/annotate_models/statuses/{sha}","languages_url":"https://api.github.com/repos/ctran/annotate_models/languages","stargazers_url":"https://api.github.com/repos/ctran/annotate_models/stargazers","contributors_url":"https://api.github.com/repos/ctran/annotate_models/contributors","subscribers_url":"https://api.github.com/repos/ctran/annotate_models/subscribers","subscription_url":"https://api.github.com/repos/ctran/annotate_models/subscription","commits_url":"https://api.github.com/repos/ctran/annotate_models/commits{/sha}","git_commits_url":"https://api.github.com/repos/ctran/annotate_models/git/commits{/sha}","comments_url":"https://api.github.com/repos/ctran/annotate_models/comments{/number}","issue_comment_url":"https://api.github.com/repos/ctran/annotate_models/issues/comments/{number}","contents_url":"https://api.github.com/repos/ctran/annotate_models/contents/{+path}","compare_url":"https://api.github.com/repos/ctran/annotate_models/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ctran/annotate_models/merges","archive_url":"https://api.github.com/repos/ctran/annotate_models/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ctran/annotate_models/downloads","issues_url":"https://api.github.com/repos/ctran/annotate_models/issues{/number}","pulls_url":"https://api.github.com/repos/ctran/annotate_models/pulls{/number}","milestones_url":"https://api.github.com/repos/ctran/annotate_models/milestones{/number}","notifications_url":"https://api.github.com/repos/ctran/annotate_models/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ctran/annotate_models/labels{/name}"},{"id":1469,"name":"blueprint_layout","full_name":"alce/blueprint_layout","owner":{"login":"alce","id":1133,"avatar_url":"https://1.gravatar.com/avatar/b404a438e7106c61e31fa6ebcc089a5f?d=https%3A%2F%2Fidenticons.github.com%2Ffd06b8ea02fe5b1c2496fe1700e9d16c.png","gravatar_id":"b404a438e7106c61e31fa6ebcc089a5f","url":"https://api.github.com/users/alce","html_url":"https://github.com/alce","followers_url":"https://api.github.com/users/alce/followers","following_url":"https://api.github.com/users/alce/following{/other_user}","gists_url":"https://api.github.com/users/alce/gists{/gist_id}","starred_url":"https://api.github.com/users/alce/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alce/subscriptions","organizations_url":"https://api.github.com/users/alce/orgs","repos_url":"https://api.github.com/users/alce/repos","events_url":"https://api.github.com/users/alce/events{/privacy}","received_events_url":"https://api.github.com/users/alce/received_events","type":"User"},"private":false,"html_url":"https://github.com/alce/blueprint_layout","description":"Create ","fork":false,"url":"https://api.github.com/repos/alce/blueprint_layout","forks_url":"https://api.github.com/repos/alce/blueprint_layout/forks","keys_url":"https://api.github.com/repos/alce/blueprint_layout/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alce/blueprint_layout/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alce/blueprint_layout/teams","hooks_url":"https://api.github.com/repos/alce/blueprint_layout/hooks","issue_events_url":"https://api.github.com/repos/alce/blueprint_layout/issues/events{/number}","events_url":"https://api.github.com/repos/alce/blueprint_layout/events","assignees_url":"https://api.github.com/repos/alce/blueprint_layout/assignees{/user}","branches_url":"https://api.github.com/repos/alce/blueprint_layout/branches{/branch}","tags_url":"https://api.github.com/repos/alce/blueprint_layout/tags","blobs_url":"https://api.github.com/repos/alce/blueprint_layout/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alce/blueprint_layout/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alce/blueprint_layout/git/refs{/sha}","trees_url":"https://api.github.com/repos/alce/blueprint_layout/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alce/blueprint_layout/statuses/{sha}","languages_url":"https://api.github.com/repos/alce/blueprint_layout/languages","stargazers_url":"https://api.github.com/repos/alce/blueprint_layout/stargazers","contributors_url":"https://api.github.com/repos/alce/blueprint_layout/contributors","subscribers_url":"https://api.github.com/repos/alce/blueprint_layout/subscribers","subscription_url":"https://api.github.com/repos/alce/blueprint_layout/subscription","commits_url":"https://api.github.com/repos/alce/blueprint_layout/commits{/sha}","git_commits_url":"https://api.github.com/repos/alce/blueprint_layout/git/commits{/sha}","comments_url":"https://api.github.com/repos/alce/blueprint_layout/comments{/number}","issue_comment_url":"https://api.github.com/repos/alce/blueprint_layout/issues/comments/{number}","contents_url":"https://api.github.com/repos/alce/blueprint_layout/contents/{+path}","compare_url":"https://api.github.com/repos/alce/blueprint_layout/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alce/blueprint_layout/merges","archive_url":"https://api.github.com/repos/alce/blueprint_layout/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alce/blueprint_layout/downloads","issues_url":"https://api.github.com/repos/alce/blueprint_layout/issues{/number}","pulls_url":"https://api.github.com/repos/alce/blueprint_layout/pulls{/number}","milestones_url":"https://api.github.com/repos/alce/blueprint_layout/milestones{/number}","notifications_url":"https://api.github.com/repos/alce/blueprint_layout/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alce/blueprint_layout/labels{/name}"},{"id":1479,"name":"wp_theme_victoria","full_name":"enhiro/wp_theme_victoria","owner":{"login":"enhiro","id":1098,"avatar_url":"https://1.gravatar.com/avatar/1e62788b9ca14d8456b17deaf97f048f?d=https%3A%2F%2Fidenticons.github.com%2Fa5e0ff62be0b08456fc7f1e88812af3d.png","gravatar_id":"1e62788b9ca14d8456b17deaf97f048f","url":"https://api.github.com/users/enhiro","html_url":"https://github.com/enhiro","followers_url":"https://api.github.com/users/enhiro/followers","following_url":"https://api.github.com/users/enhiro/following{/other_user}","gists_url":"https://api.github.com/users/enhiro/gists{/gist_id}","starred_url":"https://api.github.com/users/enhiro/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/enhiro/subscriptions","organizations_url":"https://api.github.com/users/enhiro/orgs","repos_url":"https://api.github.com/users/enhiro/repos","events_url":"https://api.github.com/users/enhiro/events{/privacy}","received_events_url":"https://api.github.com/users/enhiro/received_events","type":"User"},"private":false,"html_url":"https://github.com/enhiro/wp_theme_victoria","description":"Tema para wordpress","fork":false,"url":"https://api.github.com/repos/enhiro/wp_theme_victoria","forks_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/forks","keys_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/keys{/key_id}","collaborators_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/teams","hooks_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/hooks","issue_events_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/issues/events{/number}","events_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/events","assignees_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/assignees{/user}","branches_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/branches{/branch}","tags_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/tags","blobs_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/refs{/sha}","trees_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/trees{/sha}","statuses_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/statuses/{sha}","languages_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/languages","stargazers_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/stargazers","contributors_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/contributors","subscribers_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/subscribers","subscription_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/subscription","commits_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/commits{/sha}","git_commits_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/git/commits{/sha}","comments_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/comments{/number}","issue_comment_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/issues/comments/{number}","contents_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/contents/{+path}","compare_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/compare/{base}...{head}","merges_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/merges","archive_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/downloads","issues_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/issues{/number}","pulls_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/pulls{/number}","milestones_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/milestones{/number}","notifications_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/enhiro/wp_theme_victoria/labels{/name}"},{"id":1482,"name":"cosmo","full_name":"travis/cosmo","owner":{"login":"travis","id":1113,"avatar_url":"https://0.gravatar.com/avatar/1ec6df8a238d0088e58865391c9b5c7f?d=https%3A%2F%2Fidenticons.github.com%2F9c3b1830513cc3b8fc4b76635d32e692.png","gravatar_id":"1ec6df8a238d0088e58865391c9b5c7f","url":"https://api.github.com/users/travis","html_url":"https://github.com/travis","followers_url":"https://api.github.com/users/travis/followers","following_url":"https://api.github.com/users/travis/following{/other_user}","gists_url":"https://api.github.com/users/travis/gists{/gist_id}","starred_url":"https://api.github.com/users/travis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/travis/subscriptions","organizations_url":"https://api.github.com/users/travis/orgs","repos_url":"https://api.github.com/users/travis/repos","events_url":"https://api.github.com/users/travis/events{/privacy}","received_events_url":"https://api.github.com/users/travis/received_events","type":"User"},"private":false,"html_url":"https://github.com/travis/cosmo","description":"Travis Vachon's clone of the Cosmo Subversion tree","fork":false,"url":"https://api.github.com/repos/travis/cosmo","forks_url":"https://api.github.com/repos/travis/cosmo/forks","keys_url":"https://api.github.com/repos/travis/cosmo/keys{/key_id}","collaborators_url":"https://api.github.com/repos/travis/cosmo/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/travis/cosmo/teams","hooks_url":"https://api.github.com/repos/travis/cosmo/hooks","issue_events_url":"https://api.github.com/repos/travis/cosmo/issues/events{/number}","events_url":"https://api.github.com/repos/travis/cosmo/events","assignees_url":"https://api.github.com/repos/travis/cosmo/assignees{/user}","branches_url":"https://api.github.com/repos/travis/cosmo/branches{/branch}","tags_url":"https://api.github.com/repos/travis/cosmo/tags","blobs_url":"https://api.github.com/repos/travis/cosmo/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/travis/cosmo/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/travis/cosmo/git/refs{/sha}","trees_url":"https://api.github.com/repos/travis/cosmo/git/trees{/sha}","statuses_url":"https://api.github.com/repos/travis/cosmo/statuses/{sha}","languages_url":"https://api.github.com/repos/travis/cosmo/languages","stargazers_url":"https://api.github.com/repos/travis/cosmo/stargazers","contributors_url":"https://api.github.com/repos/travis/cosmo/contributors","subscribers_url":"https://api.github.com/repos/travis/cosmo/subscribers","subscription_url":"https://api.github.com/repos/travis/cosmo/subscription","commits_url":"https://api.github.com/repos/travis/cosmo/commits{/sha}","git_commits_url":"https://api.github.com/repos/travis/cosmo/git/commits{/sha}","comments_url":"https://api.github.com/repos/travis/cosmo/comments{/number}","issue_comment_url":"https://api.github.com/repos/travis/cosmo/issues/comments/{number}","contents_url":"https://api.github.com/repos/travis/cosmo/contents/{+path}","compare_url":"https://api.github.com/repos/travis/cosmo/compare/{base}...{head}","merges_url":"https://api.github.com/repos/travis/cosmo/merges","archive_url":"https://api.github.com/repos/travis/cosmo/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/travis/cosmo/downloads","issues_url":"https://api.github.com/repos/travis/cosmo/issues{/number}","pulls_url":"https://api.github.com/repos/travis/cosmo/pulls{/number}","milestones_url":"https://api.github.com/repos/travis/cosmo/milestones{/number}","notifications_url":"https://api.github.com/repos/travis/cosmo/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/travis/cosmo/labels{/name}"},{"id":1490,"name":"fogbugz-svnhook","full_name":"francois/fogbugz-svnhook","owner":{"login":"francois","id":247,"avatar_url":"https://0.gravatar.com/avatar/7da32f740e64088d2b07c277f3c1b94b?d=https%3A%2F%2Fidenticons.github.com%2F3cec07e9ba5f5bb252d13f5f431e4bbb.png","gravatar_id":"7da32f740e64088d2b07c277f3c1b94b","url":"https://api.github.com/users/francois","html_url":"https://github.com/francois","followers_url":"https://api.github.com/users/francois/followers","following_url":"https://api.github.com/users/francois/following{/other_user}","gists_url":"https://api.github.com/users/francois/gists{/gist_id}","starred_url":"https://api.github.com/users/francois/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/francois/subscriptions","organizations_url":"https://api.github.com/users/francois/orgs","repos_url":"https://api.github.com/users/francois/repos","events_url":"https://api.github.com/users/francois/events{/privacy}","received_events_url":"https://api.github.com/users/francois/received_events","type":"User"},"private":false,"html_url":"https://github.com/francois/fogbugz-svnhook","description":"A Subversion post-commit hook that will edit FogBugz cases using Trac-like keywords","fork":false,"url":"https://api.github.com/repos/francois/fogbugz-svnhook","forks_url":"https://api.github.com/repos/francois/fogbugz-svnhook/forks","keys_url":"https://api.github.com/repos/francois/fogbugz-svnhook/keys{/key_id}","collaborators_url":"https://api.github.com/repos/francois/fogbugz-svnhook/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/francois/fogbugz-svnhook/teams","hooks_url":"https://api.github.com/repos/francois/fogbugz-svnhook/hooks","issue_events_url":"https://api.github.com/repos/francois/fogbugz-svnhook/issues/events{/number}","events_url":"https://api.github.com/repos/francois/fogbugz-svnhook/events","assignees_url":"https://api.github.com/repos/francois/fogbugz-svnhook/assignees{/user}","branches_url":"https://api.github.com/repos/francois/fogbugz-svnhook/branches{/branch}","tags_url":"https://api.github.com/repos/francois/fogbugz-svnhook/tags","blobs_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/refs{/sha}","trees_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/trees{/sha}","statuses_url":"https://api.github.com/repos/francois/fogbugz-svnhook/statuses/{sha}","languages_url":"https://api.github.com/repos/francois/fogbugz-svnhook/languages","stargazers_url":"https://api.github.com/repos/francois/fogbugz-svnhook/stargazers","contributors_url":"https://api.github.com/repos/francois/fogbugz-svnhook/contributors","subscribers_url":"https://api.github.com/repos/francois/fogbugz-svnhook/subscribers","subscription_url":"https://api.github.com/repos/francois/fogbugz-svnhook/subscription","commits_url":"https://api.github.com/repos/francois/fogbugz-svnhook/commits{/sha}","git_commits_url":"https://api.github.com/repos/francois/fogbugz-svnhook/git/commits{/sha}","comments_url":"https://api.github.com/repos/francois/fogbugz-svnhook/comments{/number}","issue_comment_url":"https://api.github.com/repos/francois/fogbugz-svnhook/issues/comments/{number}","contents_url":"https://api.github.com/repos/francois/fogbugz-svnhook/contents/{+path}","compare_url":"https://api.github.com/repos/francois/fogbugz-svnhook/compare/{base}...{head}","merges_url":"https://api.github.com/repos/francois/fogbugz-svnhook/merges","archive_url":"https://api.github.com/repos/francois/fogbugz-svnhook/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/francois/fogbugz-svnhook/downloads","issues_url":"https://api.github.com/repos/francois/fogbugz-svnhook/issues{/number}","pulls_url":"https://api.github.com/repos/francois/fogbugz-svnhook/pulls{/number}","milestones_url":"https://api.github.com/repos/francois/fogbugz-svnhook/milestones{/number}","notifications_url":"https://api.github.com/repos/francois/fogbugz-svnhook/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/francois/fogbugz-svnhook/labels{/name}"},{"id":1494,"name":"haml","full_name":"mislav/haml","owner":{"login":"mislav","id":887,"avatar_url":"https://0.gravatar.com/avatar/8f93a872e399bc1353cc8d4e791d5401?d=https%3A%2F%2Fidenticons.github.com%2F7ce3284b743aefde80ffd9aec500e085.png","gravatar_id":"8f93a872e399bc1353cc8d4e791d5401","url":"https://api.github.com/users/mislav","html_url":"https://github.com/mislav","followers_url":"https://api.github.com/users/mislav/followers","following_url":"https://api.github.com/users/mislav/following{/other_user}","gists_url":"https://api.github.com/users/mislav/gists{/gist_id}","starred_url":"https://api.github.com/users/mislav/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mislav/subscriptions","organizations_url":"https://api.github.com/users/mislav/orgs","repos_url":"https://api.github.com/users/mislav/repos","events_url":"https://api.github.com/users/mislav/events{/privacy}","received_events_url":"https://api.github.com/users/mislav/received_events","type":"User"},"private":false,"html_url":"https://github.com/mislav/haml","description":"HTML Abstraction Markup Language - A Markup Haiku","fork":true,"url":"https://api.github.com/repos/mislav/haml","forks_url":"https://api.github.com/repos/mislav/haml/forks","keys_url":"https://api.github.com/repos/mislav/haml/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mislav/haml/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mislav/haml/teams","hooks_url":"https://api.github.com/repos/mislav/haml/hooks","issue_events_url":"https://api.github.com/repos/mislav/haml/issues/events{/number}","events_url":"https://api.github.com/repos/mislav/haml/events","assignees_url":"https://api.github.com/repos/mislav/haml/assignees{/user}","branches_url":"https://api.github.com/repos/mislav/haml/branches{/branch}","tags_url":"https://api.github.com/repos/mislav/haml/tags","blobs_url":"https://api.github.com/repos/mislav/haml/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mislav/haml/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mislav/haml/git/refs{/sha}","trees_url":"https://api.github.com/repos/mislav/haml/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mislav/haml/statuses/{sha}","languages_url":"https://api.github.com/repos/mislav/haml/languages","stargazers_url":"https://api.github.com/repos/mislav/haml/stargazers","contributors_url":"https://api.github.com/repos/mislav/haml/contributors","subscribers_url":"https://api.github.com/repos/mislav/haml/subscribers","subscription_url":"https://api.github.com/repos/mislav/haml/subscription","commits_url":"https://api.github.com/repos/mislav/haml/commits{/sha}","git_commits_url":"https://api.github.com/repos/mislav/haml/git/commits{/sha}","comments_url":"https://api.github.com/repos/mislav/haml/comments{/number}","issue_comment_url":"https://api.github.com/repos/mislav/haml/issues/comments/{number}","contents_url":"https://api.github.com/repos/mislav/haml/contents/{+path}","compare_url":"https://api.github.com/repos/mislav/haml/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mislav/haml/merges","archive_url":"https://api.github.com/repos/mislav/haml/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mislav/haml/downloads","issues_url":"https://api.github.com/repos/mislav/haml/issues{/number}","pulls_url":"https://api.github.com/repos/mislav/haml/pulls{/number}","milestones_url":"https://api.github.com/repos/mislav/haml/milestones{/number}","notifications_url":"https://api.github.com/repos/mislav/haml/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mislav/haml/labels{/name}"},{"id":1499,"name":"quicktest","full_name":"gregwebs/quicktest","owner":{"login":"gregwebs","id":1183,"avatar_url":"https://1.gravatar.com/avatar/bad65d3d7319025d73e065d7a29ee22a?d=https%3A%2F%2Fidenticons.github.com%2F0e095e054ee94774d6a496099eb1cf6a.png","gravatar_id":"bad65d3d7319025d73e065d7a29ee22a","url":"https://api.github.com/users/gregwebs","html_url":"https://github.com/gregwebs","followers_url":"https://api.github.com/users/gregwebs/followers","following_url":"https://api.github.com/users/gregwebs/following{/other_user}","gists_url":"https://api.github.com/users/gregwebs/gists{/gist_id}","starred_url":"https://api.github.com/users/gregwebs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/gregwebs/subscriptions","organizations_url":"https://api.github.com/users/gregwebs/orgs","repos_url":"https://api.github.com/users/gregwebs/repos","events_url":"https://api.github.com/users/gregwebs/events{/privacy}","received_events_url":"https://api.github.com/users/gregwebs/received_events","type":"User"},"private":false,"html_url":"https://github.com/gregwebs/quicktest","description":"Utility for inlining unit tests with the code under test.","fork":false,"url":"https://api.github.com/repos/gregwebs/quicktest","forks_url":"https://api.github.com/repos/gregwebs/quicktest/forks","keys_url":"https://api.github.com/repos/gregwebs/quicktest/keys{/key_id}","collaborators_url":"https://api.github.com/repos/gregwebs/quicktest/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/gregwebs/quicktest/teams","hooks_url":"https://api.github.com/repos/gregwebs/quicktest/hooks","issue_events_url":"https://api.github.com/repos/gregwebs/quicktest/issues/events{/number}","events_url":"https://api.github.com/repos/gregwebs/quicktest/events","assignees_url":"https://api.github.com/repos/gregwebs/quicktest/assignees{/user}","branches_url":"https://api.github.com/repos/gregwebs/quicktest/branches{/branch}","tags_url":"https://api.github.com/repos/gregwebs/quicktest/tags","blobs_url":"https://api.github.com/repos/gregwebs/quicktest/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/gregwebs/quicktest/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/gregwebs/quicktest/git/refs{/sha}","trees_url":"https://api.github.com/repos/gregwebs/quicktest/git/trees{/sha}","statuses_url":"https://api.github.com/repos/gregwebs/quicktest/statuses/{sha}","languages_url":"https://api.github.com/repos/gregwebs/quicktest/languages","stargazers_url":"https://api.github.com/repos/gregwebs/quicktest/stargazers","contributors_url":"https://api.github.com/repos/gregwebs/quicktest/contributors","subscribers_url":"https://api.github.com/repos/gregwebs/quicktest/subscribers","subscription_url":"https://api.github.com/repos/gregwebs/quicktest/subscription","commits_url":"https://api.github.com/repos/gregwebs/quicktest/commits{/sha}","git_commits_url":"https://api.github.com/repos/gregwebs/quicktest/git/commits{/sha}","comments_url":"https://api.github.com/repos/gregwebs/quicktest/comments{/number}","issue_comment_url":"https://api.github.com/repos/gregwebs/quicktest/issues/comments/{number}","contents_url":"https://api.github.com/repos/gregwebs/quicktest/contents/{+path}","compare_url":"https://api.github.com/repos/gregwebs/quicktest/compare/{base}...{head}","merges_url":"https://api.github.com/repos/gregwebs/quicktest/merges","archive_url":"https://api.github.com/repos/gregwebs/quicktest/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/gregwebs/quicktest/downloads","issues_url":"https://api.github.com/repos/gregwebs/quicktest/issues{/number}","pulls_url":"https://api.github.com/repos/gregwebs/quicktest/pulls{/number}","milestones_url":"https://api.github.com/repos/gregwebs/quicktest/milestones{/number}","notifications_url":"https://api.github.com/repos/gregwebs/quicktest/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/gregwebs/quicktest/labels{/name}"},{"id":1511,"name":"getfamilliarwithgit","full_name":"bcbroom/getfamilliarwithgit","owner":{"login":"bcbroom","id":1240,"avatar_url":"https://1.gravatar.com/avatar/72ddd6509156a7dd3c301b87a46c5219?d=https%3A%2F%2Fidenticons.github.com%2Fa9078e8653368c9c291ae2f8b74012e7.png","gravatar_id":"72ddd6509156a7dd3c301b87a46c5219","url":"https://api.github.com/users/bcbroom","html_url":"https://github.com/bcbroom","followers_url":"https://api.github.com/users/bcbroom/followers","following_url":"https://api.github.com/users/bcbroom/following{/other_user}","gists_url":"https://api.github.com/users/bcbroom/gists{/gist_id}","starred_url":"https://api.github.com/users/bcbroom/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bcbroom/subscriptions","organizations_url":"https://api.github.com/users/bcbroom/orgs","repos_url":"https://api.github.com/users/bcbroom/repos","events_url":"https://api.github.com/users/bcbroom/events{/privacy}","received_events_url":"https://api.github.com/users/bcbroom/received_events","type":"User"},"private":false,"html_url":"https://github.com/bcbroom/getfamilliarwithgit","description":"","fork":false,"url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit","forks_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/forks","keys_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/teams","hooks_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/hooks","issue_events_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/issues/events{/number}","events_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/events","assignees_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/assignees{/user}","branches_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/branches{/branch}","tags_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/tags","blobs_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/refs{/sha}","trees_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/statuses/{sha}","languages_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/languages","stargazers_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/stargazers","contributors_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/contributors","subscribers_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/subscribers","subscription_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/subscription","commits_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/commits{/sha}","git_commits_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/git/commits{/sha}","comments_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/comments{/number}","issue_comment_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/issues/comments/{number}","contents_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/contents/{+path}","compare_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/merges","archive_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/downloads","issues_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/issues{/number}","pulls_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/pulls{/number}","milestones_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/milestones{/number}","notifications_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bcbroom/getfamilliarwithgit/labels{/name}"},{"id":1512,"name":"stor","full_name":"qartis/stor","owner":{"login":"qartis","id":1253,"avatar_url":"https://2.gravatar.com/avatar/1b2c7498c940fe0af16e0408af8eb02c?d=https%3A%2F%2Fidenticons.github.com%2Fb495ce63ede0f4efc9eec62cb947c162.png","gravatar_id":"1b2c7498c940fe0af16e0408af8eb02c","url":"https://api.github.com/users/qartis","html_url":"https://github.com/qartis","followers_url":"https://api.github.com/users/qartis/followers","following_url":"https://api.github.com/users/qartis/following{/other_user}","gists_url":"https://api.github.com/users/qartis/gists{/gist_id}","starred_url":"https://api.github.com/users/qartis/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/qartis/subscriptions","organizations_url":"https://api.github.com/users/qartis/orgs","repos_url":"https://api.github.com/users/qartis/repos","events_url":"https://api.github.com/users/qartis/events{/privacy}","received_events_url":"https://api.github.com/users/qartis/received_events","type":"User"},"private":false,"html_url":"https://github.com/qartis/stor","description":"stor qt systray applet","fork":false,"url":"https://api.github.com/repos/qartis/stor","forks_url":"https://api.github.com/repos/qartis/stor/forks","keys_url":"https://api.github.com/repos/qartis/stor/keys{/key_id}","collaborators_url":"https://api.github.com/repos/qartis/stor/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/qartis/stor/teams","hooks_url":"https://api.github.com/repos/qartis/stor/hooks","issue_events_url":"https://api.github.com/repos/qartis/stor/issues/events{/number}","events_url":"https://api.github.com/repos/qartis/stor/events","assignees_url":"https://api.github.com/repos/qartis/stor/assignees{/user}","branches_url":"https://api.github.com/repos/qartis/stor/branches{/branch}","tags_url":"https://api.github.com/repos/qartis/stor/tags","blobs_url":"https://api.github.com/repos/qartis/stor/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/qartis/stor/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/qartis/stor/git/refs{/sha}","trees_url":"https://api.github.com/repos/qartis/stor/git/trees{/sha}","statuses_url":"https://api.github.com/repos/qartis/stor/statuses/{sha}","languages_url":"https://api.github.com/repos/qartis/stor/languages","stargazers_url":"https://api.github.com/repos/qartis/stor/stargazers","contributors_url":"https://api.github.com/repos/qartis/stor/contributors","subscribers_url":"https://api.github.com/repos/qartis/stor/subscribers","subscription_url":"https://api.github.com/repos/qartis/stor/subscription","commits_url":"https://api.github.com/repos/qartis/stor/commits{/sha}","git_commits_url":"https://api.github.com/repos/qartis/stor/git/commits{/sha}","comments_url":"https://api.github.com/repos/qartis/stor/comments{/number}","issue_comment_url":"https://api.github.com/repos/qartis/stor/issues/comments/{number}","contents_url":"https://api.github.com/repos/qartis/stor/contents/{+path}","compare_url":"https://api.github.com/repos/qartis/stor/compare/{base}...{head}","merges_url":"https://api.github.com/repos/qartis/stor/merges","archive_url":"https://api.github.com/repos/qartis/stor/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/qartis/stor/downloads","issues_url":"https://api.github.com/repos/qartis/stor/issues{/number}","pulls_url":"https://api.github.com/repos/qartis/stor/pulls{/number}","milestones_url":"https://api.github.com/repos/qartis/stor/milestones{/number}","notifications_url":"https://api.github.com/repos/qartis/stor/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/qartis/stor/labels{/name}"},{"id":1531,"name":"tonal","full_name":"bobbyrward/tonal","owner":{"login":"bobbyrward","id":1262,"avatar_url":"https://0.gravatar.com/avatar/36455d5ff84898dbba1724694fd32875?d=https%3A%2F%2Fidenticons.github.com%2Fdc4c44f624d600aa568390f1f1104aa0.png","gravatar_id":"36455d5ff84898dbba1724694fd32875","url":"https://api.github.com/users/bobbyrward","html_url":"https://github.com/bobbyrward","followers_url":"https://api.github.com/users/bobbyrward/followers","following_url":"https://api.github.com/users/bobbyrward/following{/other_user}","gists_url":"https://api.github.com/users/bobbyrward/gists{/gist_id}","starred_url":"https://api.github.com/users/bobbyrward/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bobbyrward/subscriptions","organizations_url":"https://api.github.com/users/bobbyrward/orgs","repos_url":"https://api.github.com/users/bobbyrward/repos","events_url":"https://api.github.com/users/bobbyrward/events{/privacy}","received_events_url":"https://api.github.com/users/bobbyrward/received_events","type":"User"},"private":false,"html_url":"https://github.com/bobbyrward/tonal","description":"A cross platform media player using wxPython and pyglet","fork":false,"url":"https://api.github.com/repos/bobbyrward/tonal","forks_url":"https://api.github.com/repos/bobbyrward/tonal/forks","keys_url":"https://api.github.com/repos/bobbyrward/tonal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bobbyrward/tonal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bobbyrward/tonal/teams","hooks_url":"https://api.github.com/repos/bobbyrward/tonal/hooks","issue_events_url":"https://api.github.com/repos/bobbyrward/tonal/issues/events{/number}","events_url":"https://api.github.com/repos/bobbyrward/tonal/events","assignees_url":"https://api.github.com/repos/bobbyrward/tonal/assignees{/user}","branches_url":"https://api.github.com/repos/bobbyrward/tonal/branches{/branch}","tags_url":"https://api.github.com/repos/bobbyrward/tonal/tags","blobs_url":"https://api.github.com/repos/bobbyrward/tonal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bobbyrward/tonal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bobbyrward/tonal/git/refs{/sha}","trees_url":"https://api.github.com/repos/bobbyrward/tonal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bobbyrward/tonal/statuses/{sha}","languages_url":"https://api.github.com/repos/bobbyrward/tonal/languages","stargazers_url":"https://api.github.com/repos/bobbyrward/tonal/stargazers","contributors_url":"https://api.github.com/repos/bobbyrward/tonal/contributors","subscribers_url":"https://api.github.com/repos/bobbyrward/tonal/subscribers","subscription_url":"https://api.github.com/repos/bobbyrward/tonal/subscription","commits_url":"https://api.github.com/repos/bobbyrward/tonal/commits{/sha}","git_commits_url":"https://api.github.com/repos/bobbyrward/tonal/git/commits{/sha}","comments_url":"https://api.github.com/repos/bobbyrward/tonal/comments{/number}","issue_comment_url":"https://api.github.com/repos/bobbyrward/tonal/issues/comments/{number}","contents_url":"https://api.github.com/repos/bobbyrward/tonal/contents/{+path}","compare_url":"https://api.github.com/repos/bobbyrward/tonal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bobbyrward/tonal/merges","archive_url":"https://api.github.com/repos/bobbyrward/tonal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bobbyrward/tonal/downloads","issues_url":"https://api.github.com/repos/bobbyrward/tonal/issues{/number}","pulls_url":"https://api.github.com/repos/bobbyrward/tonal/pulls{/number}","milestones_url":"https://api.github.com/repos/bobbyrward/tonal/milestones{/number}","notifications_url":"https://api.github.com/repos/bobbyrward/tonal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bobbyrward/tonal/labels{/name}"},{"id":1537,"name":"axiom","full_name":"daly/axiom","owner":{"login":"daly","id":1325,"avatar_url":"https://0.gravatar.com/avatar/b99e76fb0ce8c7c5093ffc6bde1d07c9?d=https%3A%2F%2Fidenticons.github.com%2F3546ab441e56fa333f8b44b610d95691.png","gravatar_id":"b99e76fb0ce8c7c5093ffc6bde1d07c9","url":"https://api.github.com/users/daly","html_url":"https://github.com/daly","followers_url":"https://api.github.com/users/daly/followers","following_url":"https://api.github.com/users/daly/following{/other_user}","gists_url":"https://api.github.com/users/daly/gists{/gist_id}","starred_url":"https://api.github.com/users/daly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/daly/subscriptions","organizations_url":"https://api.github.com/users/daly/orgs","repos_url":"https://api.github.com/users/daly/repos","events_url":"https://api.github.com/users/daly/events{/privacy}","received_events_url":"https://api.github.com/users/daly/received_events","type":"User"},"private":false,"html_url":"https://github.com/daly/axiom","description":"Axiom is a free, open source computer algebra system","fork":false,"url":"https://api.github.com/repos/daly/axiom","forks_url":"https://api.github.com/repos/daly/axiom/forks","keys_url":"https://api.github.com/repos/daly/axiom/keys{/key_id}","collaborators_url":"https://api.github.com/repos/daly/axiom/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/daly/axiom/teams","hooks_url":"https://api.github.com/repos/daly/axiom/hooks","issue_events_url":"https://api.github.com/repos/daly/axiom/issues/events{/number}","events_url":"https://api.github.com/repos/daly/axiom/events","assignees_url":"https://api.github.com/repos/daly/axiom/assignees{/user}","branches_url":"https://api.github.com/repos/daly/axiom/branches{/branch}","tags_url":"https://api.github.com/repos/daly/axiom/tags","blobs_url":"https://api.github.com/repos/daly/axiom/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/daly/axiom/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/daly/axiom/git/refs{/sha}","trees_url":"https://api.github.com/repos/daly/axiom/git/trees{/sha}","statuses_url":"https://api.github.com/repos/daly/axiom/statuses/{sha}","languages_url":"https://api.github.com/repos/daly/axiom/languages","stargazers_url":"https://api.github.com/repos/daly/axiom/stargazers","contributors_url":"https://api.github.com/repos/daly/axiom/contributors","subscribers_url":"https://api.github.com/repos/daly/axiom/subscribers","subscription_url":"https://api.github.com/repos/daly/axiom/subscription","commits_url":"https://api.github.com/repos/daly/axiom/commits{/sha}","git_commits_url":"https://api.github.com/repos/daly/axiom/git/commits{/sha}","comments_url":"https://api.github.com/repos/daly/axiom/comments{/number}","issue_comment_url":"https://api.github.com/repos/daly/axiom/issues/comments/{number}","contents_url":"https://api.github.com/repos/daly/axiom/contents/{+path}","compare_url":"https://api.github.com/repos/daly/axiom/compare/{base}...{head}","merges_url":"https://api.github.com/repos/daly/axiom/merges","archive_url":"https://api.github.com/repos/daly/axiom/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/daly/axiom/downloads","issues_url":"https://api.github.com/repos/daly/axiom/issues{/number}","pulls_url":"https://api.github.com/repos/daly/axiom/pulls{/number}","milestones_url":"https://api.github.com/repos/daly/axiom/milestones{/number}","notifications_url":"https://api.github.com/repos/daly/axiom/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/daly/axiom/labels{/name}"},{"id":1540,"name":"deal","full_name":"wavydavy/deal","owner":{"login":"wavydavy","id":1042,"avatar_url":"https://1.gravatar.com/avatar/771b7a3bcfb5cac42aa4de59499be72c?d=https%3A%2F%2Fidenticons.github.com%2F9ac403da7947a183884c18a67d3aa8de.png","gravatar_id":"771b7a3bcfb5cac42aa4de59499be72c","url":"https://api.github.com/users/wavydavy","html_url":"https://github.com/wavydavy","followers_url":"https://api.github.com/users/wavydavy/followers","following_url":"https://api.github.com/users/wavydavy/following{/other_user}","gists_url":"https://api.github.com/users/wavydavy/gists{/gist_id}","starred_url":"https://api.github.com/users/wavydavy/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wavydavy/subscriptions","organizations_url":"https://api.github.com/users/wavydavy/orgs","repos_url":"https://api.github.com/users/wavydavy/repos","events_url":"https://api.github.com/users/wavydavy/events{/privacy}","received_events_url":"https://api.github.com/users/wavydavy/received_events","type":"User"},"private":false,"html_url":"https://github.com/wavydavy/deal","description":"A SimPy simulation for a fully Decentralised Economic ALlocation mechansim","fork":false,"url":"https://api.github.com/repos/wavydavy/deal","forks_url":"https://api.github.com/repos/wavydavy/deal/forks","keys_url":"https://api.github.com/repos/wavydavy/deal/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wavydavy/deal/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wavydavy/deal/teams","hooks_url":"https://api.github.com/repos/wavydavy/deal/hooks","issue_events_url":"https://api.github.com/repos/wavydavy/deal/issues/events{/number}","events_url":"https://api.github.com/repos/wavydavy/deal/events","assignees_url":"https://api.github.com/repos/wavydavy/deal/assignees{/user}","branches_url":"https://api.github.com/repos/wavydavy/deal/branches{/branch}","tags_url":"https://api.github.com/repos/wavydavy/deal/tags","blobs_url":"https://api.github.com/repos/wavydavy/deal/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wavydavy/deal/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wavydavy/deal/git/refs{/sha}","trees_url":"https://api.github.com/repos/wavydavy/deal/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wavydavy/deal/statuses/{sha}","languages_url":"https://api.github.com/repos/wavydavy/deal/languages","stargazers_url":"https://api.github.com/repos/wavydavy/deal/stargazers","contributors_url":"https://api.github.com/repos/wavydavy/deal/contributors","subscribers_url":"https://api.github.com/repos/wavydavy/deal/subscribers","subscription_url":"https://api.github.com/repos/wavydavy/deal/subscription","commits_url":"https://api.github.com/repos/wavydavy/deal/commits{/sha}","git_commits_url":"https://api.github.com/repos/wavydavy/deal/git/commits{/sha}","comments_url":"https://api.github.com/repos/wavydavy/deal/comments{/number}","issue_comment_url":"https://api.github.com/repos/wavydavy/deal/issues/comments/{number}","contents_url":"https://api.github.com/repos/wavydavy/deal/contents/{+path}","compare_url":"https://api.github.com/repos/wavydavy/deal/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wavydavy/deal/merges","archive_url":"https://api.github.com/repos/wavydavy/deal/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wavydavy/deal/downloads","issues_url":"https://api.github.com/repos/wavydavy/deal/issues{/number}","pulls_url":"https://api.github.com/repos/wavydavy/deal/pulls{/number}","milestones_url":"https://api.github.com/repos/wavydavy/deal/milestones{/number}","notifications_url":"https://api.github.com/repos/wavydavy/deal/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wavydavy/deal/labels{/name}"},{"id":1549,"name":"test","full_name":"tphyahoo/test","owner":{"login":"tphyahoo","id":1337,"avatar_url":"https://1.gravatar.com/avatar/33fab7467f144391d68e0115a959ebbb?d=https%3A%2F%2Fidenticons.github.com%2Fe48e13207341b6bffb7fb1622282247b.png","gravatar_id":"33fab7467f144391d68e0115a959ebbb","url":"https://api.github.com/users/tphyahoo","html_url":"https://github.com/tphyahoo","followers_url":"https://api.github.com/users/tphyahoo/followers","following_url":"https://api.github.com/users/tphyahoo/following{/other_user}","gists_url":"https://api.github.com/users/tphyahoo/gists{/gist_id}","starred_url":"https://api.github.com/users/tphyahoo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/tphyahoo/subscriptions","organizations_url":"https://api.github.com/users/tphyahoo/orgs","repos_url":"https://api.github.com/users/tphyahoo/repos","events_url":"https://api.github.com/users/tphyahoo/events{/privacy}","received_events_url":"https://api.github.com/users/tphyahoo/received_events","type":"User"},"private":false,"html_url":"https://github.com/tphyahoo/test","description":"test","fork":false,"url":"https://api.github.com/repos/tphyahoo/test","forks_url":"https://api.github.com/repos/tphyahoo/test/forks","keys_url":"https://api.github.com/repos/tphyahoo/test/keys{/key_id}","collaborators_url":"https://api.github.com/repos/tphyahoo/test/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/tphyahoo/test/teams","hooks_url":"https://api.github.com/repos/tphyahoo/test/hooks","issue_events_url":"https://api.github.com/repos/tphyahoo/test/issues/events{/number}","events_url":"https://api.github.com/repos/tphyahoo/test/events","assignees_url":"https://api.github.com/repos/tphyahoo/test/assignees{/user}","branches_url":"https://api.github.com/repos/tphyahoo/test/branches{/branch}","tags_url":"https://api.github.com/repos/tphyahoo/test/tags","blobs_url":"https://api.github.com/repos/tphyahoo/test/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/tphyahoo/test/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/tphyahoo/test/git/refs{/sha}","trees_url":"https://api.github.com/repos/tphyahoo/test/git/trees{/sha}","statuses_url":"https://api.github.com/repos/tphyahoo/test/statuses/{sha}","languages_url":"https://api.github.com/repos/tphyahoo/test/languages","stargazers_url":"https://api.github.com/repos/tphyahoo/test/stargazers","contributors_url":"https://api.github.com/repos/tphyahoo/test/contributors","subscribers_url":"https://api.github.com/repos/tphyahoo/test/subscribers","subscription_url":"https://api.github.com/repos/tphyahoo/test/subscription","commits_url":"https://api.github.com/repos/tphyahoo/test/commits{/sha}","git_commits_url":"https://api.github.com/repos/tphyahoo/test/git/commits{/sha}","comments_url":"https://api.github.com/repos/tphyahoo/test/comments{/number}","issue_comment_url":"https://api.github.com/repos/tphyahoo/test/issues/comments/{number}","contents_url":"https://api.github.com/repos/tphyahoo/test/contents/{+path}","compare_url":"https://api.github.com/repos/tphyahoo/test/compare/{base}...{head}","merges_url":"https://api.github.com/repos/tphyahoo/test/merges","archive_url":"https://api.github.com/repos/tphyahoo/test/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/tphyahoo/test/downloads","issues_url":"https://api.github.com/repos/tphyahoo/test/issues{/number}","pulls_url":"https://api.github.com/repos/tphyahoo/test/pulls{/number}","milestones_url":"https://api.github.com/repos/tphyahoo/test/milestones{/number}","notifications_url":"https://api.github.com/repos/tphyahoo/test/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/tphyahoo/test/labels{/name}"},{"id":1553,"name":"knuff","full_name":"jesper/knuff","owner":{"login":"jesper","id":1334,"avatar_url":"https://0.gravatar.com/avatar/c8612f9313ed7f88f79349b27fd19e55?d=https%3A%2F%2Fidenticons.github.com%2F8edd72158ccd2a879f79cb2538568fdc.png","gravatar_id":"c8612f9313ed7f88f79349b27fd19e55","url":"https://api.github.com/users/jesper","html_url":"https://github.com/jesper","followers_url":"https://api.github.com/users/jesper/followers","following_url":"https://api.github.com/users/jesper/following{/other_user}","gists_url":"https://api.github.com/users/jesper/gists{/gist_id}","starred_url":"https://api.github.com/users/jesper/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jesper/subscriptions","organizations_url":"https://api.github.com/users/jesper/orgs","repos_url":"https://api.github.com/users/jesper/repos","events_url":"https://api.github.com/users/jesper/events{/privacy}","received_events_url":"https://api.github.com/users/jesper/received_events","type":"User"},"private":false,"html_url":"https://github.com/jesper/knuff","description":"A simple game revolving around pushing circles around on a table like surface.","fork":false,"url":"https://api.github.com/repos/jesper/knuff","forks_url":"https://api.github.com/repos/jesper/knuff/forks","keys_url":"https://api.github.com/repos/jesper/knuff/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jesper/knuff/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jesper/knuff/teams","hooks_url":"https://api.github.com/repos/jesper/knuff/hooks","issue_events_url":"https://api.github.com/repos/jesper/knuff/issues/events{/number}","events_url":"https://api.github.com/repos/jesper/knuff/events","assignees_url":"https://api.github.com/repos/jesper/knuff/assignees{/user}","branches_url":"https://api.github.com/repos/jesper/knuff/branches{/branch}","tags_url":"https://api.github.com/repos/jesper/knuff/tags","blobs_url":"https://api.github.com/repos/jesper/knuff/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jesper/knuff/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jesper/knuff/git/refs{/sha}","trees_url":"https://api.github.com/repos/jesper/knuff/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jesper/knuff/statuses/{sha}","languages_url":"https://api.github.com/repos/jesper/knuff/languages","stargazers_url":"https://api.github.com/repos/jesper/knuff/stargazers","contributors_url":"https://api.github.com/repos/jesper/knuff/contributors","subscribers_url":"https://api.github.com/repos/jesper/knuff/subscribers","subscription_url":"https://api.github.com/repos/jesper/knuff/subscription","commits_url":"https://api.github.com/repos/jesper/knuff/commits{/sha}","git_commits_url":"https://api.github.com/repos/jesper/knuff/git/commits{/sha}","comments_url":"https://api.github.com/repos/jesper/knuff/comments{/number}","issue_comment_url":"https://api.github.com/repos/jesper/knuff/issues/comments/{number}","contents_url":"https://api.github.com/repos/jesper/knuff/contents/{+path}","compare_url":"https://api.github.com/repos/jesper/knuff/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jesper/knuff/merges","archive_url":"https://api.github.com/repos/jesper/knuff/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jesper/knuff/downloads","issues_url":"https://api.github.com/repos/jesper/knuff/issues{/number}","pulls_url":"https://api.github.com/repos/jesper/knuff/pulls{/number}","milestones_url":"https://api.github.com/repos/jesper/knuff/milestones{/number}","notifications_url":"https://api.github.com/repos/jesper/knuff/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jesper/knuff/labels{/name}"},{"id":1558,"name":"testprj","full_name":"Judeqiu/testprj","owner":{"login":"Judeqiu","id":1353,"avatar_url":"https://2.gravatar.com/avatar/6fd8df9678eb77f4d1767ccdccdc7dd0?d=https%3A%2F%2Fidenticons.github.com%2Fee8374ec4e4ad797d42350c904d73077.png","gravatar_id":"6fd8df9678eb77f4d1767ccdccdc7dd0","url":"https://api.github.com/users/Judeqiu","html_url":"https://github.com/Judeqiu","followers_url":"https://api.github.com/users/Judeqiu/followers","following_url":"https://api.github.com/users/Judeqiu/following{/other_user}","gists_url":"https://api.github.com/users/Judeqiu/gists{/gist_id}","starred_url":"https://api.github.com/users/Judeqiu/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Judeqiu/subscriptions","organizations_url":"https://api.github.com/users/Judeqiu/orgs","repos_url":"https://api.github.com/users/Judeqiu/repos","events_url":"https://api.github.com/users/Judeqiu/events{/privacy}","received_events_url":"https://api.github.com/users/Judeqiu/received_events","type":"User"},"private":false,"html_url":"https://github.com/Judeqiu/testprj","description":"","fork":false,"url":"https://api.github.com/repos/Judeqiu/testprj","forks_url":"https://api.github.com/repos/Judeqiu/testprj/forks","keys_url":"https://api.github.com/repos/Judeqiu/testprj/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Judeqiu/testprj/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Judeqiu/testprj/teams","hooks_url":"https://api.github.com/repos/Judeqiu/testprj/hooks","issue_events_url":"https://api.github.com/repos/Judeqiu/testprj/issues/events{/number}","events_url":"https://api.github.com/repos/Judeqiu/testprj/events","assignees_url":"https://api.github.com/repos/Judeqiu/testprj/assignees{/user}","branches_url":"https://api.github.com/repos/Judeqiu/testprj/branches{/branch}","tags_url":"https://api.github.com/repos/Judeqiu/testprj/tags","blobs_url":"https://api.github.com/repos/Judeqiu/testprj/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Judeqiu/testprj/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Judeqiu/testprj/git/refs{/sha}","trees_url":"https://api.github.com/repos/Judeqiu/testprj/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Judeqiu/testprj/statuses/{sha}","languages_url":"https://api.github.com/repos/Judeqiu/testprj/languages","stargazers_url":"https://api.github.com/repos/Judeqiu/testprj/stargazers","contributors_url":"https://api.github.com/repos/Judeqiu/testprj/contributors","subscribers_url":"https://api.github.com/repos/Judeqiu/testprj/subscribers","subscription_url":"https://api.github.com/repos/Judeqiu/testprj/subscription","commits_url":"https://api.github.com/repos/Judeqiu/testprj/commits{/sha}","git_commits_url":"https://api.github.com/repos/Judeqiu/testprj/git/commits{/sha}","comments_url":"https://api.github.com/repos/Judeqiu/testprj/comments{/number}","issue_comment_url":"https://api.github.com/repos/Judeqiu/testprj/issues/comments/{number}","contents_url":"https://api.github.com/repos/Judeqiu/testprj/contents/{+path}","compare_url":"https://api.github.com/repos/Judeqiu/testprj/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Judeqiu/testprj/merges","archive_url":"https://api.github.com/repos/Judeqiu/testprj/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Judeqiu/testprj/downloads","issues_url":"https://api.github.com/repos/Judeqiu/testprj/issues{/number}","pulls_url":"https://api.github.com/repos/Judeqiu/testprj/pulls{/number}","milestones_url":"https://api.github.com/repos/Judeqiu/testprj/milestones{/number}","notifications_url":"https://api.github.com/repos/Judeqiu/testprj/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Judeqiu/testprj/labels{/name}"},{"id":1559,"name":"gazelle","full_name":"haberman/gazelle","owner":{"login":"haberman","id":1270,"avatar_url":"https://1.gravatar.com/avatar/35921adc4b1c0d7839fe8350e2429a68?d=https%3A%2F%2Fidenticons.github.com%2Fc850371fda6892fbfd1c5a5b457e5777.png","gravatar_id":"35921adc4b1c0d7839fe8350e2429a68","url":"https://api.github.com/users/haberman","html_url":"https://github.com/haberman","followers_url":"https://api.github.com/users/haberman/followers","following_url":"https://api.github.com/users/haberman/following{/other_user}","gists_url":"https://api.github.com/users/haberman/gists{/gist_id}","starred_url":"https://api.github.com/users/haberman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/haberman/subscriptions","organizations_url":"https://api.github.com/users/haberman/orgs","repos_url":"https://api.github.com/users/haberman/repos","events_url":"https://api.github.com/users/haberman/events{/privacy}","received_events_url":"https://api.github.com/users/haberman/received_events","type":"User"},"private":false,"html_url":"https://github.com/haberman/gazelle","description":"A system for creating fast, reusable parsers","fork":false,"url":"https://api.github.com/repos/haberman/gazelle","forks_url":"https://api.github.com/repos/haberman/gazelle/forks","keys_url":"https://api.github.com/repos/haberman/gazelle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/haberman/gazelle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/haberman/gazelle/teams","hooks_url":"https://api.github.com/repos/haberman/gazelle/hooks","issue_events_url":"https://api.github.com/repos/haberman/gazelle/issues/events{/number}","events_url":"https://api.github.com/repos/haberman/gazelle/events","assignees_url":"https://api.github.com/repos/haberman/gazelle/assignees{/user}","branches_url":"https://api.github.com/repos/haberman/gazelle/branches{/branch}","tags_url":"https://api.github.com/repos/haberman/gazelle/tags","blobs_url":"https://api.github.com/repos/haberman/gazelle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/haberman/gazelle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/haberman/gazelle/git/refs{/sha}","trees_url":"https://api.github.com/repos/haberman/gazelle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/haberman/gazelle/statuses/{sha}","languages_url":"https://api.github.com/repos/haberman/gazelle/languages","stargazers_url":"https://api.github.com/repos/haberman/gazelle/stargazers","contributors_url":"https://api.github.com/repos/haberman/gazelle/contributors","subscribers_url":"https://api.github.com/repos/haberman/gazelle/subscribers","subscription_url":"https://api.github.com/repos/haberman/gazelle/subscription","commits_url":"https://api.github.com/repos/haberman/gazelle/commits{/sha}","git_commits_url":"https://api.github.com/repos/haberman/gazelle/git/commits{/sha}","comments_url":"https://api.github.com/repos/haberman/gazelle/comments{/number}","issue_comment_url":"https://api.github.com/repos/haberman/gazelle/issues/comments/{number}","contents_url":"https://api.github.com/repos/haberman/gazelle/contents/{+path}","compare_url":"https://api.github.com/repos/haberman/gazelle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/haberman/gazelle/merges","archive_url":"https://api.github.com/repos/haberman/gazelle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/haberman/gazelle/downloads","issues_url":"https://api.github.com/repos/haberman/gazelle/issues{/number}","pulls_url":"https://api.github.com/repos/haberman/gazelle/pulls{/number}","milestones_url":"https://api.github.com/repos/haberman/gazelle/milestones{/number}","notifications_url":"https://api.github.com/repos/haberman/gazelle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/haberman/gazelle/labels{/name}"},{"id":1561,"name":"fast-recs-collate","full_name":"haberman/fast-recs-collate","owner":{"login":"haberman","id":1270,"avatar_url":"https://1.gravatar.com/avatar/35921adc4b1c0d7839fe8350e2429a68?d=https%3A%2F%2Fidenticons.github.com%2Fc850371fda6892fbfd1c5a5b457e5777.png","gravatar_id":"35921adc4b1c0d7839fe8350e2429a68","url":"https://api.github.com/users/haberman","html_url":"https://github.com/haberman","followers_url":"https://api.github.com/users/haberman/followers","following_url":"https://api.github.com/users/haberman/following{/other_user}","gists_url":"https://api.github.com/users/haberman/gists{/gist_id}","starred_url":"https://api.github.com/users/haberman/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/haberman/subscriptions","organizations_url":"https://api.github.com/users/haberman/orgs","repos_url":"https://api.github.com/users/haberman/repos","events_url":"https://api.github.com/users/haberman/events{/privacy}","received_events_url":"https://api.github.com/users/haberman/received_events","type":"User"},"private":false,"html_url":"https://github.com/haberman/fast-recs-collate","description":"A fast version of recs-collate","fork":false,"url":"https://api.github.com/repos/haberman/fast-recs-collate","forks_url":"https://api.github.com/repos/haberman/fast-recs-collate/forks","keys_url":"https://api.github.com/repos/haberman/fast-recs-collate/keys{/key_id}","collaborators_url":"https://api.github.com/repos/haberman/fast-recs-collate/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/haberman/fast-recs-collate/teams","hooks_url":"https://api.github.com/repos/haberman/fast-recs-collate/hooks","issue_events_url":"https://api.github.com/repos/haberman/fast-recs-collate/issues/events{/number}","events_url":"https://api.github.com/repos/haberman/fast-recs-collate/events","assignees_url":"https://api.github.com/repos/haberman/fast-recs-collate/assignees{/user}","branches_url":"https://api.github.com/repos/haberman/fast-recs-collate/branches{/branch}","tags_url":"https://api.github.com/repos/haberman/fast-recs-collate/tags","blobs_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/refs{/sha}","trees_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/trees{/sha}","statuses_url":"https://api.github.com/repos/haberman/fast-recs-collate/statuses/{sha}","languages_url":"https://api.github.com/repos/haberman/fast-recs-collate/languages","stargazers_url":"https://api.github.com/repos/haberman/fast-recs-collate/stargazers","contributors_url":"https://api.github.com/repos/haberman/fast-recs-collate/contributors","subscribers_url":"https://api.github.com/repos/haberman/fast-recs-collate/subscribers","subscription_url":"https://api.github.com/repos/haberman/fast-recs-collate/subscription","commits_url":"https://api.github.com/repos/haberman/fast-recs-collate/commits{/sha}","git_commits_url":"https://api.github.com/repos/haberman/fast-recs-collate/git/commits{/sha}","comments_url":"https://api.github.com/repos/haberman/fast-recs-collate/comments{/number}","issue_comment_url":"https://api.github.com/repos/haberman/fast-recs-collate/issues/comments/{number}","contents_url":"https://api.github.com/repos/haberman/fast-recs-collate/contents/{+path}","compare_url":"https://api.github.com/repos/haberman/fast-recs-collate/compare/{base}...{head}","merges_url":"https://api.github.com/repos/haberman/fast-recs-collate/merges","archive_url":"https://api.github.com/repos/haberman/fast-recs-collate/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/haberman/fast-recs-collate/downloads","issues_url":"https://api.github.com/repos/haberman/fast-recs-collate/issues{/number}","pulls_url":"https://api.github.com/repos/haberman/fast-recs-collate/pulls{/number}","milestones_url":"https://api.github.com/repos/haberman/fast-recs-collate/milestones{/number}","notifications_url":"https://api.github.com/repos/haberman/fast-recs-collate/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/haberman/fast-recs-collate/labels{/name}"},{"id":1572,"name":"family_budget","full_name":"francois/family_budget","owner":{"login":"francois","id":247,"avatar_url":"https://0.gravatar.com/avatar/7da32f740e64088d2b07c277f3c1b94b?d=https%3A%2F%2Fidenticons.github.com%2F3cec07e9ba5f5bb252d13f5f431e4bbb.png","gravatar_id":"7da32f740e64088d2b07c277f3c1b94b","url":"https://api.github.com/users/francois","html_url":"https://github.com/francois","followers_url":"https://api.github.com/users/francois/followers","following_url":"https://api.github.com/users/francois/following{/other_user}","gists_url":"https://api.github.com/users/francois/gists{/gist_id}","starred_url":"https://api.github.com/users/francois/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/francois/subscriptions","organizations_url":"https://api.github.com/users/francois/orgs","repos_url":"https://api.github.com/users/francois/repos","events_url":"https://api.github.com/users/francois/events{/privacy}","received_events_url":"https://api.github.com/users/francois/received_events","type":"User"},"private":false,"html_url":"https://github.com/francois/family_budget","description":"A Family Budget application","fork":false,"url":"https://api.github.com/repos/francois/family_budget","forks_url":"https://api.github.com/repos/francois/family_budget/forks","keys_url":"https://api.github.com/repos/francois/family_budget/keys{/key_id}","collaborators_url":"https://api.github.com/repos/francois/family_budget/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/francois/family_budget/teams","hooks_url":"https://api.github.com/repos/francois/family_budget/hooks","issue_events_url":"https://api.github.com/repos/francois/family_budget/issues/events{/number}","events_url":"https://api.github.com/repos/francois/family_budget/events","assignees_url":"https://api.github.com/repos/francois/family_budget/assignees{/user}","branches_url":"https://api.github.com/repos/francois/family_budget/branches{/branch}","tags_url":"https://api.github.com/repos/francois/family_budget/tags","blobs_url":"https://api.github.com/repos/francois/family_budget/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/francois/family_budget/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/francois/family_budget/git/refs{/sha}","trees_url":"https://api.github.com/repos/francois/family_budget/git/trees{/sha}","statuses_url":"https://api.github.com/repos/francois/family_budget/statuses/{sha}","languages_url":"https://api.github.com/repos/francois/family_budget/languages","stargazers_url":"https://api.github.com/repos/francois/family_budget/stargazers","contributors_url":"https://api.github.com/repos/francois/family_budget/contributors","subscribers_url":"https://api.github.com/repos/francois/family_budget/subscribers","subscription_url":"https://api.github.com/repos/francois/family_budget/subscription","commits_url":"https://api.github.com/repos/francois/family_budget/commits{/sha}","git_commits_url":"https://api.github.com/repos/francois/family_budget/git/commits{/sha}","comments_url":"https://api.github.com/repos/francois/family_budget/comments{/number}","issue_comment_url":"https://api.github.com/repos/francois/family_budget/issues/comments/{number}","contents_url":"https://api.github.com/repos/francois/family_budget/contents/{+path}","compare_url":"https://api.github.com/repos/francois/family_budget/compare/{base}...{head}","merges_url":"https://api.github.com/repos/francois/family_budget/merges","archive_url":"https://api.github.com/repos/francois/family_budget/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/francois/family_budget/downloads","issues_url":"https://api.github.com/repos/francois/family_budget/issues{/number}","pulls_url":"https://api.github.com/repos/francois/family_budget/pulls{/number}","milestones_url":"https://api.github.com/repos/francois/family_budget/milestones{/number}","notifications_url":"https://api.github.com/repos/francois/family_budget/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/francois/family_budget/labels{/name}"},{"id":1576,"name":"javascript-jquery-tmbundle","full_name":"drnic/javascript-jquery-tmbundle","owner":{"login":"drnic","id":108,"avatar_url":"https://1.gravatar.com/avatar/cb2b768a5e546b24052ea03334e43676?d=https%3A%2F%2Fidenticons.github.com%2Fa3c65c2974270fd093ee8a9bf8ae7d0b.png","gravatar_id":"cb2b768a5e546b24052ea03334e43676","url":"https://api.github.com/users/drnic","html_url":"https://github.com/drnic","followers_url":"https://api.github.com/users/drnic/followers","following_url":"https://api.github.com/users/drnic/following{/other_user}","gists_url":"https://api.github.com/users/drnic/gists{/gist_id}","starred_url":"https://api.github.com/users/drnic/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/drnic/subscriptions","organizations_url":"https://api.github.com/users/drnic/orgs","repos_url":"https://api.github.com/users/drnic/repos","events_url":"https://api.github.com/users/drnic/events{/privacy}","received_events_url":"https://api.github.com/users/drnic/received_events","type":"User"},"private":false,"html_url":"https://github.com/drnic/javascript-jquery-tmbundle","description":"JavaScript jQuery.tmbundle","fork":false,"url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle","forks_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/forks","keys_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/keys{/key_id}","collaborators_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/teams","hooks_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/hooks","issue_events_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/issues/events{/number}","events_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/events","assignees_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/assignees{/user}","branches_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/branches{/branch}","tags_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/tags","blobs_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/refs{/sha}","trees_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/trees{/sha}","statuses_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/statuses/{sha}","languages_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/languages","stargazers_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/stargazers","contributors_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/contributors","subscribers_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/subscribers","subscription_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/subscription","commits_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/commits{/sha}","git_commits_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/git/commits{/sha}","comments_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/comments{/number}","issue_comment_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/issues/comments/{number}","contents_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/contents/{+path}","compare_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/compare/{base}...{head}","merges_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/merges","archive_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/downloads","issues_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/issues{/number}","pulls_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/pulls{/number}","milestones_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/milestones{/number}","notifications_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/drnic/javascript-jquery-tmbundle/labels{/name}"},{"id":1584,"name":"markable","full_name":"AndrewO/markable","owner":{"login":"AndrewO","id":550,"avatar_url":"https://2.gravatar.com/avatar/bdf2290f0b1d87cb0853966e7e51606b?d=https%3A%2F%2Fidenticons.github.com%2F01f78be6f7cad02658508fe4616098a9.png","gravatar_id":"bdf2290f0b1d87cb0853966e7e51606b","url":"https://api.github.com/users/AndrewO","html_url":"https://github.com/AndrewO","followers_url":"https://api.github.com/users/AndrewO/followers","following_url":"https://api.github.com/users/AndrewO/following{/other_user}","gists_url":"https://api.github.com/users/AndrewO/gists{/gist_id}","starred_url":"https://api.github.com/users/AndrewO/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/AndrewO/subscriptions","organizations_url":"https://api.github.com/users/AndrewO/orgs","repos_url":"https://api.github.com/users/AndrewO/repos","events_url":"https://api.github.com/users/AndrewO/events{/privacy}","received_events_url":"https://api.github.com/users/AndrewO/received_events","type":"User"},"private":false,"html_url":"https://github.com/AndrewO/markable","description":"A module that adds Markaby functionality to any class","fork":false,"url":"https://api.github.com/repos/AndrewO/markable","forks_url":"https://api.github.com/repos/AndrewO/markable/forks","keys_url":"https://api.github.com/repos/AndrewO/markable/keys{/key_id}","collaborators_url":"https://api.github.com/repos/AndrewO/markable/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/AndrewO/markable/teams","hooks_url":"https://api.github.com/repos/AndrewO/markable/hooks","issue_events_url":"https://api.github.com/repos/AndrewO/markable/issues/events{/number}","events_url":"https://api.github.com/repos/AndrewO/markable/events","assignees_url":"https://api.github.com/repos/AndrewO/markable/assignees{/user}","branches_url":"https://api.github.com/repos/AndrewO/markable/branches{/branch}","tags_url":"https://api.github.com/repos/AndrewO/markable/tags","blobs_url":"https://api.github.com/repos/AndrewO/markable/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/AndrewO/markable/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/AndrewO/markable/git/refs{/sha}","trees_url":"https://api.github.com/repos/AndrewO/markable/git/trees{/sha}","statuses_url":"https://api.github.com/repos/AndrewO/markable/statuses/{sha}","languages_url":"https://api.github.com/repos/AndrewO/markable/languages","stargazers_url":"https://api.github.com/repos/AndrewO/markable/stargazers","contributors_url":"https://api.github.com/repos/AndrewO/markable/contributors","subscribers_url":"https://api.github.com/repos/AndrewO/markable/subscribers","subscription_url":"https://api.github.com/repos/AndrewO/markable/subscription","commits_url":"https://api.github.com/repos/AndrewO/markable/commits{/sha}","git_commits_url":"https://api.github.com/repos/AndrewO/markable/git/commits{/sha}","comments_url":"https://api.github.com/repos/AndrewO/markable/comments{/number}","issue_comment_url":"https://api.github.com/repos/AndrewO/markable/issues/comments/{number}","contents_url":"https://api.github.com/repos/AndrewO/markable/contents/{+path}","compare_url":"https://api.github.com/repos/AndrewO/markable/compare/{base}...{head}","merges_url":"https://api.github.com/repos/AndrewO/markable/merges","archive_url":"https://api.github.com/repos/AndrewO/markable/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/AndrewO/markable/downloads","issues_url":"https://api.github.com/repos/AndrewO/markable/issues{/number}","pulls_url":"https://api.github.com/repos/AndrewO/markable/pulls{/number}","milestones_url":"https://api.github.com/repos/AndrewO/markable/milestones{/number}","notifications_url":"https://api.github.com/repos/AndrewO/markable/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/AndrewO/markable/labels{/name}"},{"id":1592,"name":"erlenmeyer","full_name":"KirinDave/erlenmeyer","owner":{"login":"KirinDave","id":36,"avatar_url":"https://2.gravatar.com/avatar/d4fabd6c08ac228a3ff846d9d0d1580e?d=https%3A%2F%2Fidenticons.github.com%2F19ca14e7ea6328a42e0eb13d585e4c22.png","gravatar_id":"d4fabd6c08ac228a3ff846d9d0d1580e","url":"https://api.github.com/users/KirinDave","html_url":"https://github.com/KirinDave","followers_url":"https://api.github.com/users/KirinDave/followers","following_url":"https://api.github.com/users/KirinDave/following{/other_user}","gists_url":"https://api.github.com/users/KirinDave/gists{/gist_id}","starred_url":"https://api.github.com/users/KirinDave/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/KirinDave/subscriptions","organizations_url":"https://api.github.com/users/KirinDave/orgs","repos_url":"https://api.github.com/users/KirinDave/repos","events_url":"https://api.github.com/users/KirinDave/events{/privacy}","received_events_url":"https://api.github.com/users/KirinDave/received_events","type":"User"},"private":false,"html_url":"https://github.com/KirinDave/erlenmeyer","description":"A binding between erlang and mzscheme.","fork":false,"url":"https://api.github.com/repos/KirinDave/erlenmeyer","forks_url":"https://api.github.com/repos/KirinDave/erlenmeyer/forks","keys_url":"https://api.github.com/repos/KirinDave/erlenmeyer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/KirinDave/erlenmeyer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/KirinDave/erlenmeyer/teams","hooks_url":"https://api.github.com/repos/KirinDave/erlenmeyer/hooks","issue_events_url":"https://api.github.com/repos/KirinDave/erlenmeyer/issues/events{/number}","events_url":"https://api.github.com/repos/KirinDave/erlenmeyer/events","assignees_url":"https://api.github.com/repos/KirinDave/erlenmeyer/assignees{/user}","branches_url":"https://api.github.com/repos/KirinDave/erlenmeyer/branches{/branch}","tags_url":"https://api.github.com/repos/KirinDave/erlenmeyer/tags","blobs_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/refs{/sha}","trees_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/KirinDave/erlenmeyer/statuses/{sha}","languages_url":"https://api.github.com/repos/KirinDave/erlenmeyer/languages","stargazers_url":"https://api.github.com/repos/KirinDave/erlenmeyer/stargazers","contributors_url":"https://api.github.com/repos/KirinDave/erlenmeyer/contributors","subscribers_url":"https://api.github.com/repos/KirinDave/erlenmeyer/subscribers","subscription_url":"https://api.github.com/repos/KirinDave/erlenmeyer/subscription","commits_url":"https://api.github.com/repos/KirinDave/erlenmeyer/commits{/sha}","git_commits_url":"https://api.github.com/repos/KirinDave/erlenmeyer/git/commits{/sha}","comments_url":"https://api.github.com/repos/KirinDave/erlenmeyer/comments{/number}","issue_comment_url":"https://api.github.com/repos/KirinDave/erlenmeyer/issues/comments/{number}","contents_url":"https://api.github.com/repos/KirinDave/erlenmeyer/contents/{+path}","compare_url":"https://api.github.com/repos/KirinDave/erlenmeyer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/KirinDave/erlenmeyer/merges","archive_url":"https://api.github.com/repos/KirinDave/erlenmeyer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/KirinDave/erlenmeyer/downloads","issues_url":"https://api.github.com/repos/KirinDave/erlenmeyer/issues{/number}","pulls_url":"https://api.github.com/repos/KirinDave/erlenmeyer/pulls{/number}","milestones_url":"https://api.github.com/repos/KirinDave/erlenmeyer/milestones{/number}","notifications_url":"https://api.github.com/repos/KirinDave/erlenmeyer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/KirinDave/erlenmeyer/labels{/name}"},{"id":1598,"name":"yikes","full_name":"xpaulbettsx/yikes","owner":{"login":"xpaulbettsx","id":1396,"avatar_url":"https://2.gravatar.com/avatar/cba1c933e48e5ec70c68f640a530b969?d=https%3A%2F%2Fidenticons.github.com%2F0966289037ad9846c5e994be2a91bafa.png","gravatar_id":"cba1c933e48e5ec70c68f640a530b969","url":"https://api.github.com/users/xpaulbettsx","html_url":"https://github.com/xpaulbettsx","followers_url":"https://api.github.com/users/xpaulbettsx/followers","following_url":"https://api.github.com/users/xpaulbettsx/following{/other_user}","gists_url":"https://api.github.com/users/xpaulbettsx/gists{/gist_id}","starred_url":"https://api.github.com/users/xpaulbettsx/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/xpaulbettsx/subscriptions","organizations_url":"https://api.github.com/users/xpaulbettsx/orgs","repos_url":"https://api.github.com/users/xpaulbettsx/repos","events_url":"https://api.github.com/users/xpaulbettsx/events{/privacy}","received_events_url":"https://api.github.com/users/xpaulbettsx/received_events","type":"User"},"private":false,"html_url":"https://github.com/xpaulbettsx/yikes","description":"An automatic way to convert videos and put them on your iPod","fork":false,"url":"https://api.github.com/repos/xpaulbettsx/yikes","forks_url":"https://api.github.com/repos/xpaulbettsx/yikes/forks","keys_url":"https://api.github.com/repos/xpaulbettsx/yikes/keys{/key_id}","collaborators_url":"https://api.github.com/repos/xpaulbettsx/yikes/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/xpaulbettsx/yikes/teams","hooks_url":"https://api.github.com/repos/xpaulbettsx/yikes/hooks","issue_events_url":"https://api.github.com/repos/xpaulbettsx/yikes/issues/events{/number}","events_url":"https://api.github.com/repos/xpaulbettsx/yikes/events","assignees_url":"https://api.github.com/repos/xpaulbettsx/yikes/assignees{/user}","branches_url":"https://api.github.com/repos/xpaulbettsx/yikes/branches{/branch}","tags_url":"https://api.github.com/repos/xpaulbettsx/yikes/tags","blobs_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/refs{/sha}","trees_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/trees{/sha}","statuses_url":"https://api.github.com/repos/xpaulbettsx/yikes/statuses/{sha}","languages_url":"https://api.github.com/repos/xpaulbettsx/yikes/languages","stargazers_url":"https://api.github.com/repos/xpaulbettsx/yikes/stargazers","contributors_url":"https://api.github.com/repos/xpaulbettsx/yikes/contributors","subscribers_url":"https://api.github.com/repos/xpaulbettsx/yikes/subscribers","subscription_url":"https://api.github.com/repos/xpaulbettsx/yikes/subscription","commits_url":"https://api.github.com/repos/xpaulbettsx/yikes/commits{/sha}","git_commits_url":"https://api.github.com/repos/xpaulbettsx/yikes/git/commits{/sha}","comments_url":"https://api.github.com/repos/xpaulbettsx/yikes/comments{/number}","issue_comment_url":"https://api.github.com/repos/xpaulbettsx/yikes/issues/comments/{number}","contents_url":"https://api.github.com/repos/xpaulbettsx/yikes/contents/{+path}","compare_url":"https://api.github.com/repos/xpaulbettsx/yikes/compare/{base}...{head}","merges_url":"https://api.github.com/repos/xpaulbettsx/yikes/merges","archive_url":"https://api.github.com/repos/xpaulbettsx/yikes/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/xpaulbettsx/yikes/downloads","issues_url":"https://api.github.com/repos/xpaulbettsx/yikes/issues{/number}","pulls_url":"https://api.github.com/repos/xpaulbettsx/yikes/pulls{/number}","milestones_url":"https://api.github.com/repos/xpaulbettsx/yikes/milestones{/number}","notifications_url":"https://api.github.com/repos/xpaulbettsx/yikes/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/xpaulbettsx/yikes/labels{/name}"},{"id":1602,"name":"erlenmeyer","full_name":"mojombo/erlenmeyer","owner":{"login":"mojombo","id":1,"avatar_url":"https://2.gravatar.com/avatar/25c7c18223fb42a4c6ae1c8db6f50f9b?d=https%3A%2F%2Fidenticons.github.com%2Fc4ca4238a0b923820dcc509a6f75849b.png","gravatar_id":"25c7c18223fb42a4c6ae1c8db6f50f9b","url":"https://api.github.com/users/mojombo","html_url":"https://github.com/mojombo","followers_url":"https://api.github.com/users/mojombo/followers","following_url":"https://api.github.com/users/mojombo/following{/other_user}","gists_url":"https://api.github.com/users/mojombo/gists{/gist_id}","starred_url":"https://api.github.com/users/mojombo/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mojombo/subscriptions","organizations_url":"https://api.github.com/users/mojombo/orgs","repos_url":"https://api.github.com/users/mojombo/repos","events_url":"https://api.github.com/users/mojombo/events{/privacy}","received_events_url":"https://api.github.com/users/mojombo/received_events","type":"User"},"private":false,"html_url":"https://github.com/mojombo/erlenmeyer","description":"A binding between erlang and mzscheme.","fork":true,"url":"https://api.github.com/repos/mojombo/erlenmeyer","forks_url":"https://api.github.com/repos/mojombo/erlenmeyer/forks","keys_url":"https://api.github.com/repos/mojombo/erlenmeyer/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mojombo/erlenmeyer/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mojombo/erlenmeyer/teams","hooks_url":"https://api.github.com/repos/mojombo/erlenmeyer/hooks","issue_events_url":"https://api.github.com/repos/mojombo/erlenmeyer/issues/events{/number}","events_url":"https://api.github.com/repos/mojombo/erlenmeyer/events","assignees_url":"https://api.github.com/repos/mojombo/erlenmeyer/assignees{/user}","branches_url":"https://api.github.com/repos/mojombo/erlenmeyer/branches{/branch}","tags_url":"https://api.github.com/repos/mojombo/erlenmeyer/tags","blobs_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/refs{/sha}","trees_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mojombo/erlenmeyer/statuses/{sha}","languages_url":"https://api.github.com/repos/mojombo/erlenmeyer/languages","stargazers_url":"https://api.github.com/repos/mojombo/erlenmeyer/stargazers","contributors_url":"https://api.github.com/repos/mojombo/erlenmeyer/contributors","subscribers_url":"https://api.github.com/repos/mojombo/erlenmeyer/subscribers","subscription_url":"https://api.github.com/repos/mojombo/erlenmeyer/subscription","commits_url":"https://api.github.com/repos/mojombo/erlenmeyer/commits{/sha}","git_commits_url":"https://api.github.com/repos/mojombo/erlenmeyer/git/commits{/sha}","comments_url":"https://api.github.com/repos/mojombo/erlenmeyer/comments{/number}","issue_comment_url":"https://api.github.com/repos/mojombo/erlenmeyer/issues/comments/{number}","contents_url":"https://api.github.com/repos/mojombo/erlenmeyer/contents/{+path}","compare_url":"https://api.github.com/repos/mojombo/erlenmeyer/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mojombo/erlenmeyer/merges","archive_url":"https://api.github.com/repos/mojombo/erlenmeyer/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mojombo/erlenmeyer/downloads","issues_url":"https://api.github.com/repos/mojombo/erlenmeyer/issues{/number}","pulls_url":"https://api.github.com/repos/mojombo/erlenmeyer/pulls{/number}","milestones_url":"https://api.github.com/repos/mojombo/erlenmeyer/milestones{/number}","notifications_url":"https://api.github.com/repos/mojombo/erlenmeyer/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mojombo/erlenmeyer/labels{/name}"},{"id":1603,"name":"python-tool","full_name":"alexeysudachen/python-tool","owner":{"login":"alexeysudachen","id":1428,"avatar_url":"https://2.gravatar.com/avatar/de4e1b989525c878e34c1910aab27dfc?d=https%3A%2F%2Fidenticons.github.com%2F0663a4ddceacb40b095eda264a85f15c.png","gravatar_id":"de4e1b989525c878e34c1910aab27dfc","url":"https://api.github.com/users/alexeysudachen","html_url":"https://github.com/alexeysudachen","followers_url":"https://api.github.com/users/alexeysudachen/followers","following_url":"https://api.github.com/users/alexeysudachen/following{/other_user}","gists_url":"https://api.github.com/users/alexeysudachen/gists{/gist_id}","starred_url":"https://api.github.com/users/alexeysudachen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alexeysudachen/subscriptions","organizations_url":"https://api.github.com/users/alexeysudachen/orgs","repos_url":"https://api.github.com/users/alexeysudachen/repos","events_url":"https://api.github.com/users/alexeysudachen/events{/privacy}","received_events_url":"https://api.github.com/users/alexeysudachen/received_events","type":"User"},"private":false,"html_url":"https://github.com/alexeysudachen/python-tool","description":"some python related utilities like py2cc","fork":false,"url":"https://api.github.com/repos/alexeysudachen/python-tool","forks_url":"https://api.github.com/repos/alexeysudachen/python-tool/forks","keys_url":"https://api.github.com/repos/alexeysudachen/python-tool/keys{/key_id}","collaborators_url":"https://api.github.com/repos/alexeysudachen/python-tool/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/alexeysudachen/python-tool/teams","hooks_url":"https://api.github.com/repos/alexeysudachen/python-tool/hooks","issue_events_url":"https://api.github.com/repos/alexeysudachen/python-tool/issues/events{/number}","events_url":"https://api.github.com/repos/alexeysudachen/python-tool/events","assignees_url":"https://api.github.com/repos/alexeysudachen/python-tool/assignees{/user}","branches_url":"https://api.github.com/repos/alexeysudachen/python-tool/branches{/branch}","tags_url":"https://api.github.com/repos/alexeysudachen/python-tool/tags","blobs_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/refs{/sha}","trees_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/trees{/sha}","statuses_url":"https://api.github.com/repos/alexeysudachen/python-tool/statuses/{sha}","languages_url":"https://api.github.com/repos/alexeysudachen/python-tool/languages","stargazers_url":"https://api.github.com/repos/alexeysudachen/python-tool/stargazers","contributors_url":"https://api.github.com/repos/alexeysudachen/python-tool/contributors","subscribers_url":"https://api.github.com/repos/alexeysudachen/python-tool/subscribers","subscription_url":"https://api.github.com/repos/alexeysudachen/python-tool/subscription","commits_url":"https://api.github.com/repos/alexeysudachen/python-tool/commits{/sha}","git_commits_url":"https://api.github.com/repos/alexeysudachen/python-tool/git/commits{/sha}","comments_url":"https://api.github.com/repos/alexeysudachen/python-tool/comments{/number}","issue_comment_url":"https://api.github.com/repos/alexeysudachen/python-tool/issues/comments/{number}","contents_url":"https://api.github.com/repos/alexeysudachen/python-tool/contents/{+path}","compare_url":"https://api.github.com/repos/alexeysudachen/python-tool/compare/{base}...{head}","merges_url":"https://api.github.com/repos/alexeysudachen/python-tool/merges","archive_url":"https://api.github.com/repos/alexeysudachen/python-tool/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/alexeysudachen/python-tool/downloads","issues_url":"https://api.github.com/repos/alexeysudachen/python-tool/issues{/number}","pulls_url":"https://api.github.com/repos/alexeysudachen/python-tool/pulls{/number}","milestones_url":"https://api.github.com/repos/alexeysudachen/python-tool/milestones{/number}","notifications_url":"https://api.github.com/repos/alexeysudachen/python-tool/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/alexeysudachen/python-tool/labels{/name}"},{"id":1611,"name":"tableau","full_name":"bousquet/tableau","owner":{"login":"bousquet","id":1347,"avatar_url":"https://0.gravatar.com/avatar/7491ae9acee0ca6a37d078b87ec7cd7a?d=https%3A%2F%2Fidenticons.github.com%2F0e55666a4ad822e0e34299df3591d979.png","gravatar_id":"7491ae9acee0ca6a37d078b87ec7cd7a","url":"https://api.github.com/users/bousquet","html_url":"https://github.com/bousquet","followers_url":"https://api.github.com/users/bousquet/followers","following_url":"https://api.github.com/users/bousquet/following{/other_user}","gists_url":"https://api.github.com/users/bousquet/gists{/gist_id}","starred_url":"https://api.github.com/users/bousquet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bousquet/subscriptions","organizations_url":"https://api.github.com/users/bousquet/orgs","repos_url":"https://api.github.com/users/bousquet/repos","events_url":"https://api.github.com/users/bousquet/events{/privacy}","received_events_url":"https://api.github.com/users/bousquet/received_events","type":"User"},"private":false,"html_url":"https://github.com/bousquet/tableau","description":"Open source photo gallery in Rails","fork":false,"url":"https://api.github.com/repos/bousquet/tableau","forks_url":"https://api.github.com/repos/bousquet/tableau/forks","keys_url":"https://api.github.com/repos/bousquet/tableau/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bousquet/tableau/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bousquet/tableau/teams","hooks_url":"https://api.github.com/repos/bousquet/tableau/hooks","issue_events_url":"https://api.github.com/repos/bousquet/tableau/issues/events{/number}","events_url":"https://api.github.com/repos/bousquet/tableau/events","assignees_url":"https://api.github.com/repos/bousquet/tableau/assignees{/user}","branches_url":"https://api.github.com/repos/bousquet/tableau/branches{/branch}","tags_url":"https://api.github.com/repos/bousquet/tableau/tags","blobs_url":"https://api.github.com/repos/bousquet/tableau/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bousquet/tableau/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bousquet/tableau/git/refs{/sha}","trees_url":"https://api.github.com/repos/bousquet/tableau/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bousquet/tableau/statuses/{sha}","languages_url":"https://api.github.com/repos/bousquet/tableau/languages","stargazers_url":"https://api.github.com/repos/bousquet/tableau/stargazers","contributors_url":"https://api.github.com/repos/bousquet/tableau/contributors","subscribers_url":"https://api.github.com/repos/bousquet/tableau/subscribers","subscription_url":"https://api.github.com/repos/bousquet/tableau/subscription","commits_url":"https://api.github.com/repos/bousquet/tableau/commits{/sha}","git_commits_url":"https://api.github.com/repos/bousquet/tableau/git/commits{/sha}","comments_url":"https://api.github.com/repos/bousquet/tableau/comments{/number}","issue_comment_url":"https://api.github.com/repos/bousquet/tableau/issues/comments/{number}","contents_url":"https://api.github.com/repos/bousquet/tableau/contents/{+path}","compare_url":"https://api.github.com/repos/bousquet/tableau/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bousquet/tableau/merges","archive_url":"https://api.github.com/repos/bousquet/tableau/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bousquet/tableau/downloads","issues_url":"https://api.github.com/repos/bousquet/tableau/issues{/number}","pulls_url":"https://api.github.com/repos/bousquet/tableau/pulls{/number}","milestones_url":"https://api.github.com/repos/bousquet/tableau/milestones{/number}","notifications_url":"https://api.github.com/repos/bousquet/tableau/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bousquet/tableau/labels{/name}"},{"id":1613,"name":"blue-channel","full_name":"davemerwin/blue-channel","owner":{"login":"davemerwin","id":1435,"avatar_url":"https://0.gravatar.com/avatar/3f3cd92849c7b4332396a4f5e4a97162?d=https%3A%2F%2Fidenticons.github.com%2F1f3202d820180a39f736f20fce790de8.png","gravatar_id":"3f3cd92849c7b4332396a4f5e4a97162","url":"https://api.github.com/users/davemerwin","html_url":"https://github.com/davemerwin","followers_url":"https://api.github.com/users/davemerwin/followers","following_url":"https://api.github.com/users/davemerwin/following{/other_user}","gists_url":"https://api.github.com/users/davemerwin/gists{/gist_id}","starred_url":"https://api.github.com/users/davemerwin/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/davemerwin/subscriptions","organizations_url":"https://api.github.com/users/davemerwin/orgs","repos_url":"https://api.github.com/users/davemerwin/repos","events_url":"https://api.github.com/users/davemerwin/events{/privacy}","received_events_url":"https://api.github.com/users/davemerwin/received_events","type":"User"},"private":false,"html_url":"https://github.com/davemerwin/blue-channel","description":"A content management system developed in Django, jQuery and 960","fork":false,"url":"https://api.github.com/repos/davemerwin/blue-channel","forks_url":"https://api.github.com/repos/davemerwin/blue-channel/forks","keys_url":"https://api.github.com/repos/davemerwin/blue-channel/keys{/key_id}","collaborators_url":"https://api.github.com/repos/davemerwin/blue-channel/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/davemerwin/blue-channel/teams","hooks_url":"https://api.github.com/repos/davemerwin/blue-channel/hooks","issue_events_url":"https://api.github.com/repos/davemerwin/blue-channel/issues/events{/number}","events_url":"https://api.github.com/repos/davemerwin/blue-channel/events","assignees_url":"https://api.github.com/repos/davemerwin/blue-channel/assignees{/user}","branches_url":"https://api.github.com/repos/davemerwin/blue-channel/branches{/branch}","tags_url":"https://api.github.com/repos/davemerwin/blue-channel/tags","blobs_url":"https://api.github.com/repos/davemerwin/blue-channel/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/davemerwin/blue-channel/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/davemerwin/blue-channel/git/refs{/sha}","trees_url":"https://api.github.com/repos/davemerwin/blue-channel/git/trees{/sha}","statuses_url":"https://api.github.com/repos/davemerwin/blue-channel/statuses/{sha}","languages_url":"https://api.github.com/repos/davemerwin/blue-channel/languages","stargazers_url":"https://api.github.com/repos/davemerwin/blue-channel/stargazers","contributors_url":"https://api.github.com/repos/davemerwin/blue-channel/contributors","subscribers_url":"https://api.github.com/repos/davemerwin/blue-channel/subscribers","subscription_url":"https://api.github.com/repos/davemerwin/blue-channel/subscription","commits_url":"https://api.github.com/repos/davemerwin/blue-channel/commits{/sha}","git_commits_url":"https://api.github.com/repos/davemerwin/blue-channel/git/commits{/sha}","comments_url":"https://api.github.com/repos/davemerwin/blue-channel/comments{/number}","issue_comment_url":"https://api.github.com/repos/davemerwin/blue-channel/issues/comments/{number}","contents_url":"https://api.github.com/repos/davemerwin/blue-channel/contents/{+path}","compare_url":"https://api.github.com/repos/davemerwin/blue-channel/compare/{base}...{head}","merges_url":"https://api.github.com/repos/davemerwin/blue-channel/merges","archive_url":"https://api.github.com/repos/davemerwin/blue-channel/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/davemerwin/blue-channel/downloads","issues_url":"https://api.github.com/repos/davemerwin/blue-channel/issues{/number}","pulls_url":"https://api.github.com/repos/davemerwin/blue-channel/pulls{/number}","milestones_url":"https://api.github.com/repos/davemerwin/blue-channel/milestones{/number}","notifications_url":"https://api.github.com/repos/davemerwin/blue-channel/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/davemerwin/blue-channel/labels{/name}"},{"id":1615,"name":"weshowthemoney-com","full_name":"maborg/weshowthemoney-com","owner":{"login":"maborg","id":1446,"avatar_url":"https://2.gravatar.com/avatar/f86675c1ed32bf619a669a4b8bc29d2c?d=https%3A%2F%2Fidenticons.github.com%2F8fb21ee7a2207526da55a679f0332de2.png","gravatar_id":"f86675c1ed32bf619a669a4b8bc29d2c","url":"https://api.github.com/users/maborg","html_url":"https://github.com/maborg","followers_url":"https://api.github.com/users/maborg/followers","following_url":"https://api.github.com/users/maborg/following{/other_user}","gists_url":"https://api.github.com/users/maborg/gists{/gist_id}","starred_url":"https://api.github.com/users/maborg/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/maborg/subscriptions","organizations_url":"https://api.github.com/users/maborg/orgs","repos_url":"https://api.github.com/users/maborg/repos","events_url":"https://api.github.com/users/maborg/events{/privacy}","received_events_url":"https://api.github.com/users/maborg/received_events","type":"User"},"private":false,"html_url":"https://github.com/maborg/weshowthemoney-com","description":"a visual approach to the us election","fork":false,"url":"https://api.github.com/repos/maborg/weshowthemoney-com","forks_url":"https://api.github.com/repos/maborg/weshowthemoney-com/forks","keys_url":"https://api.github.com/repos/maborg/weshowthemoney-com/keys{/key_id}","collaborators_url":"https://api.github.com/repos/maborg/weshowthemoney-com/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/maborg/weshowthemoney-com/teams","hooks_url":"https://api.github.com/repos/maborg/weshowthemoney-com/hooks","issue_events_url":"https://api.github.com/repos/maborg/weshowthemoney-com/issues/events{/number}","events_url":"https://api.github.com/repos/maborg/weshowthemoney-com/events","assignees_url":"https://api.github.com/repos/maborg/weshowthemoney-com/assignees{/user}","branches_url":"https://api.github.com/repos/maborg/weshowthemoney-com/branches{/branch}","tags_url":"https://api.github.com/repos/maborg/weshowthemoney-com/tags","blobs_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/refs{/sha}","trees_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/trees{/sha}","statuses_url":"https://api.github.com/repos/maborg/weshowthemoney-com/statuses/{sha}","languages_url":"https://api.github.com/repos/maborg/weshowthemoney-com/languages","stargazers_url":"https://api.github.com/repos/maborg/weshowthemoney-com/stargazers","contributors_url":"https://api.github.com/repos/maborg/weshowthemoney-com/contributors","subscribers_url":"https://api.github.com/repos/maborg/weshowthemoney-com/subscribers","subscription_url":"https://api.github.com/repos/maborg/weshowthemoney-com/subscription","commits_url":"https://api.github.com/repos/maborg/weshowthemoney-com/commits{/sha}","git_commits_url":"https://api.github.com/repos/maborg/weshowthemoney-com/git/commits{/sha}","comments_url":"https://api.github.com/repos/maborg/weshowthemoney-com/comments{/number}","issue_comment_url":"https://api.github.com/repos/maborg/weshowthemoney-com/issues/comments/{number}","contents_url":"https://api.github.com/repos/maborg/weshowthemoney-com/contents/{+path}","compare_url":"https://api.github.com/repos/maborg/weshowthemoney-com/compare/{base}...{head}","merges_url":"https://api.github.com/repos/maborg/weshowthemoney-com/merges","archive_url":"https://api.github.com/repos/maborg/weshowthemoney-com/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/maborg/weshowthemoney-com/downloads","issues_url":"https://api.github.com/repos/maborg/weshowthemoney-com/issues{/number}","pulls_url":"https://api.github.com/repos/maborg/weshowthemoney-com/pulls{/number}","milestones_url":"https://api.github.com/repos/maborg/weshowthemoney-com/milestones{/number}","notifications_url":"https://api.github.com/repos/maborg/weshowthemoney-com/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/maborg/weshowthemoney-com/labels{/name}"},{"id":1618,"name":"marshmallow","full_name":"bousquet/marshmallow","owner":{"login":"bousquet","id":1347,"avatar_url":"https://0.gravatar.com/avatar/7491ae9acee0ca6a37d078b87ec7cd7a?d=https%3A%2F%2Fidenticons.github.com%2F0e55666a4ad822e0e34299df3591d979.png","gravatar_id":"7491ae9acee0ca6a37d078b87ec7cd7a","url":"https://api.github.com/users/bousquet","html_url":"https://github.com/bousquet","followers_url":"https://api.github.com/users/bousquet/followers","following_url":"https://api.github.com/users/bousquet/following{/other_user}","gists_url":"https://api.github.com/users/bousquet/gists{/gist_id}","starred_url":"https://api.github.com/users/bousquet/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bousquet/subscriptions","organizations_url":"https://api.github.com/users/bousquet/orgs","repos_url":"https://api.github.com/users/bousquet/repos","events_url":"https://api.github.com/users/bousquet/events{/privacy}","received_events_url":"https://api.github.com/users/bousquet/received_events","type":"User"},"private":false,"html_url":"https://github.com/bousquet/marshmallow","description":"Campfire chat bot in Ruby","fork":false,"url":"https://api.github.com/repos/bousquet/marshmallow","forks_url":"https://api.github.com/repos/bousquet/marshmallow/forks","keys_url":"https://api.github.com/repos/bousquet/marshmallow/keys{/key_id}","collaborators_url":"https://api.github.com/repos/bousquet/marshmallow/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/bousquet/marshmallow/teams","hooks_url":"https://api.github.com/repos/bousquet/marshmallow/hooks","issue_events_url":"https://api.github.com/repos/bousquet/marshmallow/issues/events{/number}","events_url":"https://api.github.com/repos/bousquet/marshmallow/events","assignees_url":"https://api.github.com/repos/bousquet/marshmallow/assignees{/user}","branches_url":"https://api.github.com/repos/bousquet/marshmallow/branches{/branch}","tags_url":"https://api.github.com/repos/bousquet/marshmallow/tags","blobs_url":"https://api.github.com/repos/bousquet/marshmallow/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/bousquet/marshmallow/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/bousquet/marshmallow/git/refs{/sha}","trees_url":"https://api.github.com/repos/bousquet/marshmallow/git/trees{/sha}","statuses_url":"https://api.github.com/repos/bousquet/marshmallow/statuses/{sha}","languages_url":"https://api.github.com/repos/bousquet/marshmallow/languages","stargazers_url":"https://api.github.com/repos/bousquet/marshmallow/stargazers","contributors_url":"https://api.github.com/repos/bousquet/marshmallow/contributors","subscribers_url":"https://api.github.com/repos/bousquet/marshmallow/subscribers","subscription_url":"https://api.github.com/repos/bousquet/marshmallow/subscription","commits_url":"https://api.github.com/repos/bousquet/marshmallow/commits{/sha}","git_commits_url":"https://api.github.com/repos/bousquet/marshmallow/git/commits{/sha}","comments_url":"https://api.github.com/repos/bousquet/marshmallow/comments{/number}","issue_comment_url":"https://api.github.com/repos/bousquet/marshmallow/issues/comments/{number}","contents_url":"https://api.github.com/repos/bousquet/marshmallow/contents/{+path}","compare_url":"https://api.github.com/repos/bousquet/marshmallow/compare/{base}...{head}","merges_url":"https://api.github.com/repos/bousquet/marshmallow/merges","archive_url":"https://api.github.com/repos/bousquet/marshmallow/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/bousquet/marshmallow/downloads","issues_url":"https://api.github.com/repos/bousquet/marshmallow/issues{/number}","pulls_url":"https://api.github.com/repos/bousquet/marshmallow/pulls{/number}","milestones_url":"https://api.github.com/repos/bousquet/marshmallow/milestones{/number}","notifications_url":"https://api.github.com/repos/bousquet/marshmallow/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/bousquet/marshmallow/labels{/name}"},{"id":1630,"name":"tarn","full_name":"jdp/tarn","owner":{"login":"jdp","id":574,"avatar_url":"https://1.gravatar.com/avatar/07b06bbb5ecda29c3744c1be35656247?d=https%3A%2F%2Fidenticons.github.com%2Ff0e52b27a7a5d6a1a87373dffa53dbe5.png","gravatar_id":"07b06bbb5ecda29c3744c1be35656247","url":"https://api.github.com/users/jdp","html_url":"https://github.com/jdp","followers_url":"https://api.github.com/users/jdp/followers","following_url":"https://api.github.com/users/jdp/following{/other_user}","gists_url":"https://api.github.com/users/jdp/gists{/gist_id}","starred_url":"https://api.github.com/users/jdp/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jdp/subscriptions","organizations_url":"https://api.github.com/users/jdp/orgs","repos_url":"https://api.github.com/users/jdp/repos","events_url":"https://api.github.com/users/jdp/events{/privacy}","received_events_url":"https://api.github.com/users/jdp/received_events","type":"User"},"private":false,"html_url":"https://github.com/jdp/tarn","description":"A completely Lua-scriptable roguelike engine","fork":false,"url":"https://api.github.com/repos/jdp/tarn","forks_url":"https://api.github.com/repos/jdp/tarn/forks","keys_url":"https://api.github.com/repos/jdp/tarn/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jdp/tarn/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jdp/tarn/teams","hooks_url":"https://api.github.com/repos/jdp/tarn/hooks","issue_events_url":"https://api.github.com/repos/jdp/tarn/issues/events{/number}","events_url":"https://api.github.com/repos/jdp/tarn/events","assignees_url":"https://api.github.com/repos/jdp/tarn/assignees{/user}","branches_url":"https://api.github.com/repos/jdp/tarn/branches{/branch}","tags_url":"https://api.github.com/repos/jdp/tarn/tags","blobs_url":"https://api.github.com/repos/jdp/tarn/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jdp/tarn/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jdp/tarn/git/refs{/sha}","trees_url":"https://api.github.com/repos/jdp/tarn/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jdp/tarn/statuses/{sha}","languages_url":"https://api.github.com/repos/jdp/tarn/languages","stargazers_url":"https://api.github.com/repos/jdp/tarn/stargazers","contributors_url":"https://api.github.com/repos/jdp/tarn/contributors","subscribers_url":"https://api.github.com/repos/jdp/tarn/subscribers","subscription_url":"https://api.github.com/repos/jdp/tarn/subscription","commits_url":"https://api.github.com/repos/jdp/tarn/commits{/sha}","git_commits_url":"https://api.github.com/repos/jdp/tarn/git/commits{/sha}","comments_url":"https://api.github.com/repos/jdp/tarn/comments{/number}","issue_comment_url":"https://api.github.com/repos/jdp/tarn/issues/comments/{number}","contents_url":"https://api.github.com/repos/jdp/tarn/contents/{+path}","compare_url":"https://api.github.com/repos/jdp/tarn/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jdp/tarn/merges","archive_url":"https://api.github.com/repos/jdp/tarn/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jdp/tarn/downloads","issues_url":"https://api.github.com/repos/jdp/tarn/issues{/number}","pulls_url":"https://api.github.com/repos/jdp/tarn/pulls{/number}","milestones_url":"https://api.github.com/repos/jdp/tarn/milestones{/number}","notifications_url":"https://api.github.com/repos/jdp/tarn/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jdp/tarn/labels{/name}"}] + diff --git a/github/tests/ReplayData/Hook.testTest.txt b/github/tests/ReplayData/Hook.testTest.txt index 516f6a64..6f6e2549 100644 --- a/github/tests/ReplayData/Hook.testTest.txt +++ b/github/tests/ReplayData/Hook.testTest.txt @@ -2,7 +2,7 @@ https POST api.github.com None -/repos/jacquev6/PyGithub/hooks/257993/test +/repos/jacquev6/PyGithub/hooks/257993/tests {'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} null 204 diff --git a/github/tests/ReplayData/NamedUser.testHasInFollowing.txt b/github/tests/ReplayData/NamedUser.testHasInFollowing.txt new file mode 100644 index 00000000..08c61a84 --- /dev/null +++ b/github/tests/ReplayData/NamedUser.testHasInFollowing.txt @@ -0,0 +1,22 @@ +https +GET +api.github.com +None +/users/nvie +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4996'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '1218'), ('server', 'GitHub.com'), ('last-modified', 'Wed, 21 Aug 2013 16:26:40 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"8e2b307f8fb4186bfb512febd7215fc8"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Wed, 21 Aug 2013 17:20:44 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377108637')] +{"login":"nvie","id":83844,"avatar_url":"https://2.gravatar.com/avatar/466ef7561a0b100dc5a1021959962d28?d=https%3A%2F%2Fidenticons.github.com%2Fe6d0513ce49cc06cb956251623cb8fd9.png","gravatar_id":"466ef7561a0b100dc5a1021959962d28","url":"https://api.github.com/users/nvie","html_url":"https://github.com/nvie","followers_url":"https://api.github.com/users/nvie/followers","following_url":"https://api.github.com/users/nvie/following{/other_user}","gists_url":"https://api.github.com/users/nvie/gists{/gist_id}","starred_url":"https://api.github.com/users/nvie/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/nvie/subscriptions","organizations_url":"https://api.github.com/users/nvie/orgs","repos_url":"https://api.github.com/users/nvie/repos","events_url":"https://api.github.com/users/nvie/events{/privacy}","received_events_url":"https://api.github.com/users/nvie/received_events","type":"User","name":"Vincent Driessen","company":"3rd Cloud","blog":"http://nvie.com","location":"Netherlands","email":"vincent@3rdcloud.com","hireable":true,"bio":null,"public_repos":86,"followers":530,"following":45,"created_at":"2009-05-12T21:19:38Z","updated_at":"2013-08-21T16:26:40Z","public_gists":38} + +https +GET +api.github.com +None +/users/jacquev6/following/nvie +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +204 +[('status', '204 No Content'), ('x-ratelimit-remaining', '4995'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('access-control-allow-credentials', 'true'), ('date', 'Wed, 21 Aug 2013 17:20:48 GMT'), ('access-control-allow-origin', '*'), ('x-ratelimit-reset', '1377108637')] + + diff --git a/github/tests/ReplayData/Persistence.setUp.txt b/github/tests/ReplayData/Persistence.setUp.txt new file mode 100644 index 00000000..dfc62ba2 --- /dev/null +++ b/github/tests/ReplayData/Persistence.setUp.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repos/akfish/PyGithub +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '13698'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:09:11 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"8600bedcb7fed1d8065e1693e05529ce"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:13:08 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')] +{"id":12156762,"name":"PyGithub","full_name":"akfish/PyGithub","owner":{"login":"akfish","id":922715,"avatar_url":"https://1.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"private":false,"html_url":"https://github.com/akfish/PyGithub","description":"Python library implementing the full Github API v3","fork":true,"url":"https://api.github.com/repos/akfish/PyGithub","forks_url":"https://api.github.com/repos/akfish/PyGithub/forks","keys_url":"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akfish/PyGithub/teams","hooks_url":"https://api.github.com/repos/akfish/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/akfish/PyGithub/events","assignees_url":"https://api.github.com/repos/akfish/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/akfish/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/akfish/PyGithub/tags","blobs_url":"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/akfish/PyGithub/languages","stargazers_url":"https://api.github.com/repos/akfish/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/akfish/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/akfish/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/akfish/PyGithub/subscription","commits_url":"https://api.github.com/repos/akfish/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/akfish/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/akfish/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akfish/PyGithub/merges","archive_url":"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akfish/PyGithub/downloads","issues_url":"https://api.github.com/repos/akfish/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/akfish/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/akfish/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akfish/PyGithub/labels{/name}","created_at":"2013-08-16T10:56:11Z","updated_at":"2013-08-22T02:09:11Z","pushed_at":"2013-08-22T02:09:09Z","git_url":"git://github.com/akfish/PyGithub.git","ssh_url":"git@github.com:akfish/PyGithub.git","clone_url":"https://github.com/akfish/PyGithub.git","svn_url":"https://github.com/akfish/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":6736,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":70,"parent":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"}} + diff --git a/github/tests/ReplayData/Persistence.testLoadAndUpdate.txt b/github/tests/ReplayData/Persistence.testLoadAndUpdate.txt new file mode 100644 index 00000000..b6d8aeec --- /dev/null +++ b/github/tests/ReplayData/Persistence.testLoadAndUpdate.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/repos/akfish/PyGithub +{'If-None-Match': '"8600bedcb7fed1d8065e1693e05529ce"', 'User-Agent': 'PyGithub/Python', 'Authorization': 'Basic login_and_password_removed', 'If-Modified-Since': 'Thu, 22 Aug 2013 02:09:11 GMT'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept, Authorization, Cookie, Accept-Encoding'), ('content-length', '13712'), ('server', 'GitHub.com'), ('last-modified', 'Thu, 22 Aug 2013 02:14:54 GMT'), ('x-ratelimit-limit', '5000'), ('etag', '"ef281ef0e821c18f80da36902727160b"'), ('cache-control', 'private, max-age=60, s-maxage=60'), ('date', 'Thu, 22 Aug 2013 02:15:01 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1377140429')] +{"id":12156762,"name":"PyGithub","full_name":"akfish/PyGithub","owner":{"login":"akfish","id":922715,"avatar_url":"https://0.gravatar.com/avatar/12a1b44d4e5c19cee59618084602b112?d=https%3A%2F%2Fidenticons.github.com%2F6eb90fb68a77fb5a5a997c6264bedf35.png","gravatar_id":"12a1b44d4e5c19cee59618084602b112","url":"https://api.github.com/users/akfish","html_url":"https://github.com/akfish","followers_url":"https://api.github.com/users/akfish/followers","following_url":"https://api.github.com/users/akfish/following{/other_user}","gists_url":"https://api.github.com/users/akfish/gists{/gist_id}","starred_url":"https://api.github.com/users/akfish/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/akfish/subscriptions","organizations_url":"https://api.github.com/users/akfish/orgs","repos_url":"https://api.github.com/users/akfish/repos","events_url":"https://api.github.com/users/akfish/events{/privacy}","received_events_url":"https://api.github.com/users/akfish/received_events","type":"User"},"private":false,"html_url":"https://github.com/akfish/PyGithub","description":"Python library implementing the full Github API v3 - AKFish Fork","fork":true,"url":"https://api.github.com/repos/akfish/PyGithub","forks_url":"https://api.github.com/repos/akfish/PyGithub/forks","keys_url":"https://api.github.com/repos/akfish/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/akfish/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/akfish/PyGithub/teams","hooks_url":"https://api.github.com/repos/akfish/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/akfish/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/akfish/PyGithub/events","assignees_url":"https://api.github.com/repos/akfish/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/akfish/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/akfish/PyGithub/tags","blobs_url":"https://api.github.com/repos/akfish/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/akfish/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/akfish/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/akfish/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/akfish/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/akfish/PyGithub/languages","stargazers_url":"https://api.github.com/repos/akfish/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/akfish/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/akfish/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/akfish/PyGithub/subscription","commits_url":"https://api.github.com/repos/akfish/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/akfish/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/akfish/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/akfish/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/akfish/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/akfish/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/akfish/PyGithub/merges","archive_url":"https://api.github.com/repos/akfish/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/akfish/PyGithub/downloads","issues_url":"https://api.github.com/repos/akfish/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/akfish/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/akfish/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/akfish/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/akfish/PyGithub/labels{/name}","created_at":"2013-08-16T10:56:11Z","updated_at":"2013-08-22T02:14:54Z","pushed_at":"2013-08-22T02:09:09Z","git_url":"git://github.com/akfish/PyGithub.git","ssh_url":"git@github.com:akfish/PyGithub.git","clone_url":"https://github.com/akfish/PyGithub.git","svn_url":"https://github.com/akfish/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":6736,"watchers_count":0,"language":"Python","has_issues":false,"has_downloads":true,"has_wiki":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"master_branch":"master","default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"network_count":70,"parent":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"},"source":{"id":3544490,"name":"PyGithub","full_name":"jacquev6/PyGithub","owner":{"login":"jacquev6","id":327146,"avatar_url":"https://0.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https%3A%2F%2Fidenticons.github.com%2Ffadfb5f7088ef66579d198a3c9a4935e.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","url":"https://api.github.com/users/jacquev6","html_url":"https://github.com/jacquev6","followers_url":"https://api.github.com/users/jacquev6/followers","following_url":"https://api.github.com/users/jacquev6/following{/other_user}","gists_url":"https://api.github.com/users/jacquev6/gists{/gist_id}","starred_url":"https://api.github.com/users/jacquev6/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacquev6/subscriptions","organizations_url":"https://api.github.com/users/jacquev6/orgs","repos_url":"https://api.github.com/users/jacquev6/repos","events_url":"https://api.github.com/users/jacquev6/events{/privacy}","received_events_url":"https://api.github.com/users/jacquev6/received_events","type":"User"},"private":false,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library implementing the full Github API v3","fork":false,"url":"https://api.github.com/repos/jacquev6/PyGithub","forks_url":"https://api.github.com/repos/jacquev6/PyGithub/forks","keys_url":"https://api.github.com/repos/jacquev6/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacquev6/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacquev6/PyGithub/teams","hooks_url":"https://api.github.com/repos/jacquev6/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/jacquev6/PyGithub/events","assignees_url":"https://api.github.com/repos/jacquev6/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/jacquev6/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/jacquev6/PyGithub/tags","blobs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacquev6/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacquev6/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacquev6/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/jacquev6/PyGithub/languages","stargazers_url":"https://api.github.com/repos/jacquev6/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/jacquev6/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/jacquev6/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/jacquev6/PyGithub/subscription","commits_url":"https://api.github.com/repos/jacquev6/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacquev6/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/{number}","contents_url":"https://api.github.com/repos/jacquev6/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/jacquev6/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacquev6/PyGithub/merges","archive_url":"https://api.github.com/repos/jacquev6/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacquev6/PyGithub/downloads","issues_url":"https://api.github.com/repos/jacquev6/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/jacquev6/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/jacquev6/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/jacquev6/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacquev6/PyGithub/labels{/name}","created_at":"2012-02-25T12:53:47Z","updated_at":"2013-08-21T20:32:08Z","pushed_at":"2013-08-21T20:31:45Z","git_url":"git://github.com/jacquev6/PyGithub.git","ssh_url":"git@github.com:jacquev6/PyGithub.git","clone_url":"https://github.com/jacquev6/PyGithub.git","svn_url":"https://github.com/jacquev6/PyGithub","homepage":"http://jacquev6.github.com/PyGithub","size":7437,"watchers_count":248,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"forks_count":70,"mirror_url":null,"open_issues_count":17,"forks":70,"open_issues":17,"watchers":248,"master_branch":"master","default_branch":"master"}} + diff --git a/github/tests/ReplayData/RateLimiting.testGetRateLimit.txt b/github/tests/ReplayData/RateLimiting.testGetRateLimit.txt new file mode 100644 index 00000000..8807677f --- /dev/null +++ b/github/tests/ReplayData/RateLimiting.testGetRateLimit.txt @@ -0,0 +1,11 @@ +https +GET +api.github.com +None +/rate_limit +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '5000'), ('x-github-media-type', 'github.beta; format=json'), ('x-content-type-options', 'nosniff'), ('access-control-expose-headers', 'ETag, Link, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes'), ('x-github-request-id', '1a3fa558-6663-4055-91e3-b6824f5f850e'), ('access-control-allow-credentials', 'true'), ('vary', 'Accept-Encoding'), ('content-length', '59'), ('server', 'GitHub.com'), ('x-ratelimit-limit', '5000'), ('cache-control', 'no-cache'), ('date', 'Fri, 06 Sep 2013 09:29:57 GMT'), ('access-control-allow-origin', '*'), ('content-type', 'application/json; charset=utf-8'), ('x-ratelimit-reset', '1378463397')] +{"rate":{"limit":5000,"remaining":5000,"reset":1378463397}} + diff --git a/github/tests/ReplayData/Status.testGetLastMessage.txt b/github/tests/ReplayData/Status.testGetLastMessage.txt new file mode 100644 index 00000000..3d4b27e8 --- /dev/null +++ b/github/tests/ReplayData/Status.testGetLastMessage.txt @@ -0,0 +1,11 @@ +https +GET +status.github.com +443 +/api/last-message.json +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('content-length', '93'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Fri, 06 Sep 2013 08:34:01 GMT'), ('content-type', 'application/json;charset=utf-8')] +{"status":"good","body":"Everything operating normally.","created_on":"2013-09-01T15:41:46Z"} + diff --git a/github/tests/ReplayData/Status.testGetMessages.txt b/github/tests/ReplayData/Status.testGetMessages.txt new file mode 100644 index 00000000..6c79412a --- /dev/null +++ b/github/tests/ReplayData/Status.testGetMessages.txt @@ -0,0 +1,11 @@ +https +GET +status.github.com +443 +/api/messages.json +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('content-length', '1492'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Fri, 06 Sep 2013 08:41:31 GMT'), ('content-type', 'application/json;charset=utf-8')] +[{"status":"good","body":"Everything operating normally.","created_on":"2013-09-01T15:41:46Z"},{"status":"minor","body":"GitHub Pages are currently unavailable. We're investigating the problem.","created_on":"2013-09-01T15:26:59Z"},{"status":"good","body":"Everything operating normally.","created_on":"2013-09-01T15:17:24Z"},{"status":"minor","body":"We are investigating an increased rate of errors on GitHub.com","created_on":"2013-09-01T15:14:24Z"},{"status":"good","body":"Everything operating normally.","created_on":"2013-09-01T06:52:46Z"},{"status":"minor","body":"Some GitHub pages are again unavailable. We are continuing to investigate.","created_on":"2013-09-01T06:50:31Z"},{"status":"good","body":"Everything operating normally.","created_on":"2013-09-01T06:47:25Z"},{"status":"minor","body":"Some GitHub pages are temporarily unavailable.","created_on":"2013-09-01T06:43:03Z"},{"status":"good","body":"We're back up, now featuring a massively upgraded DB cluster with SSDs and 10Gbps networking! Thanks for your patience.","created_on":"2013-08-31T12:13:04Z"},{"status":"major","body":"We're beginning our scheduled maintenance now, and expect to be back up in 20 minutes. https://github.com/blog/1603-site-maintenance-august-31st-2013","created_on":"2013-08-31T12:00:13Z"},{"status":"good","body":"Everything operating normally.","created_on":"2013-08-31T11:45:50Z"},{"status":"minor","body":"We are investigating issues with GitHub Pages","created_on":"2013-08-31T11:43:39Z"}] + diff --git a/github/tests/ReplayData/Status.testGetStatus.txt b/github/tests/ReplayData/Status.testGetStatus.txt new file mode 100644 index 00000000..e01aec02 --- /dev/null +++ b/github/tests/ReplayData/Status.testGetStatus.txt @@ -0,0 +1,11 @@ +https +GET +status.github.com +443 +/api/status.json +{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'} +null +200 +[('status', '200 OK'), ('content-length', '55'), ('vary', 'Accept-Encoding'), ('server', 'GitHub.com'), ('connection', 'keep-alive'), ('date', 'Fri, 06 Sep 2013 08:29:36 GMT'), ('content-type', 'application/json;charset=utf-8')] +{"status":"good","last_updated":"2013-09-06T08:29:27Z"} + diff --git a/github/tests/Status.py b/github/tests/Status.py new file mode 100644 index 00000000..0bb3c935 --- /dev/null +++ b/github/tests/Status.py @@ -0,0 +1,43 @@ +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import Framework + +import github +import datetime + + +class Status(Framework.TestCase): + def testGetStatus(self): + status = self.g.get_api_status() + self.assertEqual(status.status, "good") + self.assertEqual(status.last_updated, datetime.datetime(2013, 9, 6, 8, 29, 27)) + + def testGetLastMessage(self): + message = self.g.get_last_api_status_message() + self.assertEqual(message.status, "good") + self.assertEqual(message.body, "Everything operating normally.") + self.assertEqual(message.created_on, datetime.datetime(2013, 9, 1, 15, 41, 46)) + + def testGetMessages(self): + self.assertListKeyEqual(self.g.get_api_status_messages(), lambda m: m.status, ["good", "minor", "good", "minor", "good", "minor", "good", "minor", "good", "major", "good", "minor"]) diff --git a/scripts/add_attribute.py b/scripts/add_attribute.py new file mode 100644 index 00000000..af60a6ac --- /dev/null +++ b/scripts/add_attribute.py @@ -0,0 +1,119 @@ +#!/usr/bin/env python +# -*- coding: utf-8 -*- + +############################ Copyrights and license ############################ +# # +# Copyright 2013 Vincent Jacques # +# # +# This file is part of PyGithub. http://jacquev6.github.com/PyGithub/ # +# # +# PyGithub is free software: you can redistribute it and/or modify it under # +# the terms of the GNU Lesser General Public License as published by the Free # +# Software Foundation, either version 3 of the License, or (at your option) # +# any later version. # +# # +# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY # +# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS # +# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more # +# details. # +# # +# You should have received a copy of the GNU Lesser General Public License # +# along with PyGithub. If not, see . # +# # +################################################################################ + +import sys +import os.path + +# This script is unable to add an attribute after all the existing ones +# but, well, I'll do it manually in that case. + +className, attributeName, attributeType = sys.argv[1:] + + +types = { + "string": ("string", "(str, unicode)", "attributes[\"" + attributeName + "\"]"), + "int": ("integer", "(int, long)", "attributes[\"" + attributeName + "\"]"), + "bool": ("bool", "bool", "attributes[\"" + attributeName + "\"]"), + "datetime": ("datetime.datetime", "(str, unicode)", "self._parseDatetime(attributes[\"" + attributeName + "\"])"), +} + +attributeDocType, attributeAssertType, attributeValue = types[attributeType] + + +fileName = os.path.join("github", className + ".py") + +with open(fileName) as f: + lines = list(f) + +newLines = [] + +i = 0 + +added = False + +isProperty = False +while not added: + line = lines[i].rstrip() + i += 1 + if line == " @property": + isProperty = True + if line.startswith(" def "): + if isProperty: + attrName = line[8:-7] + if attrName != "_identity" and attrName > attributeName: + newLines.append(" def " + attributeName + "(self):") + newLines.append(" \"\"\"") + newLines.append(" :type: " + attributeDocType) + newLines.append(" \"\"\"") + newLines.append(" self._completeIfNotSet(self._" + attributeName + ")") + newLines.append(" return self._NoneIfNotSet(self._" + attributeName + ")") + newLines.append("") + newLines.append(" @property") + added = True + isProperty = False + newLines.append(line) + +added = False + +inInit = False +while not added: + line = lines[i].rstrip() + i += 1 + if line == " def _initAttributes(self):": + inInit = True + if inInit: + if line.endswith(" = github.GithubObject.NotSet"): + attrName = line[14:-29] + if attrName > attributeName: + newLines.append(" self._" + attributeName + " = github.GithubObject.NotSet") + added = True + newLines.append(line) + +added = False + +inUse = False +while not added: + line = lines[i].rstrip() + i += 1 + if line == " def _useAttributes(self, attributes):": + inUse = True + if inUse: + if line.endswith(" in attributes: # pragma no branch"): + attrName = line[12:-36] + if attrName > attributeName: + newLines.append(" if \"" + attributeName + "\" in attributes: # pragma no branch") + newLines.append(" assert attributes[\"" + attributeName + "\"] is None or isinstance(attributes[\"" + attributeName + "\"], " + attributeAssertType + "), attributes[\"" + attributeName + "\"]") + newLines.append(" self._" + attributeName + " = " + attributeValue) + added = True + newLines.append(line) + + +while i < len(lines): + line = lines[i].rstrip() + i += 1 + newLines.append(line) + +with open(fileName, "wb") as f: + for line in newLines: + f.write(line + "\n") diff --git a/scripts/compare_to_api_ref_doc.py b/scripts/compare_to_api_ref_doc.py index a4c795c1..05c10448 100755 --- a/scripts/compare_to_api_ref_doc.py +++ b/scripts/compare_to_api_ref_doc.py @@ -41,6 +41,9 @@ def parseReference(): undocumentedUrls = [ ("/hooks", "GET"), # Mentioned somewhere ("/hub", "POST"), # Described in content/v3/repos/hooks.md + ("/api/status.json", "GET"), # https://status.github.com/api + ("/api/last-message.json", "GET"), # https://status.github.com/api + ("/api/messages.json", "GET"), # https://status.github.com/api ] uninterestingUrls = [ ("/markdown/raw", "POST"), # Job is done by /markdown => useless in PyGithub @@ -74,7 +77,7 @@ def parseReference(): urls[url] = docUrl for url in undocumentedUrls: - urls[url] = "http://developer.github.com/" + urls[url] = None for url in uninterestingUrls: del urls[url] @@ -112,7 +115,7 @@ def main(): printUrls("called by PyGithub but not existing in Github API v3", set(lib) - set(ref)) for key in set(lib) & set(ref): (url, verb) = key - if lib[key] != ref[key]: + if ref[key] is not None and lib[key] != ref[key] and not lib[key].startswith(ref[key] + "/#"): print "sed -i \"s@:calls: ." + verb + " " + url + " ." + lib[key] + ".._" + "@:calls: \\`" + verb + " " + url + " \\<" + ref[key] + "\\>\\`_@\" github/*.py" diff --git a/scripts/fix_headers.py b/scripts/fix_headers.py index d578acd4..3439c6f1 100755 --- a/scripts/fix_headers.py +++ b/scripts/fix_headers.py @@ -132,6 +132,8 @@ def findHeadersAndFiles(): dirs.remove(".git") if "developer.github.com" in dirs: dirs.remove("developer.github.com") + if "build" in dirs: + dirs.remove("build") for filename in files: fullname = os.path.join(root, filename)