diff --git a/test/Framework.py b/test/Framework.py index c55e64bc..aa27e00d 100644 --- a/test/Framework.py +++ b/test/Framework.py @@ -3,6 +3,7 @@ import sys import unittest import httplib import traceback +import itertools sys.path = [ os.path.join( os.path.dirname( __file__ ), "..", "src" ) ] + sys.path import github @@ -118,6 +119,14 @@ class BasicTestCase( unittest.TestCase ): self.assertEqual( self.__file.readline(), "" ) self.__file.close() + def assertListKeyEqual( self, elements, key, expectedKeys ): + for element, expectedKey in itertools.izip_longest( elements, expectedKeys ): + self.assertEqual( key( element ), expectedKey ) + + def assertListKeyBegin( self, elements, key, expectedKeys ): + for element, expectedKey in itertools.izip( elements, expectedKeys ): + self.assertEqual( key( element ), expectedKey ) + class TestCase( BasicTestCase ): def setUp( self ): BasicTestCase.setUp( self ) diff --git a/test/NamedUser.py b/test/NamedUser.py index b0d55697..7eb36c01 100644 --- a/test/NamedUser.py +++ b/test/NamedUser.py @@ -66,90 +66,36 @@ class NamedUser( Framework.TestCase ): def testCreateGist( self ): gist = self.user.create_gist( True, { "foobar.txt": { "content": "File created by PyGithub" } }, "Gist created by PyGithub on a NamedUser" ) self.assertEqual( gist.description, "Gist created by PyGithub on a NamedUser" ) - gist.delete() def testGetGists( self ): - gist = self.user.get_gists()[ 0 ] - self.assertEqual( gist.description, "Gist created by PyGithub" ) + self.assertListKeyEqual( self.user.get_gists(), lambda g: g.description, [ "Gist created by PyGithub", "FairThreadPoolPool.cpp", "How to error 500 Github API v3, as requested by Rick (GitHub Staff)", "Cadfael: order of episodes in French DVD edition" ] ) - def testFollowing( self ): - follower = self.user.get_followers()[ 0 ] - self.assertEqual( follower.login, "jnorthrup" ) - followed = self.user.get_following()[ 0 ] - self.assertEqual( followed.login, "nvie" ) + def testGetFollowers( self ): + self.assertListKeyEqual( self.user.get_followers(), lambda f: f.login, [ "jnorthrup", "brugidou", "regisb", "walidk", "afzalkhan", "sdanzan", "vineus", "gturri", "fjardon", "cjuniet", "jardon-u", "kamaradclimber", "L42y" ] ) - def testEvents( self ): - event = self.user.get_events()[ 0 ] - self.assertEqual( event.actor.login, "jacquev6" ) - self.assertEqual( event.commit_id, None ) - self.assertEqual( event.created_at, "2012-05-20T12:14:09Z" ) - self.assertEqual( event.event, None ) - self.assertEqual( event.id, "1553915048" ) - self.assertEqual( event.issue, None ) - self.assertEqual( event.org, None ) - self.assertEqual( event.payload, {u'action': u'create', u'gist': {u'files': {}, u'description': u'Gist created by PyGithub on a NamedUser', u'url': u'https://api.github.com/gists/2757859', u'created_at': u'2012-05-20T12:14:08Z', u'updated_at': u'2012-05-20T12:14:08Z', u'comments': 0, u'id': u'2757859', u'html_url': u'https://gist.github.com/2757859', u'user': {u'url': u'https://api.github.com/users/jacquev6', u'login': u'jacquev6', u'avatar_url': u'https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png', u'id': 327146, u'gravatar_id': u'b68de5ae38616c296fa345d2b9df2225'}, u'git_pull_url': u'git://gist.github.com/2757859.git', u'git_push_url': u'git@gist.github.com:2757859.git', u'public': True}} ) ### @todo - self.assertEqual( event.public, True ) - self.assertEqual( event.repo.name, "/" ) # WTF - self.assertEqual( event.type, "GistEvent" ) - self.assertEqual( event.url, None ) + 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 testOrganizations( self ): - org = self.user.get_orgs()[ 0 ] - self.assertEqual( org.login, "BeaverSoftware" ) - - def testPublicEvents( self ): - event = self.user.get_public_events()[ 0 ] - self.assertEqual( event.actor.login, "jacquev6" ) - self.assertEqual( event.commit_id, None ) - self.assertEqual( event.created_at, "2012-05-20T12:14:09Z" ) - self.assertEqual( event.event, None ) - self.assertEqual( event.id, "1553915048" ) - self.assertEqual( event.issue, None ) - self.assertEqual( event.org, None ) - self.assertEqual( event.payload, {u'action': u'create', u'gist': {u'files': {}, u'description': u'Gist created by PyGithub on a NamedUser', u'url': u'https://api.github.com/gists/2757859', u'created_at': u'2012-05-20T12:14:08Z', u'updated_at': u'2012-05-20T12:14:08Z', u'comments': 0, u'id': u'2757859', u'html_url': u'https://gist.github.com/2757859', u'user': {u'url': u'https://api.github.com/users/jacquev6', u'login': u'jacquev6', u'avatar_url': u'https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png', u'id': 327146, u'gravatar_id': u'b68de5ae38616c296fa345d2b9df2225'}, u'git_pull_url': u'git://gist.github.com/2757859.git', u'git_push_url': u'git@gist.github.com:2757859.git', u'public': True}} ) ### @todo - self.assertEqual( event.public, True ) - self.assertEqual( event.repo.name, "/" ) # WTF - self.assertEqual( event.type, "GistEvent" ) - self.assertEqual( event.url, None ) - - def testPublicReceivedEvents( self ): - event = self.user.get_public_received_events()[ 0 ] - self.assertEqual( event.actor.login, "cherryboss" ) - self.assertEqual( event.commit_id, None ) - self.assertEqual( event.created_at, "2012-05-20T12:29:18Z" ) - self.assertEqual( event.event, None ) - self.assertEqual( event.id, "1553916447" ) - self.assertEqual( event.issue, None ) - self.assertEqual( event.org.login, "github" ) - self.assertEqual( event.payload, {u'comment': {u'body': u'+1', u'url': u'https://api.github.com/repos/github/markup/issues/comments/5808535', u'created_at': u'2012-05-20T12:29:17Z', u'updated_at': u'2012-05-20T12:29:17Z', u'user': {u'url': u'https://api.github.com/users/cherryboss', u'login': u'cherryboss', u'avatar_url': u'https://secure.gravatar.com/avatar/b3cb2e7b64cad46d1cd6e5d3294c12cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png', u'id': 1078894, u'gravatar_id': u'b3cb2e7b64cad46d1cd6e5d3294c12cc'}, u'id': 5808535}, u'action': u'created', u'issue': {u'body': u"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy", u'labels': [], u'title': u'[new markup] Texy! formatter support', u'url': u'https://api.github.com/repos/github/markup/issues/34', u'created_at': u'2011-01-21T16:04:58Z', u'milestone': None, u'number': 34, u'comments': 23, u'updated_at': u'2012-05-20T12:29:17Z', u'assignee': None, u'html_url': u'https://github.com/github/markup/issues/34', u'state': u'open', u'user': {u'url': u'https://api.github.com/users/smasty', u'login': u'smasty', u'avatar_url': u'https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png', u'id': 218524, u'gravatar_id': u'c27f2f0deb68f04a58db7b7254df893b'}, u'pull_request': {u'diff_url': u'https://github.com/github/markup/pull/34.diff', u'patch_url': u'https://github.com/github/markup/pull/34.patch', u'html_url': u'https://github.com/github/markup/pull/34'}, u'closed_at': None, u'id': 541804}} ) ### @todo - self.assertEqual( event.public, True ) - self.assertEqual( event.repo.name, "github/markup" ) # WTF - self.assertEqual( event.type, "IssueCommentEvent" ) - self.assertEqual( event.url, None ) - - def testReceivedEvents( self ): - event = self.user.get_received_events()[ 0 ] - self.assertEqual( event.actor.login, "cherryboss" ) - self.assertEqual( event.commit_id, None ) - self.assertEqual( event.created_at, "2012-05-20T12:29:18Z" ) - self.assertEqual( event.event, None ) - self.assertEqual( event.id, "1553916447" ) - self.assertEqual( event.issue, None ) - self.assertEqual( event.org.login, "github" ) - self.assertEqual( event.payload, {u'comment': {u'body': u'+1', u'url': u'https://api.github.com/repos/github/markup/issues/comments/5808535', u'created_at': u'2012-05-20T12:29:17Z', u'updated_at': u'2012-05-20T12:29:17Z', u'user': {u'url': u'https://api.github.com/users/cherryboss', u'login': u'cherryboss', u'avatar_url': u'https://secure.gravatar.com/avatar/b3cb2e7b64cad46d1cd6e5d3294c12cc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png', u'id': 1078894, u'gravatar_id': u'b3cb2e7b64cad46d1cd6e5d3294c12cc'}, u'id': 5808535}, u'action': u'created', u'issue': {u'body': u"Hello, I've created support for great Texy! text-to-HTML formatter and converter library (http://texy.info, http://github.com/dg/texy).\r\n\r\nHere's my implementation branch: https://github.com/smasty/markup/tree/texy", u'labels': [], u'title': u'[new markup] Texy! formatter support', u'url': u'https://api.github.com/repos/github/markup/issues/34', u'created_at': u'2011-01-21T16:04:58Z', u'milestone': None, u'number': 34, u'comments': 23, u'updated_at': u'2012-05-20T12:29:17Z', u'assignee': None, u'html_url': u'https://github.com/github/markup/issues/34', u'state': u'open', u'user': {u'url': u'https://api.github.com/users/smasty', u'login': u'smasty', u'avatar_url': u'https://secure.gravatar.com/avatar/c27f2f0deb68f04a58db7b7254df893b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png', u'id': 218524, u'gravatar_id': u'c27f2f0deb68f04a58db7b7254df893b'}, u'pull_request': {u'diff_url': u'https://github.com/github/markup/pull/34.diff', u'patch_url': u'https://github.com/github/markup/pull/34.patch', u'html_url': u'https://github.com/github/markup/pull/34'}, u'closed_at': None, u'id': 541804}} ) ### @todo - self.assertEqual( event.public, True ) - self.assertEqual( event.repo.name, "github/markup" ) # WTF - self.assertEqual( event.type, "IssueCommentEvent" ) - self.assertEqual( event.url, None ) + def testGetOrgs( self ): + self.assertListKeyEqual( self.user.get_orgs(), lambda o: o.login, [ "BeaverSoftware" ] ) def testGetRepo( self ): - repo = self.user.get_repo( "PyGithub" ) - self.assertEqual( repo.description, "Python library implementing the full Github API v3" ) + self.assertEqual( self.user.get_repo( "PyGithub" ).description, "Python library implementing the full Github API v3" ) def testGetRepos( self ): - repo = self.user.get_repos()[ 0 ] - self.assertEqual( repo.name, "TestPyGithub" ) + self.assertListKeyEqual( self.user.get_repos(), lambda r: r.name, [ "TestPyGithub", "django", "PyGithub", "developer.github.com", "acme-public-website", "C4Planner", "DrawTurksHead", "DrawSyntax", "QuadProgMm", "Boost.HierarchicalEnum", "ViDE" ] ) def testGetWatched( self ): - repo = self.user.get_watched()[ 0 ] - self.assertEqual( repo.name, "git" ) + self.assertListKeyEqual( self.user.get_watched(), lambda r: r.name, [ "git", "boost.php", "capistrano", "boost.perl", "git-subtree", "git-hg", "homebrew", "celtic_knot", "twisted-intro", "markup", "hub", "gitflow", "murder", "boto", "agit", "d3", "pygit2", "git-pulls", "django_mathlatex", "scrumblr", "developer.github.com", "python-github3", "PlantUML", "bootstrap", "drawnby", "django-socketio", "django-realtime", "playground", "BozoCrack", "FatherBeaver", "PyGithub", "django", "django", "TestPyGithub" ] ) + + def testGetEvents( self ): + self.assertListKeyBegin( self.user.get_events(), lambda e: e.type, [ "GistEvent", "IssueCommentEvent", "PushEvent", "IssuesEvent" ] ) + + def testGetPublicEvents( self ): + self.assertListKeyBegin( self.user.get_public_events(), lambda e: e.type, [ "PushEvent", "CreateEvent", "GistEvent", "IssuesEvent" ] ) + + def testGetPublicReceivedEvents( self ): + self.assertListKeyBegin( self.user.get_public_received_events(), lambda e: e.type, [ "IssueCommentEvent", "IssueCommentEvent", "IssueCommentEvent", "IssueCommentEvent" ] ) + + def testGetReceivedEvents( self ): + self.assertListKeyBegin( self.user.get_received_events(), lambda e: e.type, [ "IssueCommentEvent", "IssueCommentEvent", "IssueCommentEvent", "IssueCommentEvent" ] ) diff --git a/test/ReplayData/NamedUser.testCreateGist.txt b/test/ReplayData/NamedUser.testCreateGist.txt index 25d9d3a8..6dc18e43 100644 --- a/test/ReplayData/NamedUser.testCreateGist.txt +++ b/test/ReplayData/NamedUser.testCreateGist.txt @@ -3,8 +3,3 @@ POST /users/jacquev6/gists {'Authorization': 'Basic login_and_password_removed'} [('status', '201 Created'), ('x-ratelimit-remaining', '4961'), ('content-length', '1461'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"a0bf182f5ec61a0c78e9078da61ef220"'), ('date', 'Sun, 20 May 2012 12:14:08 GMT'), ('content-type', 'application/json; charset=utf-8'), ('location', 'https://api.github.com/gists/2757859')] {"updated_at":"2012-05-20T12:14:08Z","forks":[],"url":"https://api.github.com/gists/2757859","comments":0,"public":true,"git_pull_url":"git://gist.github.com/2757859.git","git_push_url":"git@gist.github.com:2757859.git","files":{"foobar.txt":{"type":"text/plain","size":24,"filename":"foobar.txt","raw_url":"https://gist.github.com/raw/2757859/73a1c7f17aa0ad5d7cbb5a8ca033ce47d3d23197/foobar.txt","content":"File created by PyGithub","language":"Text"}},"html_url":"https://gist.github.com/2757859","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146},"description":"Gist created by PyGithub on a NamedUser","created_at":"2012-05-20T12:14:08Z","id":"2757859","history":[{"change_status":{"deletions":0,"additions":1,"total":1},"url":"https://api.github.com/gists/2757859/a371de5450f93699fe3cb0386897abe69cdc967e","committed_at":"2012-05-20T12:14:08Z","version":"a371de5450f93699fe3cb0386897abe69cdc967e","user":{"url":"https://api.github.com/users/jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":327146}}]} -DELETE /gists/2757859 {'Authorization': 'Basic login_and_password_removed'} null -204 -[('status', '204 No Content'), ('x-ratelimit-remaining', '4960'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"d41d8cd98f00b204e9800998ecf8427e"'), ('date', 'Sun, 20 May 2012 12:14:09 GMT')] - - diff --git a/test/ReplayData/NamedUser.testEvents.txt b/test/ReplayData/NamedUser.testGetEvents.txt similarity index 100% rename from test/ReplayData/NamedUser.testEvents.txt rename to test/ReplayData/NamedUser.testGetEvents.txt diff --git a/test/ReplayData/NamedUser.testGetFollowers.txt b/test/ReplayData/NamedUser.testGetFollowers.txt new file mode 100644 index 00000000..735edd4b --- /dev/null +++ b/test/ReplayData/NamedUser.testGetFollowers.txt @@ -0,0 +1,5 @@ +GET /users/jacquev6/followers {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4958'), ('content-length', '3849'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f108ded43b2e23acc383f7eff74ee559"'), ('date', 'Sun, 20 May 2012 12:15:34 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"url":"https://api.github.com/users/jnorthrup","gravatar_id":"29222a2dca6dd4cd33790d72ff3f5346","login":"jnorthrup","avatar_url":"https://secure.gravatar.com/avatar/29222a2dca6dd4cd33790d72ff3f5346?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":73514},{"url":"https://api.github.com/users/brugidou","gravatar_id":"43485eeefd3da3c96a7ea0c7e6b839dc","login":"brugidou","avatar_url":"https://secure.gravatar.com/avatar/43485eeefd3da3c96a7ea0c7e6b839dc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":167633},{"url":"https://api.github.com/users/regisb","gravatar_id":"43d211a7021343f2be236d2b9855b734","login":"regisb","avatar_url":"https://secure.gravatar.com/avatar/43d211a7021343f2be236d2b9855b734?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":44319},{"url":"https://api.github.com/users/walidk","gravatar_id":"e251d20766937949a109603ca37bb3be","login":"walidk","avatar_url":"https://secure.gravatar.com/avatar/e251d20766937949a109603ca37bb3be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":734669},{"url":"https://api.github.com/users/afzalkhan","gravatar_id":"8e85398b116be75d4baeeddfc9c3cce1","login":"afzalkhan","avatar_url":"https://secure.gravatar.com/avatar/8e85398b116be75d4baeeddfc9c3cce1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1003845},{"url":"https://api.github.com/users/sdanzan","gravatar_id":"4a1e187f4f22547534a56966f6d8f942","login":"sdanzan","avatar_url":"https://secure.gravatar.com/avatar/4a1e187f4f22547534a56966f6d8f942?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1094967},{"url":"https://api.github.com/users/vineus","gravatar_id":"2d0c93649b7572036335aed380e351e5","login":"vineus","avatar_url":"https://secure.gravatar.com/avatar/2d0c93649b7572036335aed380e351e5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":467126},{"url":"https://api.github.com/users/gturri","gravatar_id":"ba064e32f068e12bfc87d178179878a5","login":"gturri","avatar_url":"https://secure.gravatar.com/avatar/ba064e32f068e12bfc87d178179878a5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":308601},{"url":"https://api.github.com/users/fjardon","gravatar_id":"cb044bd9a9f6548b9a9bae44617c97c7","login":"fjardon","avatar_url":"https://secure.gravatar.com/avatar/cb044bd9a9f6548b9a9bae44617c97c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":121402},{"url":"https://api.github.com/users/cjuniet","gravatar_id":"197eed5292fd11c0277335c3524ccfd5","login":"cjuniet","avatar_url":"https://secure.gravatar.com/avatar/197eed5292fd11c0277335c3524ccfd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1233553},{"url":"https://api.github.com/users/jardon-u","gravatar_id":"1b4be24fa7e62eb508ca448da99e43d4","login":"jardon-u","avatar_url":"https://secure.gravatar.com/avatar/1b4be24fa7e62eb508ca448da99e43d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":994192},{"url":"https://api.github.com/users/kamaradclimber","gravatar_id":"0c43eba4a99f65e071e66e684cea8177","login":"kamaradclimber","avatar_url":"https://secure.gravatar.com/avatar/0c43eba4a99f65e071e66e684cea8177?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":503537},{"url":"https://api.github.com/users/L42y","gravatar_id":"4dc11d87759273f3466ab4f673bcecae","login":"L42y","avatar_url":"https://secure.gravatar.com/avatar/4dc11d87759273f3466ab4f673bcecae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":284820}] + diff --git a/test/ReplayData/NamedUser.testFollowing.txt b/test/ReplayData/NamedUser.testGetFollowing.txt similarity index 63% rename from test/ReplayData/NamedUser.testFollowing.txt rename to test/ReplayData/NamedUser.testGetFollowing.txt index ada15c24..a40eaf37 100644 --- a/test/ReplayData/NamedUser.testFollowing.txt +++ b/test/ReplayData/NamedUser.testGetFollowing.txt @@ -1,8 +1,3 @@ -GET /users/jacquev6/followers {'Authorization': 'Basic login_and_password_removed'} null -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4958'), ('content-length', '3849'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f108ded43b2e23acc383f7eff74ee559"'), ('date', 'Sun, 20 May 2012 12:15:34 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"url":"https://api.github.com/users/jnorthrup","gravatar_id":"29222a2dca6dd4cd33790d72ff3f5346","login":"jnorthrup","avatar_url":"https://secure.gravatar.com/avatar/29222a2dca6dd4cd33790d72ff3f5346?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":73514},{"url":"https://api.github.com/users/brugidou","gravatar_id":"43485eeefd3da3c96a7ea0c7e6b839dc","login":"brugidou","avatar_url":"https://secure.gravatar.com/avatar/43485eeefd3da3c96a7ea0c7e6b839dc?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":167633},{"url":"https://api.github.com/users/regisb","gravatar_id":"43d211a7021343f2be236d2b9855b734","login":"regisb","avatar_url":"https://secure.gravatar.com/avatar/43d211a7021343f2be236d2b9855b734?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":44319},{"url":"https://api.github.com/users/walidk","gravatar_id":"e251d20766937949a109603ca37bb3be","login":"walidk","avatar_url":"https://secure.gravatar.com/avatar/e251d20766937949a109603ca37bb3be?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":734669},{"url":"https://api.github.com/users/afzalkhan","gravatar_id":"8e85398b116be75d4baeeddfc9c3cce1","login":"afzalkhan","avatar_url":"https://secure.gravatar.com/avatar/8e85398b116be75d4baeeddfc9c3cce1?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1003845},{"url":"https://api.github.com/users/sdanzan","gravatar_id":"4a1e187f4f22547534a56966f6d8f942","login":"sdanzan","avatar_url":"https://secure.gravatar.com/avatar/4a1e187f4f22547534a56966f6d8f942?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1094967},{"url":"https://api.github.com/users/vineus","gravatar_id":"2d0c93649b7572036335aed380e351e5","login":"vineus","avatar_url":"https://secure.gravatar.com/avatar/2d0c93649b7572036335aed380e351e5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":467126},{"url":"https://api.github.com/users/gturri","gravatar_id":"ba064e32f068e12bfc87d178179878a5","login":"gturri","avatar_url":"https://secure.gravatar.com/avatar/ba064e32f068e12bfc87d178179878a5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":308601},{"url":"https://api.github.com/users/fjardon","gravatar_id":"cb044bd9a9f6548b9a9bae44617c97c7","login":"fjardon","avatar_url":"https://secure.gravatar.com/avatar/cb044bd9a9f6548b9a9bae44617c97c7?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":121402},{"url":"https://api.github.com/users/cjuniet","gravatar_id":"197eed5292fd11c0277335c3524ccfd5","login":"cjuniet","avatar_url":"https://secure.gravatar.com/avatar/197eed5292fd11c0277335c3524ccfd5?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1233553},{"url":"https://api.github.com/users/jardon-u","gravatar_id":"1b4be24fa7e62eb508ca448da99e43d4","login":"jardon-u","avatar_url":"https://secure.gravatar.com/avatar/1b4be24fa7e62eb508ca448da99e43d4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":994192},{"url":"https://api.github.com/users/kamaradclimber","gravatar_id":"0c43eba4a99f65e071e66e684cea8177","login":"kamaradclimber","avatar_url":"https://secure.gravatar.com/avatar/0c43eba4a99f65e071e66e684cea8177?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":503537},{"url":"https://api.github.com/users/L42y","gravatar_id":"4dc11d87759273f3466ab4f673bcecae","login":"L42y","avatar_url":"https://secure.gravatar.com/avatar/4dc11d87759273f3466ab4f673bcecae?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":284820}] - GET /users/jacquev6/following {'Authorization': 'Basic login_and_password_removed'} null 200 [('status', '200 OK'), ('x-ratelimit-remaining', '4957'), ('content-length', '7072'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"83babfd00229c6e016e079e609e6db86"'), ('date', 'Sun, 20 May 2012 12:15:34 GMT'), ('content-type', 'application/json; charset=utf-8')] diff --git a/test/ReplayData/NamedUser.testOrganizations.txt b/test/ReplayData/NamedUser.testGetOrgs.txt similarity index 100% rename from test/ReplayData/NamedUser.testOrganizations.txt rename to test/ReplayData/NamedUser.testGetOrgs.txt diff --git a/test/ReplayData/NamedUser.testGetPublicEvents.txt b/test/ReplayData/NamedUser.testGetPublicEvents.txt new file mode 100644 index 00000000..6c2a6280 --- /dev/null +++ b/test/ReplayData/NamedUser.testGetPublicEvents.txt @@ -0,0 +1,5 @@ +GET /users/jacquev6/events/public {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4965'), ('content-length', '44220'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"c2fc2e5ccf4abdbd7b603c90a9254d37"'), ('date', 'Sat, 26 May 2012 10:48:48 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"type":"PushEvent","payload":{"head":"619eae8d51c5988f0d2889fc767fa677438ba95d","size":11,"push_id":80673538,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":false,"message":"Merge branch 'develop'"},{"sha":"3a3bf4763192ee1234eb0557628133e06f3dfc76","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3a3bf4763192ee1234eb0557628133e06f3dfc76","distinct":true,"message":"Merge branch 'master' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\tgithub/Github.py\n\tgithub/Requester.py"},{"sha":"608f17794664f61693a3dc05e6056fea8fbef0ff","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/608f17794664f61693a3dc05e6056fea8fbef0ff","distinct":true,"message":"Restore some form of Authorization header in replay data"},{"sha":"2c04b8adbd91d38eef4f0767337ab7a12b2f684b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2c04b8adbd91d38eef4f0767337ab7a12b2f684b","distinct":true,"message":"Allow test without pre-set-up Github"},{"sha":"5b97389988b6fe43e15a079702f6f1671257fb28","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5b97389988b6fe43e15a079702f6f1671257fb28","distinct":true,"message":"Test three authentication schemes"},{"sha":"12747613c5ec00deccf296b8619ad507f7050475","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/12747613c5ec00deccf296b8619ad507f7050475","distinct":true,"message":"Test Issue.getComments"},{"sha":"2982fa96c5ca75abe717d974d83f9135d664232e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2982fa96c5ca75abe717d974d83f9135d664232e","distinct":true,"message":"Test the new Repository.full_name attribute"},{"sha":"619eae8d51c5988f0d2889fc767fa677438ba95d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/619eae8d51c5988f0d2889fc767fa677438ba95d","distinct":true,"message":"Improve coverage of AuthenticatedUser"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-26T10:01:39Z","id":"1556114751","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref":null,"ref_type":"repository","description":"Repo created by PyGithub"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/TestPyGithub","id":4454027,"name":"jacquev6/TestPyGithub"},"created_at":"2012-05-26T09:55:27Z","id":"1556114217","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"create","gist":{"created_at":"2012-05-26T09:50:02Z","public":true,"comments":0,"git_push_url":"git@gist.github.com:2793179.git","files":{},"updated_at":"2012-05-26T09:50:02Z","url":"https://api.github.com/gists/2793179","id":"2793179","git_pull_url":"git://gist.github.com/2793179.git","description":null,"user":{"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","id":327146,"login":"jacquev6"},"html_url":"https://gist.github.com/2793179"}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-26T09:50:03Z","id":"1556113740","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","comments":0,"title":"Publish version 0.7","updated_at":"2012-05-25T17:32:32Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/29","id":4752048,"assignee":{"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","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"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","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:32Z","user":{"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","id":327146,"login":"jacquev6"},"labels":[{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"}],"html_url":"https://github.com/jacquev6/PyGithub/issues/29","state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:32:33Z","id":"1555940993","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","comments":1,"title":"Implement all authentication schemes","updated_at":"2012-05-25T17:32:31Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/15","id":3624575,"assignee":{"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","id":327146,"login":"jacquev6"},"milestone":{"number":5,"due_on":"2012-05-26T07:00:00Z","created_at":"2012-05-25T11:47:06Z","title":"Version 0.7","creator":{"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","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","id":124045,"closed_issues":2,"open_issues":0,"description":"","state":"closed"},"closed_at":"2012-05-25T17:32:31Z","labels":[{"name":"Functionalities","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","color":"e102d8"}],"user":{"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","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/15","state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:32:33Z","id":"1555940986","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref_type":"tag","ref":"v0.7","description":"Python library implementing the full Github API v3"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:19:48Z","id":"1555936661","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"DeleteEvent","payload":{"ref_type":"branch","ref":"topic/Authentication"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:19:48Z","id":"1555936660","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","size":4,"push_id":80573368,"ref":"refs/heads/master","commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"},{"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","distinct":true,"message":"Merge branch 'develop'"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:19:48Z","id":"1555936659","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","size":3,"push_id":80573367,"commits":[{"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","distinct":false,"message":"Implement the three authentication schemes"},{"sha":"cb0313157bf904f2d364377d35d9397b269547a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","distinct":false,"message":"Merge branch 'topic/Authentication' into develop"},{"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","distinct":false,"message":"Publish version 0.7"}],"ref":"refs/heads/develop"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T17:19:47Z","id":"1555936657","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref":"topic/Authentication","description":"Python library implementing the full Github API v3","ref_type":"branch"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T12:24:21Z","id":"1555833283","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":29,"created_at":"2012-05-25T11:47:59Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"","title":"Publish version 0.7","comments":0,"updated_at":"2012-05-25T11:47:59Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/29","id":4752048,"assignee":{"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","id":327146,"login":"jacquev6"},"milestone":{"number":5,"created_at":"2012-05-25T11:47:06Z","due_on":"2012-05-26T07:00:00Z","title":"Version 0.7","creator":{"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","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/5","id":124045,"open_issues":2,"closed_issues":0,"description":"","state":"open"},"closed_at":null,"user":{"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","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/29","labels":[{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"}],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T12:02:48Z","id":"1555822981","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-25T06:31:42Z","body":"It means that there will be three ways to create an instance of the Github class:\n github = Github()\n github = Github( login, password )\n github = Github( oauth_token )\n","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5924198","id":5924198,"user":{"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","id":327146,"login":"jacquev6"}},"action":"created","issue":{"number":15,"created_at":"2012-03-13T06:24:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"comments":1,"body":"One would want to use the API without authentication, with login+password, and with OAuth token. Let's cover these use-cases.","title":"Implement all authentication schemes","updated_at":"2012-05-25T06:31:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/15","id":3624575,"assignee":{"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","id":327146,"login":"jacquev6"},"milestone":null,"closed_at":null,"user":{"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","id":327146,"login":"jacquev6"},"labels":[{"name":"Functionalities","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Functionalities","color":"e102d8"}],"html_url":"https://github.com/jacquev6/PyGithub/issues/15","state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T06:31:42Z","id":"1555742639","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-25T06:05:21Z","id":"1555738288","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"527ce7459a2e60d1536883f19b9bc6850d71127b","size":5,"push_id":79877715,"commits":[{"sha":"287bc541542f9d32339e7dd4b36a511cab2ebdae","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/287bc541542f9d32339e7dd4b36a511cab2ebdae","distinct":true,"message":"Generate more coverage information"},{"sha":"588a4a9a355096c00a2bb25f27664d2115e120ac","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/588a4a9a355096c00a2bb25f27664d2115e120ac","distinct":true,"message":"Test AuthenticatedUser watching"},{"sha":"815720f0deb376c34166c27b6e3b73e5c1f5b1a3","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/815720f0deb376c34166c27b6e3b73e5c1f5b1a3","distinct":true,"message":"Test Authorization"},{"sha":"473c92adcd8bbbd32003d9c65666ede66059551b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/473c92adcd8bbbd32003d9c65666ede66059551b","distinct":true,"message":"Test Download and CommitComment"},{"sha":"527ce7459a2e60d1536883f19b9bc6850d71127b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/527ce7459a2e60d1536883f19b9bc6850d71127b","distinct":true,"message":"Merge commit 'c93f9cc8484b7' into topic/RewriteWithGeneratedCode\n\nConflicts:\n\ttest/IntegrationTest.py"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T19:59:48Z","id":"1554729420","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:15:29Z","content_type":"text/plain","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242562","id":242562,"description":null,"html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T19:15:30Z","id":"1554712197","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"Foobar.txt","size":1024,"created_at":"2012-05-22T19:11:49Z","content_type":"text/richtext","download_count":0,"url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242556","id":242556,"description":"Download created by PyGithub","html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T19:11:49Z","id":"1554710791","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"DownloadEvent","payload":{"download":{"name":"Foobar.txt","created_at":"2012-05-22T18:58:32Z","size":1024,"content_type":"text/plain","url":"https://api.github.com/repos/jacquev6/PyGithub/downloads/242550","download_count":0,"id":242550,"description":null,"html_url":"https://github.com/downloads/jacquev6/PyGithub/Foobar.txt"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:58:32Z","id":"1554705673","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":19,"created_at":"2012-05-22T18:53:25Z","line":211,"body":"Foobar","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:53:25Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362020","id":1362020,"path":"src/github/AuthenticatedUser.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362020","user":{"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","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:53:25Z","id":"1554703698","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":3,"created_at":"2012-05-22T18:50:02Z","line":null,"body":"Comment also created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:50:02Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362001","id":1362001,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362001","user":{"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","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:50:02Z","id":"1554702296","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-22T18:49:34Z","line":26,"body":"Comment created by PyGithub","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:49:34Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1362000","id":1362000,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1362000","user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:49:34Z","id":"1554702087","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-22T18:40:18Z","body":"Comment created by PyGithub","line":null,"commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","updated_at":"2012-05-22T18:40:18Z","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1361949","id":1361949,"path":null,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361949","user":{"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","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:40:18Z","id":"1554698320","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-22T18:36:58Z","line":null,"body":"Comment created by PyGithub","updated_at":"2012-05-22T18:36:58Z","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1361928","id":1361928,"path":null,"user":{"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","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1361928"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-22T18:36:58Z","id":"1554697057","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/nvie/gitflow","id":481366,"name":"nvie/gitflow"},"created_at":"2012-05-22T17:15:11Z","id":"1554664316","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"661812b9dd136efdb0e0c413793deb0939146651","size":2,"push_id":79550719,"commits":[{"sha":"c93f9cc8484b7835130689befc89ae88c7e72694","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c93f9cc8484b7835130689befc89ae88c7e72694","distinct":true,"message":"Remove noise in human readable description"},{"sha":"661812b9dd136efdb0e0c413793deb0939146651","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/661812b9dd136efdb0e0c413793deb0939146651","distinct":true,"message":"Test watching"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-21T13:48:45Z","id":"1554164185","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/nvie/gitflow","id":481366,"name":"nvie/gitflow"},"created_at":"2012-05-21T11:31:55Z","id":"1554123822","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-21T11:17:12Z","body":"Implemented in ca97469. Will be in version 1.0.","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5820199","id":5820199,"user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},"action":"created","issue":{"number":26,"created_at":"2012-05-17T12:02:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","comments":3,"title":"Rate limiting?","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","id":4622816,"assignee":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":"2012-06-04T07:00:00Z","title":"Version 1.0: coherent public interface","creator":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"closed_issues":2,"open_issues":9,"description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","state":"open"},"closed_at":"2012-05-21T11:17:12Z","html_url":"https://github.com/jacquev6/PyGithub/issues/26","user":{"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","id":327442,"login":"bilderbuchi"},"labels":[{"name":"Public interface","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","color":"d7e102"}],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-21T11:17:14Z","id":"1554120319","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":26,"created_at":"2012-05-17T12:02:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","comments":3,"title":"Rate limiting?","updated_at":"2012-05-21T11:17:12Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","id":4622816,"assignee":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":"2012-06-04T07:00:00Z","title":"Version 1.0: coherent public interface","creator":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"open_issues":9,"closed_issues":2,"description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","state":"open"},"closed_at":"2012-05-21T11:17:12Z","html_url":"https://github.com/jacquev6/PyGithub/issues/26","user":{"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","id":327442,"login":"bilderbuchi"},"labels":[{"name":"Public interface","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","color":"d7e102"}],"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-21T11:17:14Z","id":"1554120316","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"ca974699b0ea2a770e6c2dbd162b3d2c0ae9fe89","size":1,"push_id":79524271,"commits":[{"sha":"ca974699b0ea2a770e6c2dbd162b3d2c0ae9fe89","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ca974699b0ea2a770e6c2dbd162b3d2c0ae9fe89","distinct":true,"message":"Retrieve rate limiting information"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-21T11:16:05Z","id":"1554120027","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"d5ba645d446d9c237a52ddc9cdc6862e399c62dc","size":4,"push_id":79431688,"commits":[{"sha":"fd18d6299da666bffb9490a1a784060ca7a516f1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fd18d6299da666bffb9490a1a784060ca7a516f1","distinct":true,"message":"Test IssueComment"},{"sha":"beaa58ca0c038469b3b553b804b4d37b2363f8e2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/beaa58ca0c038469b3b553b804b4d37b2363f8e2","distinct":true,"message":"Test IssueEvent attributes"},{"sha":"6a2e4b4958385667c892cbd720fb91c6c44ab81a","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6a2e4b4958385667c892cbd720fb91c6c44ab81a","distinct":true,"message":"Improve test coverage of NamedUser"},{"sha":"d5ba645d446d9c237a52ddc9cdc6862e399c62dc","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d5ba645d446d9c237a52ddc9cdc6862e399c62dc","distinct":true,"message":"Improve test coverage of AuthenticatedUser"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-20T17:59:32Z","id":"1553953684","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}},{"type":"FollowEvent","payload":{"target":{"name":"Vincent Driessen","company":"3rd Cloud","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","created_at":"2009-05-12T21:19:38Z","location":"Netherlands","public_repos":61,"blog":"http://nvie.com","followers":297,"url":"https://api.github.com/users/nvie","public_gists":16,"hireable":false,"id":83844,"type":"User","bio":null,"login":"nvie","html_url":"https://github.com/nvie","email":"vincent@3rdcloud.com","following":41}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-20T12:47:52Z","id":"1553918130","actor":{"gravatar_id":"b68de5ae38616c296fa345d2b9df2225","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","id":327146,"login":"jacquev6"}}] + diff --git a/test/ReplayData/NamedUser.testPublicReceivedEvents.txt b/test/ReplayData/NamedUser.testGetPublicReceivedEvents.txt similarity index 100% rename from test/ReplayData/NamedUser.testPublicReceivedEvents.txt rename to test/ReplayData/NamedUser.testGetPublicReceivedEvents.txt diff --git a/test/ReplayData/NamedUser.testReceivedEvents.txt b/test/ReplayData/NamedUser.testGetReceivedEvents.txt similarity index 100% rename from test/ReplayData/NamedUser.testReceivedEvents.txt rename to test/ReplayData/NamedUser.testGetReceivedEvents.txt diff --git a/test/ReplayData/NamedUser.testGetWatched.txt b/test/ReplayData/NamedUser.testGetWatched.txt index 626e507f..629c5343 100644 --- a/test/ReplayData/NamedUser.testGetWatched.txt +++ b/test/ReplayData/NamedUser.testGetWatched.txt @@ -1,5 +1,10 @@ GET /users/jacquev6/watched {'Authorization': 'Basic login_and_password_removed'} null 200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4935'), ('content-length', '32969'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"bee87e74856ec78ee2fea4f57fc97225"'), ('date', 'Sun, 20 May 2012 12:34:33 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"svn_url":"https://github.com/git/git","has_wiki":false,"has_issues":false,"updated_at":"2012-05-20T07:46:57Z","forks":525,"homepage":"This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.","url":"https://api.github.com/repos/git/git","clone_url":"https://github.com/git/git.git","open_issues":4,"fork":false,"ssh_url":"git@github.com:git/git.git","pushed_at":"2012-05-18T22:57:40Z","mirror_url":null,"size":33396,"private":false,"has_downloads":true,"watchers":2175,"html_url":"https://github.com/git/git","owner":{"url":"https://api.github.com/users/git","gravatar_id":"878a0ea898da1701df8573ed64a5cc9d","login":"git","avatar_url":"https://secure.gravatar.com/avatar/878a0ea898da1701df8573ed64a5cc9d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":18133},"name":"git","permissions":{"pull":true,"admin":false,"push":false},"language":"C","description":"Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.","git_url":"git://github.com/git/git.git","created_at":"2008-07-23T14:21:26Z","id":36502},{"svn_url":"https://github.com/moriyoshi/boost.php","has_wiki":true,"has_issues":true,"updated_at":"2012-03-23T22:31:43Z","forks":4,"homepage":"","url":"https://api.github.com/repos/moriyoshi/boost.php","clone_url":"https://github.com/moriyoshi/boost.php.git","open_issues":1,"fork":false,"ssh_url":"git@github.com:moriyoshi/boost.php.git","pushed_at":"2009-12-15T14:07:47Z","mirror_url":null,"size":1331,"private":false,"has_downloads":true,"watchers":46,"html_url":"https://github.com/moriyoshi/boost.php","owner":{"url":"https://api.github.com/users/moriyoshi","gravatar_id":"0bafbcfcfb548a4ac20406692858f68b","login":"moriyoshi","avatar_url":"https://secure.gravatar.com/avatar/0bafbcfcfb548a4ac20406692858f68b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":18755},"name":"boost.php","permissions":{"pull":true,"admin":false,"push":false},"language":"C++","description":"Create your PHP extension in C++, in a minute.","git_url":"git://github.com/moriyoshi/boost.php.git","created_at":"2008-07-29T03:01:07Z","id":38097},{"svn_url":"https://github.com/capistrano/capistrano","has_wiki":true,"has_issues":true,"updated_at":"2012-05-19T15:21:05Z","forks":234,"homepage":"http://capify.org","url":"https://api.github.com/repos/capistrano/capistrano","clone_url":"https://github.com/capistrano/capistrano.git","open_issues":31,"fork":true,"ssh_url":"git@github.com:capistrano/capistrano.git","pushed_at":"2012-05-10T15:17:56Z","mirror_url":null,"size":236,"private":false,"has_downloads":false,"watchers":2243,"html_url":"https://github.com/capistrano/capistrano","owner":{"url":"https://api.github.com/users/capistrano","gravatar_id":"885e1c523b7975c4003de162d8ee8fee","login":"capistrano","avatar_url":"https://secure.gravatar.com/avatar/885e1c523b7975c4003de162d8ee8fee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":58257},"name":"capistrano","permissions":{"pull":true,"admin":false,"push":false},"language":"Ruby","description":"Remote multi-server automation tool","git_url":"git://github.com/capistrano/capistrano.git","created_at":"2009-02-26T16:14:04Z","id":138312},{"svn_url":"https://github.com/moriyoshi/boost.perl","has_wiki":true,"has_issues":true,"updated_at":"2011-10-03T23:45:58Z","forks":0,"homepage":"","url":"https://api.github.com/repos/moriyoshi/boost.perl","clone_url":"https://github.com/moriyoshi/boost.perl.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:moriyoshi/boost.perl.git","pushed_at":"2010-05-28T07:23:06Z","mirror_url":null,"size":512,"private":false,"has_downloads":true,"watchers":8,"html_url":"https://github.com/moriyoshi/boost.perl","owner":{"url":"https://api.github.com/users/moriyoshi","gravatar_id":"0bafbcfcfb548a4ac20406692858f68b","login":"moriyoshi","avatar_url":"https://secure.gravatar.com/avatar/0bafbcfcfb548a4ac20406692858f68b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":18755},"name":"boost.perl","permissions":{"pull":true,"admin":false,"push":false},"language":"C++","description":"Still a proof of concept...","git_url":"git://github.com/moriyoshi/boost.perl.git","created_at":"2009-03-30T21:09:12Z","id":163431},{"svn_url":"https://github.com/apenwarr/git-subtree","has_wiki":false,"has_issues":false,"updated_at":"2012-05-17T23:46:31Z","forks":67,"homepage":"","url":"https://api.github.com/repos/apenwarr/git-subtree","clone_url":"https://github.com/apenwarr/git-subtree.git","open_issues":11,"fork":false,"ssh_url":"git@github.com:apenwarr/git-subtree.git","pushed_at":"2012-05-01T21:43:17Z","mirror_url":null,"size":176,"private":false,"has_downloads":true,"watchers":604,"html_url":"https://github.com/apenwarr/git-subtree","owner":{"url":"https://api.github.com/users/apenwarr","gravatar_id":"918b627daf7d848cd40770ed6cd15233","login":"apenwarr","avatar_url":"https://secure.gravatar.com/avatar/918b627daf7d848cd40770ed6cd15233?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":20592},"name":"git-subtree","permissions":{"pull":true,"admin":false,"push":false},"language":"Shell","description":"An experimental alternative to the git-submodule command. Merges and splits subtrees from your project into subprojects and back.","git_url":"git://github.com/apenwarr/git-subtree.git","created_at":"2009-04-25T04:10:31Z","id":185096},{"svn_url":"https://github.com/cosmin/git-hg","has_wiki":true,"has_issues":true,"updated_at":"2012-05-20T09:51:32Z","forks":25,"homepage":"http://offbytwo.github.com/git-hg","url":"https://api.github.com/repos/cosmin/git-hg","clone_url":"https://github.com/cosmin/git-hg.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:cosmin/git-hg.git","pushed_at":"2012-04-15T18:55:55Z","mirror_url":null,"size":224,"private":false,"has_downloads":true,"watchers":150,"html_url":"https://github.com/cosmin/git-hg","owner":{"url":"https://api.github.com/users/cosmin","gravatar_id":"a8d35490b4016275e5bc3cc6cce8f878","login":"cosmin","avatar_url":"https://secure.gravatar.com/avatar/a8d35490b4016275e5bc3cc6cce8f878?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1358},"name":"git-hg","permissions":{"pull":true,"admin":false,"push":false},"language":"Shell","description":"A git-hg utility for checking out and tracking a mercurial repo.","git_url":"git://github.com/cosmin/git-hg.git","created_at":"2009-05-14T20:23:01Z","id":201230},{"svn_url":"https://github.com/mxcl/homebrew","has_wiki":true,"has_issues":true,"updated_at":"2012-05-20T11:47:13Z","forks":3959,"homepage":"http://mxcl.github.com/homebrew","url":"https://api.github.com/repos/mxcl/homebrew","clone_url":"https://github.com/mxcl/homebrew.git","open_issues":423,"fork":false,"ssh_url":"git@github.com:mxcl/homebrew.git","pushed_at":"2012-05-20T05:18:59Z","mirror_url":null,"size":4436,"private":false,"has_downloads":false,"watchers":8679,"html_url":"https://github.com/mxcl/homebrew","owner":{"url":"https://api.github.com/users/mxcl","gravatar_id":"25ff3dfe48d3847ecf9971aab99589fb","login":"mxcl","avatar_url":"https://secure.gravatar.com/avatar/25ff3dfe48d3847ecf9971aab99589fb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":58962},"name":"homebrew","permissions":{"pull":true,"admin":false,"push":false},"master_branch":"master","language":"Ruby","description":"The missing package manager for OS X.","git_url":"git://github.com/mxcl/homebrew.git","created_at":"2009-05-20T19:38:37Z","id":206084},{"svn_url":"https://github.com/jamis/celtic_knot","has_wiki":true,"has_issues":true,"updated_at":"2011-10-12T04:36:53Z","forks":1,"homepage":"","url":"https://api.github.com/repos/jamis/celtic_knot","clone_url":"https://github.com/jamis/celtic_knot.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:jamis/celtic_knot.git","pushed_at":"2010-11-25T02:39:53Z","mirror_url":null,"size":1272,"private":false,"has_downloads":true,"watchers":4,"html_url":"https://github.com/jamis/celtic_knot","owner":{"url":"https://api.github.com/users/jamis","gravatar_id":"992fe8c19bbbc27f2b562a9f96efc03d","login":"jamis","avatar_url":"https://secure.gravatar.com/avatar/992fe8c19bbbc27f2b562a9f96efc03d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":1627},"name":"celtic_knot","permissions":{"pull":true,"admin":false,"push":false},"language":"Ruby","description":"A library for generating Celtic Knotwork designs from graphs","git_url":"git://github.com/jamis/celtic_knot.git","created_at":"2009-05-24T23:23:10Z","id":209230},{"svn_url":"https://github.com/jdavisp3/twisted-intro","has_wiki":true,"has_issues":true,"updated_at":"2012-05-16T01:52:49Z","forks":11,"homepage":"http://krondo.com/blog/?page_id=1327","url":"https://api.github.com/repos/jdavisp3/twisted-intro","clone_url":"https://github.com/jdavisp3/twisted-intro.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:jdavisp3/twisted-intro.git","pushed_at":"2011-10-28T11:27:34Z","mirror_url":null,"size":188,"private":false,"has_downloads":true,"watchers":56,"html_url":"https://github.com/jdavisp3/twisted-intro","owner":{"url":"https://api.github.com/users/jdavisp3","gravatar_id":"fcc237fd34a8e504f7224df0c58cc0b3","login":"jdavisp3","avatar_url":"https://secure.gravatar.com/avatar/fcc237fd34a8e504f7224df0c58cc0b3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":43582},"name":"twisted-intro","permissions":{"pull":true,"admin":false,"push":false},"language":"Python","description":"Source files used for an introduction to Twisted","git_url":"git://github.com/jdavisp3/twisted-intro.git","created_at":"2009-08-09T17:54:00Z","id":273325},{"svn_url":"https://github.com/github/markup","has_wiki":false,"has_issues":true,"updated_at":"2012-05-20T06:38:06Z","forks":237,"homepage":"","url":"https://api.github.com/repos/github/markup","clone_url":"https://github.com/github/markup.git","open_issues":85,"fork":false,"ssh_url":"git@github.com:github/markup.git","pushed_at":"2012-04-05T21:13:31Z","mirror_url":null,"size":356,"private":false,"has_downloads":false,"watchers":789,"html_url":"https://github.com/github/markup","owner":{"url":"https://api.github.com/users/github","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","login":"github","avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":9919},"name":"markup","permissions":{"pull":true,"admin":false,"push":false},"language":"Ruby","description":"The code we use to render README.your_favorite_markup","git_url":"git://github.com/github/markup.git","created_at":"2009-10-31T01:02:46Z","id":355893},{"svn_url":"https://github.com/defunkt/hub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-20T10:14:04Z","forks":87,"homepage":"http://defunkt.io/hub/","url":"https://api.github.com/repos/defunkt/hub","clone_url":"https://github.com/defunkt/hub.git","open_issues":12,"fork":false,"ssh_url":"git@github.com:defunkt/hub.git","pushed_at":"2012-05-08T13:37:09Z","mirror_url":null,"size":268,"private":false,"has_downloads":false,"watchers":1169,"html_url":"https://github.com/defunkt/hub","owner":{"url":"https://api.github.com/users/defunkt","gravatar_id":"b8dbb1987e8e5318584865f880036796","login":"defunkt","avatar_url":"https://secure.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":2},"name":"hub","permissions":{"pull":true,"admin":false,"push":false},"language":"Ruby","description":"hub introduces git to GitHub","git_url":"git://github.com/defunkt/hub.git","created_at":"2009-12-05T22:15:25Z","id":401025},{"svn_url":"https://github.com/nvie/gitflow","has_wiki":true,"has_issues":true,"updated_at":"2012-05-20T06:17:37Z","forks":320,"homepage":"http://nvie.com/posts/a-successful-git-branching-model/","url":"https://api.github.com/repos/nvie/gitflow","clone_url":"https://github.com/nvie/gitflow.git","open_issues":92,"fork":false,"ssh_url":"git@github.com:nvie/gitflow.git","pushed_at":"2012-02-14T13:11:04Z","mirror_url":null,"size":4602,"private":false,"has_downloads":true,"watchers":3927,"html_url":"https://github.com/nvie/gitflow","owner":{"url":"https://api.github.com/users/nvie","gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","login":"nvie","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":83844},"name":"gitflow","permissions":{"pull":true,"admin":false,"push":false},"master_branch":"develop","language":"Shell","description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","git_url":"git://github.com/nvie/gitflow.git","created_at":"2010-01-20T23:14:12Z","id":481366},{"svn_url":"https://github.com/lg/murder","has_wiki":true,"has_issues":true,"updated_at":"2012-05-20T03:23:05Z","forks":53,"homepage":"http://twitter.com","url":"https://api.github.com/repos/lg/murder","clone_url":"https://github.com/lg/murder.git","open_issues":8,"fork":false,"ssh_url":"git@github.com:lg/murder.git","pushed_at":"2011-10-18T00:40:07Z","mirror_url":null,"size":1228,"private":false,"has_downloads":true,"watchers":1226,"html_url":"https://github.com/lg/murder","owner":{"url":"https://api.github.com/users/lg","gravatar_id":"f2583cecbd75c5999bf65d9eeb6a84f2","login":"lg","avatar_url":"https://secure.gravatar.com/avatar/f2583cecbd75c5999bf65d9eeb6a84f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":181018},"name":"murder","permissions":{"pull":true,"admin":false,"push":false},"language":"Python","description":"Large scale server deploys using BitTorrent and the BitTornado library","git_url":"git://github.com/lg/murder.git","created_at":"2010-01-21T07:05:36Z","id":481811},{"svn_url":"https://github.com/boto/boto","has_wiki":true,"has_issues":true,"updated_at":"2012-05-20T08:33:38Z","forks":395,"homepage":"http://boto.readthedocs.org/","url":"https://api.github.com/repos/boto/boto","clone_url":"https://github.com/boto/boto.git","open_issues":131,"fork":false,"ssh_url":"git@github.com:boto/boto.git","pushed_at":"2012-05-20T07:40:27Z","mirror_url":null,"size":4183,"private":false,"has_downloads":true,"watchers":1520,"html_url":"https://github.com/boto/boto","owner":{"url":"https://api.github.com/users/boto","gravatar_id":"9062d6f913c867ce042928d6637abd05","login":"boto","avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":327752},"name":"boto","permissions":{"pull":true,"admin":false,"push":false},"master_branch":"develop","language":"Python","description":"Python interface to Amazon Web Services","git_url":"git://github.com/boto/boto.git","created_at":"2010-07-12T19:15:33Z","id":771016},{"svn_url":"https://github.com/rtyley/agit","has_wiki":true,"has_issues":true,"updated_at":"2012-05-18T12:02:17Z","forks":41,"homepage":"https://market.android.com/details?id=com.madgag.agit","url":"https://api.github.com/repos/rtyley/agit","clone_url":"https://github.com/rtyley/agit.git","open_issues":36,"fork":false,"ssh_url":"git@github.com:rtyley/agit.git","pushed_at":"2012-05-04T09:48:11Z","mirror_url":null,"size":244,"private":false,"has_downloads":true,"watchers":207,"html_url":"https://github.com/rtyley/agit","owner":{"url":"https://api.github.com/users/rtyley","gravatar_id":"1cdc781dd667a5d4b61340591bf1bef4","login":"rtyley","avatar_url":"https://secure.gravatar.com/avatar/1cdc781dd667a5d4b61340591bf1bef4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":52038},"name":"agit","permissions":{"pull":true,"admin":false,"push":false},"language":"Java","description":"Agit - Git client for Android","git_url":"git://github.com/rtyley/agit.git","created_at":"2010-08-29T21:45:54Z","id":870849},{"svn_url":"https://github.com/mbostock/d3","has_wiki":true,"has_issues":true,"updated_at":"2012-05-20T09:51:00Z","forks":670,"homepage":"http://d3js.org","url":"https://api.github.com/repos/mbostock/d3","clone_url":"https://github.com/mbostock/d3.git","open_issues":110,"fork":false,"ssh_url":"git@github.com:mbostock/d3.git","pushed_at":"2012-05-17T19:11:22Z","mirror_url":null,"size":3268,"private":false,"has_downloads":true,"watchers":5897,"html_url":"https://github.com/mbostock/d3","owner":{"url":"https://api.github.com/users/mbostock","gravatar_id":"005a27e09fe946ebef64bf4d134efc0a","login":"mbostock","avatar_url":"https://secure.gravatar.com/avatar/005a27e09fe946ebef64bf4d134efc0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":230541},"name":"d3","permissions":{"pull":true,"admin":false,"push":false},"language":"JavaScript","description":"A JavaScript visualization library for HTML and SVG.","git_url":"git://github.com/mbostock/d3.git","created_at":"2010-09-27T17:22:42Z","id":943149},{"svn_url":"https://github.com/libgit2/pygit2","has_wiki":false,"has_issues":true,"updated_at":"2012-05-19T16:16:49Z","forks":42,"homepage":"","url":"https://api.github.com/repos/libgit2/pygit2","clone_url":"https://github.com/libgit2/pygit2.git","open_issues":11,"fork":false,"ssh_url":"git@github.com:libgit2/pygit2.git","pushed_at":"2012-05-19T15:14:19Z","mirror_url":null,"size":268,"private":false,"has_downloads":true,"watchers":198,"html_url":"https://github.com/libgit2/pygit2","owner":{"url":"https://api.github.com/users/libgit2","gravatar_id":"1c56acccc41c591705dc92da5f6ab603","login":"libgit2","avatar_url":"https://secure.gravatar.com/avatar/1c56acccc41c591705dc92da5f6ab603?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":394745},"name":"pygit2","permissions":{"pull":true,"admin":false,"push":false},"language":"C","description":"Python bindings for libgit2","git_url":"git://github.com/libgit2/pygit2.git","created_at":"2010-11-08T16:27:48Z","id":1062237},{"svn_url":"https://github.com/schacon/git-pulls","has_wiki":true,"has_issues":true,"updated_at":"2012-05-13T12:16:08Z","forks":21,"homepage":"","url":"https://api.github.com/repos/schacon/git-pulls","clone_url":"https://github.com/schacon/git-pulls.git","open_issues":11,"fork":false,"ssh_url":"git@github.com:schacon/git-pulls.git","pushed_at":"2011-10-28T07:11:56Z","mirror_url":null,"size":1004,"private":false,"has_downloads":true,"watchers":173,"html_url":"https://github.com/schacon/git-pulls","owner":{"url":"https://api.github.com/users/schacon","gravatar_id":"9375a9529679f1b42b567a640d775e7d","login":"schacon","avatar_url":"https://secure.gravatar.com/avatar/9375a9529679f1b42b567a640d775e7d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":70},"name":"git-pulls","permissions":{"pull":true,"admin":false,"push":false},"language":"Ruby","description":"command line tool to facilitate github pull requests","git_url":"git://github.com/schacon/git-pulls.git","created_at":"2010-12-27T20:39:24Z","id":1201343},{"svn_url":"https://github.com/emesik/django_mathlatex","has_wiki":true,"has_issues":true,"updated_at":"2011-11-03T17:46:24Z","forks":1,"homepage":"","url":"https://api.github.com/repos/emesik/django_mathlatex","clone_url":"https://github.com/emesik/django_mathlatex.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:emesik/django_mathlatex.git","pushed_at":"2011-04-01T11:33:23Z","mirror_url":null,"size":448,"private":false,"has_downloads":true,"watchers":3,"html_url":"https://github.com/emesik/django_mathlatex","owner":{"url":"https://api.github.com/users/emesik","gravatar_id":"0d0c6eda804f912d230df91577e29180","login":"emesik","avatar_url":"https://secure.gravatar.com/avatar/0d0c6eda804f912d230df91577e29180?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":407107},"name":"django_mathlatex","permissions":{"pull":true,"admin":false,"push":false},"language":"Python","description":"Django template tag for rendering math formulas","git_url":"git://github.com/emesik/django_mathlatex.git","created_at":"2011-03-06T22:29:04Z","id":1447846},{"svn_url":"https://github.com/aliasaria/scrumblr","has_wiki":true,"has_issues":true,"updated_at":"2012-05-17T22:11:28Z","forks":50,"homepage":"http://scrumblr.ca","url":"https://api.github.com/repos/aliasaria/scrumblr","clone_url":"https://github.com/aliasaria/scrumblr.git","open_issues":14,"fork":false,"ssh_url":"git@github.com:aliasaria/scrumblr.git","pushed_at":"2012-02-08T00:38:52Z","mirror_url":null,"size":132,"private":false,"has_downloads":true,"watchers":464,"html_url":"https://github.com/aliasaria/scrumblr","owner":{"url":"https://api.github.com/users/aliasaria","gravatar_id":"a08f4e2d6ccccab586b502992c31e2ce","login":"aliasaria","avatar_url":"https://secure.gravatar.com/avatar/a08f4e2d6ccccab586b502992c31e2ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":213343},"name":"scrumblr","permissions":{"pull":true,"admin":false,"push":false},"language":"JavaScript","description":"Collaborative Online Scrum Tool Using Websockets, Node.js, jQuery, and CSS3","git_url":"git://github.com/aliasaria/scrumblr.git","created_at":"2011-03-10T02:29:38Z","id":1461917},{"svn_url":"https://github.com/github/developer.github.com","has_wiki":false,"has_issues":false,"updated_at":"2012-05-20T11:16:45Z","forks":119,"homepage":"http://developer.github.com","url":"https://api.github.com/repos/github/developer.github.com","clone_url":"https://github.com/github/developer.github.com.git","open_issues":10,"fork":false,"ssh_url":"git@github.com:github/developer.github.com.git","pushed_at":"2012-05-11T17:11:10Z","mirror_url":null,"size":212,"private":false,"has_downloads":true,"watchers":249,"html_url":"https://github.com/github/developer.github.com","owner":{"url":"https://api.github.com/users/github","gravatar_id":"61024896f291303615bcd4f7a0dcfb74","login":"github","avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":9919},"name":"developer.github.com","permissions":{"pull":true,"admin":false,"push":false},"language":"Ruby","description":"GitHub API documentation","git_url":"git://github.com/github/developer.github.com.git","created_at":"2011-04-26T19:20:56Z","id":1666784},{"svn_url":"https://github.com/ChristopherMacGown/python-github3","has_wiki":true,"has_issues":true,"updated_at":"2012-03-08T13:38:12Z","forks":11,"homepage":"","url":"https://api.github.com/repos/ChristopherMacGown/python-github3","clone_url":"https://github.com/ChristopherMacGown/python-github3.git","open_issues":1,"fork":false,"ssh_url":"git@github.com:ChristopherMacGown/python-github3.git","pushed_at":"2011-11-22T18:10:52Z","mirror_url":null,"size":236,"private":false,"has_downloads":true,"watchers":20,"html_url":"https://github.com/ChristopherMacGown/python-github3","owner":{"url":"https://api.github.com/users/ChristopherMacGown","gravatar_id":"4174216c1dc0f223ce608d5a3b66a585","login":"ChristopherMacGown","avatar_url":"https://secure.gravatar.com/avatar/4174216c1dc0f223ce608d5a3b66a585?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":43081},"name":"python-github3","permissions":{"pull":true,"admin":false,"push":false},"language":"Python","description":"Github API v3 library for Python.","git_url":"git://github.com/ChristopherMacGown/python-github3.git","created_at":"2011-04-28T17:07:29Z","id":1676748},{"svn_url":"https://github.com/pjkersten/PlantUML","has_wiki":true,"has_issues":true,"updated_at":"2012-02-06T15:26:40Z","forks":2,"homepage":"","url":"https://api.github.com/repos/pjkersten/PlantUML","clone_url":"https://github.com/pjkersten/PlantUML.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:pjkersten/PlantUML.git","pushed_at":"2012-02-02T09:38:42Z","mirror_url":null,"size":124,"private":false,"has_downloads":true,"watchers":5,"html_url":"https://github.com/pjkersten/PlantUML","owner":{"url":"https://api.github.com/users/pjkersten","gravatar_id":"6e33170f0701d1d1d8dd57c8f95368ef","login":"pjkersten","avatar_url":"https://secure.gravatar.com/avatar/6e33170f0701d1d1d8dd57c8f95368ef?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":771883},"name":"PlantUML","permissions":{"pull":true,"admin":false,"push":false},"language":"PHP","description":"PlantUML plugin for MediaWiki","git_url":"git://github.com/pjkersten/PlantUML.git","created_at":"2011-05-06T09:33:38Z","id":1710505},{"svn_url":"https://github.com/twitter/bootstrap","has_wiki":true,"has_issues":true,"updated_at":"2012-05-20T12:33:14Z","forks":5703,"homepage":"http://twitter.github.com/bootstrap","url":"https://api.github.com/repos/twitter/bootstrap","clone_url":"https://github.com/twitter/bootstrap.git","open_issues":223,"fork":false,"ssh_url":"git@github.com:twitter/bootstrap.git","pushed_at":"2012-05-18T05:00:54Z","mirror_url":null,"size":1244,"private":false,"has_downloads":true,"watchers":29109,"html_url":"https://github.com/twitter/bootstrap","owner":{"url":"https://api.github.com/users/twitter","gravatar_id":"74e977ae0a10f06057a119eef30c6660","login":"twitter","avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":50278},"name":"bootstrap","permissions":{"pull":true,"admin":false,"push":false},"language":"JavaScript","description":"HTML, CSS, and JS toolkit from Twitter","git_url":"git://github.com/twitter/bootstrap.git","created_at":"2011-07-29T21:19:00Z","id":2126244},{"svn_url":"https://github.com/stephenmcd/drawnby","has_wiki":true,"has_issues":true,"updated_at":"2012-04-30T11:48:56Z","forks":2,"homepage":"http://drawnby.jupo.org","url":"https://api.github.com/repos/stephenmcd/drawnby","clone_url":"https://github.com/stephenmcd/drawnby.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:stephenmcd/drawnby.git","pushed_at":"2011-08-01T10:26:00Z","mirror_url":null,"size":672,"private":false,"has_downloads":true,"watchers":9,"html_url":"https://github.com/stephenmcd/drawnby","owner":{"url":"https://api.github.com/users/stephenmcd","gravatar_id":"ce5bfd8756e2fae0e800bbea413e86b3","login":"stephenmcd","avatar_url":"https://secure.gravatar.com/avatar/ce5bfd8756e2fae0e800bbea413e86b3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":116385},"name":"drawnby","permissions":{"pull":true,"admin":false,"push":false},"language":"JavaScript","description":"Drawn By is a collaborative real-time sketching app built for the 2011 Django Dash.","git_url":"git://github.com/stephenmcd/drawnby.git","created_at":"2011-08-01T10:25:31Z","id":2136154},{"svn_url":"https://github.com/stephenmcd/django-socketio","has_wiki":true,"has_issues":true,"updated_at":"2012-05-19T19:28:22Z","forks":26,"homepage":"","url":"https://api.github.com/repos/stephenmcd/django-socketio","clone_url":"https://github.com/stephenmcd/django-socketio.git","open_issues":6,"fork":false,"ssh_url":"git@github.com:stephenmcd/django-socketio.git","pushed_at":"2012-04-20T00:24:31Z","mirror_url":null,"size":160,"private":false,"has_downloads":true,"watchers":260,"html_url":"https://github.com/stephenmcd/django-socketio","owner":{"url":"https://api.github.com/users/stephenmcd","gravatar_id":"ce5bfd8756e2fae0e800bbea413e86b3","login":"stephenmcd","avatar_url":"https://secure.gravatar.com/avatar/ce5bfd8756e2fae0e800bbea413e86b3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":116385},"name":"django-socketio","permissions":{"pull":true,"admin":false,"push":false},"language":"JavaScript","description":"A Django app providing the features required to use websockets with Django via Socket.IO","git_url":"git://github.com/stephenmcd/django-socketio.git","created_at":"2011-08-01T21:18:34Z","id":2139136},{"svn_url":"https://github.com/jstasiak/django-realtime","has_wiki":true,"has_issues":true,"updated_at":"2012-05-08T07:18:20Z","forks":2,"homepage":"","url":"https://api.github.com/repos/jstasiak/django-realtime","clone_url":"https://github.com/jstasiak/django-realtime.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:jstasiak/django-realtime.git","pushed_at":"2012-04-21T16:22:25Z","mirror_url":null,"size":132,"private":false,"has_downloads":true,"watchers":15,"html_url":"https://github.com/jstasiak/django-realtime","owner":{"url":"https://api.github.com/users/jstasiak","gravatar_id":"93cdbd3d2a76da1adf727a6bc9fec1ed","login":"jstasiak","avatar_url":"https://secure.gravatar.com/avatar/93cdbd3d2a76da1adf727a6bc9fec1ed?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":36209},"name":"django-realtime","permissions":{"pull":true,"admin":false,"push":false},"language":"JavaScript","description":"Use this application to get Socket.IO support in your Django project and dive into real time web.","git_url":"git://github.com/jstasiak/django-realtime.git","created_at":"2011-09-20T19:13:10Z","id":2424738},{"svn_url":"https://github.com/AcmeSystems/playground","has_wiki":true,"has_issues":true,"updated_at":"2012-05-14T15:13:23Z","forks":3,"homepage":"http://www.acmesystems.it","url":"https://api.github.com/repos/AcmeSystems/playground","clone_url":"https://github.com/AcmeSystems/playground.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:AcmeSystems/playground.git","pushed_at":"2012-05-14T15:13:23Z","mirror_url":null,"size":148,"private":false,"has_downloads":true,"watchers":6,"html_url":"https://github.com/AcmeSystems/playground","owner":{"url":"https://api.github.com/users/AcmeSystems","gravatar_id":"af55714b265c4914c8bb8db49fc06da6","login":"AcmeSystems","avatar_url":"https://secure.gravatar.com/avatar/af55714b265c4914c8bb8db49fc06da6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":783524},"name":"playground","permissions":{"pull":true,"admin":false,"push":false},"language":"Python","description":"Small programming examples for the FOX Board G20","git_url":"git://github.com/AcmeSystems/playground.git","created_at":"2011-10-17T16:16:10Z","id":2593052},{"svn_url":"https://github.com/juuso/BozoCrack","has_wiki":true,"has_issues":true,"updated_at":"2012-05-17T16:48:26Z","forks":39,"homepage":"","url":"https://api.github.com/repos/juuso/BozoCrack","clone_url":"https://github.com/juuso/BozoCrack.git","open_issues":8,"fork":false,"ssh_url":"git@github.com:juuso/BozoCrack.git","pushed_at":"2011-11-07T14:55:19Z","mirror_url":null,"size":140,"private":false,"has_downloads":true,"watchers":377,"html_url":"https://github.com/juuso/BozoCrack","owner":{"url":"https://api.github.com/users/juuso","gravatar_id":"d3231546d42d67974fc51956a3b627f4","login":"juuso","avatar_url":"https://secure.gravatar.com/avatar/d3231546d42d67974fc51956a3b627f4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","id":614446},"name":"BozoCrack","permissions":{"pull":true,"admin":false,"push":false},"language":"Ruby","description":"A silly & effective MD5 cracker in Ruby","git_url":"git://github.com/juuso/BozoCrack.git","created_at":"2011-11-07T13:02:08Z","id":2726128},{"svn_url":"https://github.com/AcmeSystems/acme-public-website","has_wiki":true,"has_issues":true,"updated_at":"2012-05-17T15:46:47Z","forks":2,"homepage":"http://www.acmesystems.it","url":"https://api.github.com/repos/AcmeSystems/acme-public-website","clone_url":"https://github.com/AcmeSystems/acme-public-website.git","open_issues":0,"fork":false,"ssh_url":"git@github.com:AcmeSystems/acme-public-website.git","pushed_at":"2012-05-17T15:46:46Z","mirror_url":null,"size":300,"private":false,"has_downloads":true,"watchers":3,"html_url":"https://github.com/AcmeSystems/acme-public-website","owner":{"url":"https://api.github.com/users/AcmeSystems","gravatar_id":"af55714b265c4914c8bb8db49fc06da6","login":"AcmeSystems","avatar_url":"https://secure.gravatar.com/avatar/af55714b265c4914c8bb8db49fc06da6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","id":783524},"name":"acme-public-website","permissions":{"pull":true,"admin":false,"push":false},"language":"JavaScript","description":"Public pages on Acme Systems website","git_url":"git://github.com/AcmeSystems/acme-public-website.git","created_at":"2011-11-22T17:10:15Z","id":2829366}] +[('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '33830'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next", ; rel="last"'), ('etag', '"dc4214d5110d198c04e9d1f182a77211"'), ('date', 'Sat, 26 May 2012 10:36:29 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"description":"Git Source Code Mirror - This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.","full_name":"git/git","has_wiki":false,"has_issues":false,"updated_at":"2012-05-26T09:50:39Z","forks":544,"mirror_url":null,"homepage":"This is a publish-only repository and all pull requests are ignored. Please follow Documentation/SubmittingPatches procedure for any of your improvements.","ssh_url":"git@github.com:git/git.git","open_issues":5,"fork":false,"svn_url":"https://github.com/git/git","pushed_at":"2012-05-25T20:50:10Z","size":33788,"html_url":"https://github.com/git/git","private":false,"url":"https://api.github.com/repos/git/git","clone_url":"https://github.com/git/git.git","owner":{"gravatar_id":"878a0ea898da1701df8573ed64a5cc9d","avatar_url":"https://secure.gravatar.com/avatar/878a0ea898da1701df8573ed64a5cc9d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/git","login":"git","id":18133},"name":"git","has_downloads":true,"language":"C","watchers":2218,"git_url":"git://github.com/git/git.git","id":36502,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2008-07-23T14:21:26Z"},{"description":"Create your PHP extension in C++, in a minute.","full_name":"moriyoshi/boost.php","has_wiki":true,"has_issues":true,"updated_at":"2012-05-24T13:39:17Z","forks":4,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:moriyoshi/boost.php.git","open_issues":1,"fork":false,"svn_url":"https://github.com/moriyoshi/boost.php","pushed_at":"2009-12-15T14:07:47Z","size":1331,"html_url":"https://github.com/moriyoshi/boost.php","private":false,"url":"https://api.github.com/repos/moriyoshi/boost.php","clone_url":"https://github.com/moriyoshi/boost.php.git","owner":{"gravatar_id":"0bafbcfcfb548a4ac20406692858f68b","avatar_url":"https://secure.gravatar.com/avatar/0bafbcfcfb548a4ac20406692858f68b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/moriyoshi","login":"moriyoshi","id":18755},"name":"boost.php","has_downloads":true,"language":"C++","watchers":47,"git_url":"git://github.com/moriyoshi/boost.php.git","id":38097,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2008-07-29T03:01:07Z"},{"description":"Remote multi-server automation tool","full_name":"capistrano/capistrano","has_wiki":true,"has_issues":true,"updated_at":"2012-05-26T10:18:16Z","forks":241,"mirror_url":null,"homepage":"http://capify.org","ssh_url":"git@github.com:capistrano/capistrano.git","open_issues":34,"fork":true,"svn_url":"https://github.com/capistrano/capistrano","pushed_at":"2012-05-10T15:17:56Z","size":236,"html_url":"https://github.com/capistrano/capistrano","private":false,"url":"https://api.github.com/repos/capistrano/capistrano","clone_url":"https://github.com/capistrano/capistrano.git","owner":{"gravatar_id":"885e1c523b7975c4003de162d8ee8fee","avatar_url":"https://secure.gravatar.com/avatar/885e1c523b7975c4003de162d8ee8fee?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/capistrano","login":"capistrano","id":58257},"name":"capistrano","has_downloads":false,"language":"Ruby","watchers":2272,"git_url":"git://github.com/capistrano/capistrano.git","id":138312,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2009-02-26T16:14:04Z"},{"description":"Still a proof of concept...","full_name":"moriyoshi/boost.perl","has_wiki":true,"has_issues":true,"updated_at":"2011-10-03T23:45:58Z","forks":0,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:moriyoshi/boost.perl.git","open_issues":0,"fork":false,"svn_url":"https://github.com/moriyoshi/boost.perl","pushed_at":"2010-05-28T07:23:06Z","size":512,"html_url":"https://github.com/moriyoshi/boost.perl","private":false,"url":"https://api.github.com/repos/moriyoshi/boost.perl","clone_url":"https://github.com/moriyoshi/boost.perl.git","owner":{"gravatar_id":"0bafbcfcfb548a4ac20406692858f68b","avatar_url":"https://secure.gravatar.com/avatar/0bafbcfcfb548a4ac20406692858f68b?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/moriyoshi","login":"moriyoshi","id":18755},"name":"boost.perl","has_downloads":true,"language":"C++","watchers":8,"git_url":"git://github.com/moriyoshi/boost.perl.git","id":163431,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2009-03-30T21:09:12Z"},{"description":"An experimental alternative to the git-submodule command. Merges and splits subtrees from your project into subprojects and back.","full_name":"apenwarr/git-subtree","has_wiki":false,"has_issues":false,"updated_at":"2012-05-25T23:20:17Z","forks":68,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:apenwarr/git-subtree.git","open_issues":11,"fork":false,"svn_url":"https://github.com/apenwarr/git-subtree","pushed_at":"2012-05-01T21:43:17Z","size":176,"html_url":"https://github.com/apenwarr/git-subtree","private":false,"url":"https://api.github.com/repos/apenwarr/git-subtree","clone_url":"https://github.com/apenwarr/git-subtree.git","owner":{"gravatar_id":"918b627daf7d848cd40770ed6cd15233","avatar_url":"https://secure.gravatar.com/avatar/918b627daf7d848cd40770ed6cd15233?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/apenwarr","login":"apenwarr","id":20592},"name":"git-subtree","has_downloads":true,"language":"Shell","watchers":604,"git_url":"git://github.com/apenwarr/git-subtree.git","id":185096,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2009-04-25T04:10:31Z"},{"description":"A git-hg utility for checking out and tracking a mercurial repo.","full_name":"cosmin/git-hg","has_wiki":true,"has_issues":true,"updated_at":"2012-05-25T18:28:12Z","forks":26,"mirror_url":null,"homepage":"http://offbytwo.github.com/git-hg","ssh_url":"git@github.com:cosmin/git-hg.git","open_issues":0,"fork":false,"svn_url":"https://github.com/cosmin/git-hg","pushed_at":"2012-04-15T18:55:55Z","size":224,"html_url":"https://github.com/cosmin/git-hg","private":false,"url":"https://api.github.com/repos/cosmin/git-hg","clone_url":"https://github.com/cosmin/git-hg.git","owner":{"gravatar_id":"a8d35490b4016275e5bc3cc6cce8f878","avatar_url":"https://secure.gravatar.com/avatar/a8d35490b4016275e5bc3cc6cce8f878?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/cosmin","login":"cosmin","id":1358},"name":"git-hg","has_downloads":true,"language":"Shell","watchers":152,"git_url":"git://github.com/cosmin/git-hg.git","id":201230,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2009-05-14T20:23:01Z"},{"description":"The missing package manager for OS X.","full_name":"mxcl/homebrew","has_wiki":true,"has_issues":true,"updated_at":"2012-05-26T09:05:57Z","forks":3990,"mirror_url":null,"homepage":"http://mxcl.github.com/homebrew","ssh_url":"git@github.com:mxcl/homebrew.git","open_issues":471,"fork":false,"svn_url":"https://github.com/mxcl/homebrew","pushed_at":"2012-05-26T04:25:41Z","size":4540,"html_url":"https://github.com/mxcl/homebrew","private":false,"url":"https://api.github.com/repos/mxcl/homebrew","clone_url":"https://github.com/mxcl/homebrew.git","owner":{"gravatar_id":"1510549f9353c9859b7b3c81872df09c","avatar_url":"https://secure.gravatar.com/avatar/1510549f9353c9859b7b3c81872df09c?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/mxcl","login":"mxcl","id":58962},"name":"homebrew","has_downloads":false,"language":"Ruby","watchers":8726,"git_url":"git://github.com/mxcl/homebrew.git","id":206084,"permissions":{"admin":false,"pull":true,"push":false},"master_branch":"master","created_at":"2009-05-20T19:38:37Z"},{"description":"A library for generating Celtic Knotwork designs from graphs","full_name":"jamis/celtic_knot","has_wiki":true,"has_issues":true,"updated_at":"2011-10-12T04:36:53Z","forks":1,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:jamis/celtic_knot.git","open_issues":0,"fork":false,"svn_url":"https://github.com/jamis/celtic_knot","pushed_at":"2010-11-25T02:39:53Z","size":1272,"html_url":"https://github.com/jamis/celtic_knot","private":false,"url":"https://api.github.com/repos/jamis/celtic_knot","clone_url":"https://github.com/jamis/celtic_knot.git","owner":{"gravatar_id":"992fe8c19bbbc27f2b562a9f96efc03d","avatar_url":"https://secure.gravatar.com/avatar/992fe8c19bbbc27f2b562a9f96efc03d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jamis","login":"jamis","id":1627},"name":"celtic_knot","has_downloads":true,"language":"Ruby","watchers":4,"git_url":"git://github.com/jamis/celtic_knot.git","id":209230,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2009-05-24T23:23:10Z"},{"description":"Source files used for an introduction to Twisted","full_name":"jdavisp3/twisted-intro","has_wiki":true,"has_issues":true,"updated_at":"2012-05-16T01:52:49Z","forks":11,"mirror_url":null,"homepage":"http://krondo.com/blog/?page_id=1327","ssh_url":"git@github.com:jdavisp3/twisted-intro.git","open_issues":0,"fork":false,"svn_url":"https://github.com/jdavisp3/twisted-intro","pushed_at":"2011-10-28T11:27:34Z","size":188,"html_url":"https://github.com/jdavisp3/twisted-intro","private":false,"url":"https://api.github.com/repos/jdavisp3/twisted-intro","clone_url":"https://github.com/jdavisp3/twisted-intro.git","owner":{"gravatar_id":"fcc237fd34a8e504f7224df0c58cc0b3","avatar_url":"https://secure.gravatar.com/avatar/fcc237fd34a8e504f7224df0c58cc0b3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jdavisp3","login":"jdavisp3","id":43582},"name":"twisted-intro","has_downloads":true,"language":"Python","watchers":56,"git_url":"git://github.com/jdavisp3/twisted-intro.git","id":273325,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2009-08-09T17:54:00Z"},{"description":"The code we use to render README.your_favorite_markup","full_name":"github/markup","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T09:25:29Z","forks":258,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:github/markup.git","open_issues":84,"fork":false,"svn_url":"https://github.com/github/markup","pushed_at":"2012-04-05T21:13:31Z","size":356,"html_url":"https://github.com/github/markup","private":false,"url":"https://api.github.com/repos/github/markup","clone_url":"https://github.com/github/markup.git","owner":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/github","login":"github","id":9919},"name":"markup","has_downloads":false,"language":"Ruby","watchers":832,"git_url":"git://github.com/github/markup.git","id":355893,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2009-10-31T01:02:46Z"},{"description":"hub introduces git to GitHub","full_name":"defunkt/hub","has_wiki":false,"has_issues":true,"updated_at":"2012-05-25T17:47:33Z","forks":91,"mirror_url":null,"homepage":"http://defunkt.io/hub/","ssh_url":"git@github.com:defunkt/hub.git","open_issues":13,"fork":false,"svn_url":"https://github.com/defunkt/hub","pushed_at":"2012-05-24T19:21:34Z","size":240,"html_url":"https://github.com/defunkt/hub","private":false,"url":"https://api.github.com/repos/defunkt/hub","clone_url":"https://github.com/defunkt/hub.git","owner":{"gravatar_id":"b8dbb1987e8e5318584865f880036796","avatar_url":"https://secure.gravatar.com/avatar/b8dbb1987e8e5318584865f880036796?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/defunkt","login":"defunkt","id":2},"name":"hub","has_downloads":false,"language":"Ruby","watchers":1183,"git_url":"git://github.com/defunkt/hub.git","id":401025,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2009-12-05T22:15:25Z"},{"description":"Git extensions to provide high-level repository operations for Vincent Driessen's branching model.","full_name":"nvie/gitflow","has_wiki":true,"has_issues":true,"updated_at":"2012-05-26T08:35:20Z","forks":329,"mirror_url":null,"homepage":"http://nvie.com/posts/a-successful-git-branching-model/","ssh_url":"git@github.com:nvie/gitflow.git","open_issues":92,"fork":false,"svn_url":"https://github.com/nvie/gitflow","pushed_at":"2012-02-14T13:11:04Z","size":4602,"html_url":"https://github.com/nvie/gitflow","private":false,"url":"https://api.github.com/repos/nvie/gitflow","clone_url":"https://github.com/nvie/gitflow.git","owner":{"gravatar_id":"c5a7f21b46df698f3db31c37ed0cf55a","avatar_url":"https://secure.gravatar.com/avatar/c5a7f21b46df698f3db31c37ed0cf55a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/nvie","login":"nvie","id":83844},"name":"gitflow","has_downloads":true,"language":"Shell","watchers":3973,"git_url":"git://github.com/nvie/gitflow.git","id":481366,"permissions":{"admin":false,"pull":true,"push":false},"master_branch":"develop","created_at":"2010-01-20T23:14:12Z"},{"description":"Large scale server deploys using BitTorrent and the BitTornado library","full_name":"lg/murder","has_wiki":true,"has_issues":true,"updated_at":"2012-05-26T08:40:06Z","forks":53,"mirror_url":null,"homepage":"http://twitter.com","ssh_url":"git@github.com:lg/murder.git","open_issues":8,"fork":false,"svn_url":"https://github.com/lg/murder","pushed_at":"2011-10-18T00:40:07Z","size":1228,"html_url":"https://github.com/lg/murder","private":false,"url":"https://api.github.com/repos/lg/murder","clone_url":"https://github.com/lg/murder.git","owner":{"gravatar_id":"f2583cecbd75c5999bf65d9eeb6a84f2","avatar_url":"https://secure.gravatar.com/avatar/f2583cecbd75c5999bf65d9eeb6a84f2?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/lg","login":"lg","id":181018},"name":"murder","has_downloads":true,"language":"Python","watchers":1229,"git_url":"git://github.com/lg/murder.git","id":481811,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2010-01-21T07:05:36Z"},{"description":"Python interface to Amazon Web Services","full_name":"boto/boto","has_wiki":true,"has_issues":true,"updated_at":"2012-05-26T09:26:37Z","forks":400,"mirror_url":null,"homepage":"http://docs.pythonboto.org/","ssh_url":"git@github.com:boto/boto.git","open_issues":144,"fork":false,"svn_url":"https://github.com/boto/boto","pushed_at":"2012-05-20T07:40:27Z","size":4183,"html_url":"https://github.com/boto/boto","private":false,"url":"https://api.github.com/repos/boto/boto","clone_url":"https://github.com/boto/boto.git","owner":{"gravatar_id":"9062d6f913c867ce042928d6637abd05","avatar_url":"https://secure.gravatar.com/avatar/9062d6f913c867ce042928d6637abd05?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/boto","login":"boto","id":327752},"name":"boto","has_downloads":true,"language":"Python","watchers":1554,"git_url":"git://github.com/boto/boto.git","id":771016,"permissions":{"admin":false,"pull":true,"push":false},"master_branch":"develop","created_at":"2010-07-12T19:15:33Z"},{"description":"Agit - Git client for Android","full_name":"rtyley/agit","has_wiki":true,"has_issues":true,"updated_at":"2012-05-25T09:15:01Z","forks":41,"mirror_url":null,"homepage":"https://market.android.com/details?id=com.madgag.agit","ssh_url":"git@github.com:rtyley/agit.git","open_issues":34,"fork":false,"svn_url":"https://github.com/rtyley/agit","pushed_at":"2012-05-24T18:12:28Z","size":1200,"html_url":"https://github.com/rtyley/agit","private":false,"url":"https://api.github.com/repos/rtyley/agit","clone_url":"https://github.com/rtyley/agit.git","owner":{"gravatar_id":"1cdc781dd667a5d4b61340591bf1bef4","avatar_url":"https://secure.gravatar.com/avatar/1cdc781dd667a5d4b61340591bf1bef4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/rtyley","login":"rtyley","id":52038},"name":"agit","has_downloads":true,"language":"Java","watchers":207,"git_url":"git://github.com/rtyley/agit.git","id":870849,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2010-08-29T21:45:54Z"},{"description":"A JavaScript visualization library for HTML and SVG.","full_name":"mbostock/d3","has_wiki":true,"has_issues":true,"updated_at":"2012-05-26T08:34:46Z","forks":696,"mirror_url":null,"homepage":"http://d3js.org","ssh_url":"git@github.com:mbostock/d3.git","open_issues":111,"fork":false,"svn_url":"https://github.com/mbostock/d3","pushed_at":"2012-05-17T19:11:22Z","size":3268,"html_url":"https://github.com/mbostock/d3","private":false,"url":"https://api.github.com/repos/mbostock/d3","clone_url":"https://github.com/mbostock/d3.git","owner":{"gravatar_id":"005a27e09fe946ebef64bf4d134efc0a","avatar_url":"https://secure.gravatar.com/avatar/005a27e09fe946ebef64bf4d134efc0a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/mbostock","login":"mbostock","id":230541},"name":"d3","has_downloads":true,"language":"JavaScript","watchers":6028,"git_url":"git://github.com/mbostock/d3.git","id":943149,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2010-09-27T17:22:42Z"},{"description":"Python bindings for libgit2","full_name":"libgit2/pygit2","has_wiki":false,"has_issues":true,"updated_at":"2012-05-26T01:50:51Z","forks":43,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:libgit2/pygit2.git","open_issues":10,"fork":false,"svn_url":"https://github.com/libgit2/pygit2","pushed_at":"2012-05-25T17:06:19Z","size":180,"html_url":"https://github.com/libgit2/pygit2","private":false,"url":"https://api.github.com/repos/libgit2/pygit2","clone_url":"https://github.com/libgit2/pygit2.git","owner":{"gravatar_id":"1c56acccc41c591705dc92da5f6ab603","avatar_url":"https://secure.gravatar.com/avatar/1c56acccc41c591705dc92da5f6ab603?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/libgit2","login":"libgit2","id":394745},"name":"pygit2","has_downloads":true,"language":"C","watchers":208,"git_url":"git://github.com/libgit2/pygit2.git","id":1062237,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2010-11-08T16:27:48Z"},{"description":"command line tool to facilitate github pull requests","full_name":"schacon/git-pulls","has_wiki":true,"has_issues":true,"updated_at":"2012-05-25T19:44:05Z","forks":21,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:schacon/git-pulls.git","open_issues":11,"fork":false,"svn_url":"https://github.com/schacon/git-pulls","pushed_at":"2011-10-28T07:11:56Z","size":1004,"html_url":"https://github.com/schacon/git-pulls","private":false,"url":"https://api.github.com/repos/schacon/git-pulls","clone_url":"https://github.com/schacon/git-pulls.git","owner":{"gravatar_id":"9375a9529679f1b42b567a640d775e7d","avatar_url":"https://secure.gravatar.com/avatar/9375a9529679f1b42b567a640d775e7d?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/schacon","login":"schacon","id":70},"name":"git-pulls","has_downloads":true,"language":"Ruby","watchers":172,"git_url":"git://github.com/schacon/git-pulls.git","id":1201343,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2010-12-27T20:39:24Z"},{"description":"Django template tag for rendering math formulas","full_name":"emesik/django_mathlatex","has_wiki":true,"has_issues":true,"updated_at":"2011-11-03T17:46:24Z","forks":1,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:emesik/django_mathlatex.git","open_issues":0,"fork":false,"svn_url":"https://github.com/emesik/django_mathlatex","pushed_at":"2011-04-01T11:33:23Z","size":448,"html_url":"https://github.com/emesik/django_mathlatex","private":false,"url":"https://api.github.com/repos/emesik/django_mathlatex","clone_url":"https://github.com/emesik/django_mathlatex.git","owner":{"gravatar_id":"0d0c6eda804f912d230df91577e29180","avatar_url":"https://secure.gravatar.com/avatar/0d0c6eda804f912d230df91577e29180?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/emesik","login":"emesik","id":407107},"name":"django_mathlatex","has_downloads":true,"language":"Python","watchers":3,"git_url":"git://github.com/emesik/django_mathlatex.git","id":1447846,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-03-06T22:29:04Z"},{"description":"Collaborative Online Scrum Tool Using Websockets, Node.js, jQuery, and CSS3","full_name":"aliasaria/scrumblr","has_wiki":true,"has_issues":true,"updated_at":"2012-05-25T17:36:00Z","forks":52,"mirror_url":null,"homepage":"http://scrumblr.ca","ssh_url":"git@github.com:aliasaria/scrumblr.git","open_issues":14,"fork":false,"svn_url":"https://github.com/aliasaria/scrumblr","pushed_at":"2012-02-08T00:38:52Z","size":132,"html_url":"https://github.com/aliasaria/scrumblr","private":false,"url":"https://api.github.com/repos/aliasaria/scrumblr","clone_url":"https://github.com/aliasaria/scrumblr.git","owner":{"gravatar_id":"a08f4e2d6ccccab586b502992c31e2ce","avatar_url":"https://secure.gravatar.com/avatar/a08f4e2d6ccccab586b502992c31e2ce?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/aliasaria","login":"aliasaria","id":213343},"name":"scrumblr","has_downloads":true,"language":"JavaScript","watchers":467,"git_url":"git://github.com/aliasaria/scrumblr.git","id":1461917,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-03-10T02:29:38Z"},{"description":"GitHub API documentation","full_name":"github/developer.github.com","has_wiki":false,"has_issues":false,"updated_at":"2012-05-25T19:27:37Z","forks":121,"mirror_url":null,"homepage":"http://developer.github.com","ssh_url":"git@github.com:github/developer.github.com.git","open_issues":0,"fork":false,"svn_url":"https://github.com/github/developer.github.com","pushed_at":"2012-05-25T18:02:37Z","size":200,"html_url":"https://github.com/github/developer.github.com","private":false,"url":"https://api.github.com/repos/github/developer.github.com","clone_url":"https://github.com/github/developer.github.com.git","owner":{"gravatar_id":"61024896f291303615bcd4f7a0dcfb74","avatar_url":"https://secure.gravatar.com/avatar/61024896f291303615bcd4f7a0dcfb74?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/github","login":"github","id":9919},"name":"developer.github.com","has_downloads":true,"language":"Ruby","watchers":255,"git_url":"git://github.com/github/developer.github.com.git","id":1666784,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-04-26T19:20:56Z"},{"description":"Github API v3 library for Python.","full_name":"ChristopherMacGown/python-github3","has_wiki":true,"has_issues":true,"updated_at":"2012-03-08T13:38:12Z","forks":11,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:ChristopherMacGown/python-github3.git","open_issues":1,"fork":false,"svn_url":"https://github.com/ChristopherMacGown/python-github3","pushed_at":"2011-11-22T18:10:52Z","size":236,"html_url":"https://github.com/ChristopherMacGown/python-github3","private":false,"url":"https://api.github.com/repos/ChristopherMacGown/python-github3","clone_url":"https://github.com/ChristopherMacGown/python-github3.git","owner":{"gravatar_id":"4174216c1dc0f223ce608d5a3b66a585","avatar_url":"https://secure.gravatar.com/avatar/4174216c1dc0f223ce608d5a3b66a585?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/ChristopherMacGown","login":"ChristopherMacGown","id":43081},"name":"python-github3","has_downloads":true,"language":"Python","watchers":20,"git_url":"git://github.com/ChristopherMacGown/python-github3.git","id":1676748,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-04-28T17:07:29Z"},{"description":"PlantUML plugin for MediaWiki","full_name":"pjkersten/PlantUML","has_wiki":true,"has_issues":true,"updated_at":"2012-02-06T15:26:40Z","forks":2,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:pjkersten/PlantUML.git","open_issues":0,"fork":false,"svn_url":"https://github.com/pjkersten/PlantUML","pushed_at":"2012-02-02T09:38:42Z","size":124,"html_url":"https://github.com/pjkersten/PlantUML","private":false,"url":"https://api.github.com/repos/pjkersten/PlantUML","clone_url":"https://github.com/pjkersten/PlantUML.git","owner":{"gravatar_id":"6e33170f0701d1d1d8dd57c8f95368ef","avatar_url":"https://secure.gravatar.com/avatar/6e33170f0701d1d1d8dd57c8f95368ef?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/pjkersten","login":"pjkersten","id":771883},"name":"PlantUML","has_downloads":true,"language":"PHP","watchers":5,"git_url":"git://github.com/pjkersten/PlantUML.git","id":1710505,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-05-06T09:33:38Z"},{"description":"HTML, CSS, and JS toolkit from Twitter","full_name":"twitter/bootstrap","has_wiki":true,"has_issues":true,"updated_at":"2012-05-26T10:36:02Z","forks":5807,"mirror_url":null,"homepage":"http://twitter.github.com/bootstrap","ssh_url":"git@github.com:twitter/bootstrap.git","open_issues":225,"fork":false,"svn_url":"https://github.com/twitter/bootstrap","pushed_at":"2012-05-25T16:19:13Z","size":1176,"html_url":"https://github.com/twitter/bootstrap","private":false,"url":"https://api.github.com/repos/twitter/bootstrap","clone_url":"https://github.com/twitter/bootstrap.git","owner":{"gravatar_id":"74e977ae0a10f06057a119eef30c6660","avatar_url":"https://secure.gravatar.com/avatar/74e977ae0a10f06057a119eef30c6660?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/twitter","login":"twitter","id":50278},"name":"bootstrap","has_downloads":true,"language":"JavaScript","watchers":29560,"git_url":"git://github.com/twitter/bootstrap.git","id":2126244,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-07-29T21:19:00Z"},{"description":"Drawn By is a collaborative real-time sketching app built for the 2011 Django Dash.","full_name":"stephenmcd/drawnby","has_wiki":true,"has_issues":true,"updated_at":"2012-04-30T11:48:56Z","forks":2,"mirror_url":null,"homepage":"http://drawnby.jupo.org","ssh_url":"git@github.com:stephenmcd/drawnby.git","open_issues":0,"fork":false,"svn_url":"https://github.com/stephenmcd/drawnby","pushed_at":"2011-08-01T10:26:00Z","size":672,"html_url":"https://github.com/stephenmcd/drawnby","private":false,"url":"https://api.github.com/repos/stephenmcd/drawnby","clone_url":"https://github.com/stephenmcd/drawnby.git","owner":{"gravatar_id":"ce5bfd8756e2fae0e800bbea413e86b3","avatar_url":"https://secure.gravatar.com/avatar/ce5bfd8756e2fae0e800bbea413e86b3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/stephenmcd","login":"stephenmcd","id":116385},"name":"drawnby","has_downloads":true,"language":"JavaScript","watchers":9,"git_url":"git://github.com/stephenmcd/drawnby.git","id":2136154,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-08-01T10:25:31Z"},{"description":"A Django app providing the features required to use websockets with Django via Socket.IO","full_name":"stephenmcd/django-socketio","has_wiki":true,"has_issues":true,"updated_at":"2012-05-25T18:54:30Z","forks":28,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:stephenmcd/django-socketio.git","open_issues":6,"fork":false,"svn_url":"https://github.com/stephenmcd/django-socketio","pushed_at":"2012-04-20T00:24:31Z","size":160,"html_url":"https://github.com/stephenmcd/django-socketio","private":false,"url":"https://api.github.com/repos/stephenmcd/django-socketio","clone_url":"https://github.com/stephenmcd/django-socketio.git","owner":{"gravatar_id":"ce5bfd8756e2fae0e800bbea413e86b3","avatar_url":"https://secure.gravatar.com/avatar/ce5bfd8756e2fae0e800bbea413e86b3?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/stephenmcd","login":"stephenmcd","id":116385},"name":"django-socketio","has_downloads":true,"language":"JavaScript","watchers":262,"git_url":"git://github.com/stephenmcd/django-socketio.git","id":2139136,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-08-01T21:18:34Z"},{"description":"Use this application to get Socket.IO support in your Django project and dive into real time web.","full_name":"jstasiak/django-realtime","has_wiki":true,"has_issues":true,"updated_at":"2012-05-08T07:18:20Z","forks":2,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:jstasiak/django-realtime.git","open_issues":0,"fork":false,"svn_url":"https://github.com/jstasiak/django-realtime","pushed_at":"2012-04-21T16:22:25Z","size":132,"html_url":"https://github.com/jstasiak/django-realtime","private":false,"url":"https://api.github.com/repos/jstasiak/django-realtime","clone_url":"https://github.com/jstasiak/django-realtime.git","owner":{"gravatar_id":"93cdbd3d2a76da1adf727a6bc9fec1ed","avatar_url":"https://secure.gravatar.com/avatar/93cdbd3d2a76da1adf727a6bc9fec1ed?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/jstasiak","login":"jstasiak","id":36209},"name":"django-realtime","has_downloads":true,"language":"JavaScript","watchers":15,"git_url":"git://github.com/jstasiak/django-realtime.git","id":2424738,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-09-20T19:13:10Z"},{"description":"Small programming examples for the FOX Board G20","full_name":"AcmeSystems/playground","has_wiki":true,"has_issues":true,"updated_at":"2012-05-21T16:12:27Z","forks":3,"mirror_url":null,"homepage":"http://www.acmesystems.it","ssh_url":"git@github.com:AcmeSystems/playground.git","open_issues":0,"fork":false,"svn_url":"https://github.com/AcmeSystems/playground","pushed_at":"2012-05-21T16:12:27Z","size":148,"html_url":"https://github.com/AcmeSystems/playground","private":false,"url":"https://api.github.com/repos/AcmeSystems/playground","clone_url":"https://github.com/AcmeSystems/playground.git","owner":{"gravatar_id":"af55714b265c4914c8bb8db49fc06da6","avatar_url":"https://secure.gravatar.com/avatar/af55714b265c4914c8bb8db49fc06da6?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/AcmeSystems","login":"AcmeSystems","id":783524},"name":"playground","has_downloads":true,"language":"Python","watchers":6,"git_url":"git://github.com/AcmeSystems/playground.git","id":2593052,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-10-17T16:16:10Z"},{"description":"A silly & effective MD5 cracker in Ruby","full_name":"juuso/BozoCrack","has_wiki":true,"has_issues":true,"updated_at":"2012-05-21T19:49:13Z","forks":39,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:juuso/BozoCrack.git","open_issues":8,"fork":false,"svn_url":"https://github.com/juuso/BozoCrack","pushed_at":"2011-11-07T14:55:19Z","size":140,"html_url":"https://github.com/juuso/BozoCrack","private":false,"url":"https://api.github.com/repos/juuso/BozoCrack","clone_url":"https://github.com/juuso/BozoCrack.git","owner":{"gravatar_id":"d3231546d42d67974fc51956a3b627f4","avatar_url":"https://secure.gravatar.com/avatar/d3231546d42d67974fc51956a3b627f4?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","url":"https://api.github.com/users/juuso","login":"juuso","id":614446},"name":"BozoCrack","has_downloads":true,"language":"Ruby","watchers":376,"git_url":"git://github.com/juuso/BozoCrack.git","id":2726128,"permissions":{"admin":false,"pull":true,"push":false},"created_at":"2011-11-07T13:02:08Z"},{"description":"","full_name":"BeaverSoftware/FatherBeaver","has_wiki":true,"has_issues":true,"updated_at":"2012-02-16T21:51:15Z","forks":1,"mirror_url":null,"homepage":"","ssh_url":"git@github.com:BeaverSoftware/FatherBeaver.git","open_issues":0,"fork":false,"svn_url":"https://github.com/BeaverSoftware/FatherBeaver","pushed_at":null,"size":0,"html_url":"https://github.com/BeaverSoftware/FatherBeaver","private":false,"url":"https://api.github.com/repos/BeaverSoftware/FatherBeaver","clone_url":"https://github.com/BeaverSoftware/FatherBeaver.git","owner":{"gravatar_id":"d563e337cac2fdc644e2aaaad1e23266","avatar_url":"https://secure.gravatar.com/avatar/d563e337cac2fdc644e2aaaad1e23266?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","url":"https://api.github.com/users/BeaverSoftware","login":"BeaverSoftware","id":1424031},"name":"FatherBeaver","has_downloads":true,"language":null,"watchers":2,"git_url":"git://github.com/BeaverSoftware/FatherBeaver.git","id":3400397,"permissions":{"admin":true,"pull":true,"push":true},"created_at":"2012-02-09T19:32:21Z"}] + +GET /users/jacquev6/watched?page=2 {'Authorization': 'Basic login_and_password_removed'} null +200 +[('status', '200 OK'), ('x-ratelimit-remaining', '4986'), ('content-length', '4493'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="first", ; rel="prev"'), ('etag', '"5894e9073dc54de74c439e23fc738fe7"'), ('date', 'Sat, 26 May 2012 10:36:30 GMT'), ('content-type', 'application/json; charset=utf-8')] +[{"clone_url":"https://github.com/abersager/PyGithub.git","has_downloads":true,"watchers":2,"updated_at":"2012-03-28T10:37:22Z","permissions":{"pull":true,"admin":false,"push":false},"homepage":"http://vincent-jacques.net/PyGithub","url":"https://api.github.com/repos/abersager/PyGithub","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":112,"private":false,"open_issues":0,"svn_url":"https://github.com/abersager/PyGithub","owner":{"url":"https://api.github.com/users/abersager","avatar_url":"https://secure.gravatar.com/avatar/b2e096f2c016d8dc168a3a5e6281b07a?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b2e096f2c016d8dc168a3a5e6281b07a","login":"abersager","id":1328351},"name":"PyGithub","language":"Python","description":"Python library implementing the full Github API v3","ssh_url":"git@github.com:abersager/PyGithub.git","git_url":"git://github.com/abersager/PyGithub.git","pushed_at":"2012-03-26T10:05:31Z","created_at":"2012-03-26T09:12:45Z","id":3831162,"mirror_url":null,"html_url":"https://github.com/abersager/PyGithub","full_name":"abersager/PyGithub"},{"clone_url":"https://github.com/django/django.git","has_downloads":true,"watchers":2391,"updated_at":"2012-05-26T10:30:33Z","permissions":{"pull":true,"admin":false,"push":false},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/django/django","has_wiki":false,"has_issues":false,"fork":false,"forks":263,"size":8408,"private":false,"open_issues":37,"svn_url":"https://github.com/django/django","owner":{"url":"https://api.github.com/users/django","avatar_url":"https://secure.gravatar.com/avatar/fd542381031aa84dca86628ece84fc07?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-orgs.png","gravatar_id":"fd542381031aa84dca86628ece84fc07","login":"django","id":27804},"name":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:django/django.git","git_url":"git://github.com/django/django.git","pushed_at":"2012-05-26T09:54:24Z","created_at":"2012-04-28T02:47:18Z","id":4164482,"mirror_url":null,"html_url":"https://github.com/django/django","full_name":"django/django"},{"clone_url":"https://github.com/jacquev6/django.git","has_downloads":true,"watchers":1,"updated_at":"2012-04-28T11:06:20Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://www.djangoproject.com/","url":"https://api.github.com/repos/jacquev6/django","has_wiki":false,"has_issues":false,"fork":true,"forks":0,"size":48476,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/django","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":"django","language":"Python","description":"The Web framework for perfectionists with deadlines. Now on GitHub.","ssh_url":"git@github.com:jacquev6/django.git","git_url":"git://github.com/jacquev6/django.git","pushed_at":"2012-04-28T04:05:15Z","created_at":"2012-04-28T11:06:20Z","id":4166730,"mirror_url":null,"html_url":"https://github.com/jacquev6/django","full_name":"jacquev6/django"},{"clone_url":"https://github.com/jacquev6/TestPyGithub.git","has_downloads":false,"watchers":1,"updated_at":"2012-05-26T09:55:27Z","permissions":{"pull":true,"admin":true,"push":true},"homepage":"http://foobar.com","url":"https://api.github.com/repos/jacquev6/TestPyGithub","has_wiki":false,"has_issues":false,"fork":false,"forks":1,"size":0,"private":false,"open_issues":0,"svn_url":"https://github.com/jacquev6/TestPyGithub","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":"TestPyGithub","language":null,"description":"Repo created by PyGithub","ssh_url":"git@github.com:jacquev6/TestPyGithub.git","git_url":"git://github.com/jacquev6/TestPyGithub.git","pushed_at":"2012-05-26T09:55:27Z","created_at":"2012-05-26T09:55:27Z","id":4454027,"mirror_url":null,"html_url":"https://github.com/jacquev6/TestPyGithub","full_name":"jacquev6/TestPyGithub"}] diff --git a/test/ReplayData/NamedUser.testPublicEvents.txt b/test/ReplayData/NamedUser.testPublicEvents.txt deleted file mode 100644 index b8692f7f..00000000 --- a/test/ReplayData/NamedUser.testPublicEvents.txt +++ /dev/null @@ -1,5 +0,0 @@ -GET /users/jacquev6/events/public {'Authorization': 'Basic login_and_password_removed'} null -200 -[('status', '200 OK'), ('x-ratelimit-remaining', '4945'), ('content-length', '63346'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('link', '; rel="next"'), ('etag', '"d39a03287b15817216fddfd1e160a3c3"'), ('date', 'Sun, 20 May 2012 12:28:46 GMT'), ('content-type', 'application/json; charset=utf-8')] -[{"type":"GistEvent","payload":{"action":"create","gist":{"created_at":"2012-05-20T12:14:08Z","comments":0,"public":true,"updated_at":"2012-05-20T12:14:08Z","files":{},"git_push_url":"git@gist.github.com:2757859.git","url":"https://api.github.com/gists/2757859","id":"2757859","git_pull_url":"git://gist.github.com/2757859.git","description":"Gist created by PyGithub on a NamedUser","html_url":"https://gist.github.com/2757859","user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-20T12:14:09Z","id":"1553915048","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-20T11:46:42Z","body":"Comment created by PyGithub","updated_at":"2012-05-20T11:46:42Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5808311","id":5808311,"user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},"action":"created","issue":{"number":28,"created_at":"2012-05-19T10:38:23Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":"Body edited by PyGithub","comments":1,"title":"Title edited by PyGithub","updated_at":"2012-05-20T11:46:43Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","id":4653757,"assignee":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":null,"title":"Version 1.0: coherent public interface","creator":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"closed_issues":1,"open_issues":11,"description":"Heavy rewrite to have:\r\n* a fully coherent public interface\r\n* usable stack-traces in case of exception\r\n* more explicit exceptions\r\n* more readable code (for library exploration, auto-completion in IDEs, etc.)\r\n\r\nSee working branch https://github.com/jacquev6/PyGithub/tree/topic/RewriteWithGeneratedCode","state":"open"},"closed_at":null,"labels":[{"name":"Bug","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Bug","color":"e10c02"},{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"},{"name":"Question","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Question","color":"02e10c"}],"html_url":"https://github.com/jacquev6/PyGithub/issues/28","user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-20T11:46:43Z","id":"1553912723","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"63f8767c5b8d1f2f8d88346a58cdb6173e251d52","size":9,"push_id":79333321,"commits":[{"sha":"da3bea69229c6498be48968db8dc27d21b05da67","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/da3bea69229c6498be48968db8dc27d21b05da67","distinct":true,"message":"Test Tag attributes"},{"sha":"667937b437747df181cfeeab84fa74bcc5e7b118","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/667937b437747df181cfeeab84fa74bcc5e7b118","distinct":true,"message":"Test Hooks"},{"sha":"350e014d55a82eab268d7229c99debce8ede3625","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/350e014d55a82eab268d7229c99debce8ede3625","distinct":true,"message":"Remove completion of Hook"},{"sha":"799d22a39e12b020b49dc59ce5775c6135ee54ea","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/799d22a39e12b020b49dc59ce5775c6135ee54ea","distinct":true,"message":"Remove __completed from non-completable classes"},{"sha":"a097671795e9dba08ff8e86f59e58ba98a4478e2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a097671795e9dba08ff8e86f59e58ba98a4478e2","distinct":true,"message":"Test Gist"},{"sha":"fdb10338257556a7590f8f93c16284dba49743d6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fdb10338257556a7590f8f93c16284dba49743d6","distinct":true,"message":"Rename some tests"},{"sha":"72c34a840d1492a62683f081bd00d286b28cef0f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/72c34a840d1492a62683f081bd00d286b28cef0f","distinct":true,"message":"Test labels (new special case in Repository.get_label...)"},{"sha":"c1787205baa31f20f8c444d2908677c4d09f4db0","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c1787205baa31f20f8c444d2908677c4d09f4db0","distinct":true,"message":"Test Milestone"},{"sha":"63f8767c5b8d1f2f8d88346a58cdb6173e251d52","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/63f8767c5b8d1f2f8d88346a58cdb6173e251d52","distinct":true,"message":"Test Issue"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-19T10:50:40Z","id":"1553749349","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":28,"created_at":"2012-05-19T10:38:23Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"body":null,"title":"Issue created by PyGithub","comments":0,"updated_at":"2012-05-19T10:38:23Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/28","id":4653757,"assignee":null,"milestone":null,"closed_at":null,"user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"html_url":"https://github.com/jacquev6/PyGithub/issues/28","labels":[],"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-19T10:38:24Z","id":"1553748323","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"fork","gist":{"created_at":"2012-05-19T07:25:30Z","public":true,"comments":0,"files":{},"updated_at":"2012-05-19T07:25:30Z","git_push_url":"git@gist.github.com:2729865.git","url":"https://api.github.com/gists/2729865","id":"2729865","git_pull_url":"git://gist.github.com/2729865.git","description":"RoR setup in AWS EC2(Ubuntu 12.04 LTS)","user":{"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","id":327146,"login":"jacquev6"},"html_url":"https://gist.github.com/2729865"}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-19T07:25:31Z","id":"1553728670","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"update","gist":{"created_at":"2012-05-19T07:00:58Z","comments":0,"public":true,"git_push_url":"git@gist.github.com:2729810.git","files":{},"updated_at":"2012-05-19T07:06:10Z","url":"https://api.github.com/gists/2729810","id":"2729810","git_pull_url":"git://gist.github.com/2729810.git","description":"Description edited by PyGithub","user":{"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","id":327146,"login":"jacquev6"},"html_url":"https://gist.github.com/2729810"}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-19T07:06:10Z","id":"1553727205","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"update","gist":{"created_at":"2012-05-19T07:00:58Z","public":true,"comments":0,"updated_at":"2012-05-19T07:04:31Z","files":{},"git_push_url":"git@gist.github.com:2729810.git","url":"https://api.github.com/gists/2729810","id":"2729810","git_pull_url":"git://gist.github.com/2729810.git","description":"Description edited by PyGitHub","html_url":"https://gist.github.com/2729810","user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-19T07:04:31Z","id":"1553727091","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"GistEvent","payload":{"action":"create","gist":{"created_at":"2012-05-19T07:00:58Z","comments":0,"public":true,"updated_at":"2012-05-19T07:00:58Z","files":{},"git_push_url":"git@gist.github.com:2729810.git","url":"https://api.github.com/gists/2729810","id":"2729810","git_pull_url":"git://gist.github.com/2729810.git","description":"Gist created by PyGithub","html_url":"https://gist.github.com/2729810","user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos//","name":"/"},"created_at":"2012-05-19T07:00:58Z","id":"1553726807","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"8cca4872ed04efb0252fbc70431b615931193145","size":3,"push_id":79265481,"commits":[{"sha":"030b23a3a9112864e922a965254428beefebbe42","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/030b23a3a9112864e922a965254428beefebbe42","distinct":true,"message":"Test Issue attributes"},{"sha":"55779ebbb4d8848ca7a2cf6ffbeb029239dbfdf2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/55779ebbb4d8848ca7a2cf6ffbeb029239dbfdf2","distinct":true,"message":"Test attributes of NamedUser"},{"sha":"8cca4872ed04efb0252fbc70431b615931193145","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8cca4872ed04efb0252fbc70431b615931193145","distinct":true,"message":"Test attributes of commit comments"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-18T20:30:16Z","id":"1553628294","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":3,"created_at":"2012-05-18T20:11:17Z","line":25,"body":"This comment is here only to test PyGithub...","updated_at":"2012-05-18T20:11:17Z","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1349654","id":1349654,"path":"codegen/templates/GithubObject.MethodBody.UseResult.py","html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1349654","user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-18T20:11:17Z","id":"1553622265","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CommitCommentEvent","payload":{"comment":{"position":null,"created_at":"2012-05-18T08:59:28Z","line":null,"body":"No, it has nothing to do with auto-completion in IDEs :D\n\nGithub API v3 sends only the main part of objects in reply to some requests. So, if the user wants an attribute that has not been received yet, I have to do another request to complete the object.\n\nYet, in version 1.0 (see the milesone), my library will be much more readable for IDEs and their auto-completion mechanisms, because I am giving up the meta-description that I used until 0.6, and I'm now generating much more traditional code, that you will be able to explore as if it was written manually.\n\nIf you want to take the time to open an issue about auto-completion in IDEs, I'll deal with it in milestion 1.0.\n\nThanks !","updated_at":"2012-05-18T08:59:28Z","commit_id":"6945921c529be14c3a8f566dd1e483674516d46d","url":"https://api.github.com/repos/jacquev6/PyGithub/comments/1347083","id":1347083,"path":null,"html_url":"https://github.com/jacquev6/PyGithub/commit/6945921c529be14c3a8f566dd1e483674516d46d#commitcomment-1347083","user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-18T08:59:28Z","id":"1553410839","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"WatchEvent","payload":{"action":"started"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-18T05:29:53Z","id":"1553373866","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-18T05:27:40Z","body":"Thank you for your feedback.\n\nI have indeed not yet implemented this feature because I have no real use of it: each API call is more than half a second long, so it's hard to reach the rate limit.\n\nAnyway, it is easy to extract the rate limiting headers, so I will add an attribute to the Github class to give access to their last value.\n\nExpect it in version 1.0. I will set an expected date on the milestone during the week-end.\n","updated_at":"2012-05-18T05:27:40Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5780183","id":5780183,"user":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},"action":"created","issue":{"number":26,"created_at":"2012-05-17T12:02:05Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"title":"Rate limiting?","comments":1,"body":"Hi!\n\nI tried to find a function which returns the number of API requests I have remaining due to [rate limiting](http://developer.github.com/v3/#rate-limiting). Is this somewhere in the library and I can't find it? If not, I think it would be a great feature to have, to be able to keep track of how many requests certain actions use up.","updated_at":"2012-05-18T05:27:40Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/26","id":4622816,"assignee":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":null,"title":"Version 1.0: coherent public interface","creator":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"closed_issues":1,"open_issues":10,"description":"","state":"open"},"closed_at":null,"html_url":"https://github.com/jacquev6/PyGithub/issues/26","labels":[],"user":{"avatar_url":"https://secure.gravatar.com/avatar/2aed663a62fa8bf9f7aebe603d3998bb?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"2aed663a62fa8bf9f7aebe603d3998bb","url":"https://api.github.com/users/bilderbuchi","id":327442,"login":"bilderbuchi"},"state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-18T05:27:40Z","id":"1553373556","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"c75cb64d906ce4e21c509102004d4f9770348bf7","size":12,"push_id":79118465,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"93007180f6796f83a57f66f94b3ac58b1ae8ece7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/93007180f6796f83a57f66f94b3ac58b1ae8ece7","distinct":true,"message":"Remove useless code"},{"sha":"5a943ad0b255797cea79188bb346c670076062ce","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5a943ad0b255797cea79188bb346c670076062ce","distinct":true,"message":"Test Organization attributes"},{"sha":"dc1a8f8c9d9b8fb90f93a484629eb3f7a5d23dcc","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/dc1a8f8c9d9b8fb90f93a484629eb3f7a5d23dcc","distinct":true,"message":"Assert that we know all attributes\n\nTo be removed before release, since this would break the application if\ngithub.com adds a new attribute"},{"sha":"6ba5baad7ec39d7eed64049624c6519750fcb297","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6ba5baad7ec39d7eed64049624c6519750fcb297","distinct":true,"message":"Test Repository.create_git_blob"},{"sha":"f23ed6341da0fcf7a416d04ad0ab252ed55308a5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f23ed6341da0fcf7a416d04ad0ab252ed55308a5","distinct":true,"message":"Create a GitTreeElement class"},{"sha":"8956796e7f462a49f499eac52fab901cdb59abdb","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8956796e7f462a49f499eac52fab901cdb59abdb","distinct":true,"message":"Be explicit about complete-ability"},{"sha":"71b0ede8dec2436643ca0d6374c603f3794a1562","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/71b0ede8dec2436643ca0d6374c603f3794a1562","distinct":true,"message":"Remove complete-ability from git objects"},{"sha":"350c7a3726311e83a903cc02ec8f080010fcef54","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/350c7a3726311e83a903cc02ec8f080010fcef54","distinct":true,"message":"Remove repeated code"},{"sha":"a72d8b135841aa00158054d229c8e18333075cd4","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a72d8b135841aa00158054d229c8e18333075cd4","distinct":true,"message":"Improve management of lazy completion"},{"sha":"6945921c529be14c3a8f566dd1e483674516d46d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6945921c529be14c3a8f566dd1e483674516d46d","distinct":true,"message":"Use NoCompletion when creating an object from the result of a request"},{"sha":"1a20e048f214d625622e5f1b5494d99cb247f98b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1a20e048f214d625622e5f1b5494d99cb247f98b","distinct":true,"message":"Test attributes of Milestone"},{"sha":"c75cb64d906ce4e21c509102004d4f9770348bf7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c75cb64d906ce4e21c509102004d4f9770348bf7","distinct":true,"message":"Improve message when we check that we know all attributes"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-18T05:18:18Z","id":"1553372245","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"d052371c15e2b3fcd2fd347518f1bf2e257e6382","size":1,"push_id":77713594,"commits":[{"sha":"d052371c15e2b3fcd2fd347518f1bf2e257e6382","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d052371c15e2b3fcd2fd347518f1bf2e257e6382","distinct":true,"message":"Create a class Permissions"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T20:00:26Z","id":"1550890586","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"2cd6dbce91804d33b15332367dc9ab35c9d59f15","size":8,"push_id":77707669,"ref":"refs/heads/topic/RewriteWithGeneratedCode","commits":[{"sha":"5c18c20ec4e790792635e22cc1065ec2956ebd3e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5c18c20ec4e790792635e22cc1065ec2956ebd3e","distinct":true,"message":"Change sys.path to import the development version in tests!"},{"sha":"2e76c9b7c569bfa5b8bf0a13d2049002ff73fa9a","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2e76c9b7c569bfa5b8bf0a13d2049002ff73fa9a","distinct":true,"message":"Test GitTag attributes"},{"sha":"71b8d5a3cc805c017c13c7adbcc49142a02c53fb","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/71b8d5a3cc805c017c13c7adbcc49142a02c53fb","distinct":true,"message":"Re-order tests"},{"sha":"79ce8784291025d4235be9e4fae1ecf6d92d8cbf","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/79ce8784291025d4235be9e4fae1ecf6d92d8cbf","distinct":true,"message":"Test Repository.create_git_ref, GitRef.edit and .delete (needs a manual edition of Repository.py)"},{"sha":"1a886afbd6529793ed24719c107c1ad2c313fb25","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1a886afbd6529793ed24719c107c1ad2c313fb25","distinct":true,"message":"Reorganize test fixtures"},{"sha":"7c4fc487c2a06f38ccabdaf60ae0f8d4c3442356","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/7c4fc487c2a06f38ccabdaf60ae0f8d4c3442356","distinct":true,"message":"Test AuthenticatedUser.create_repo (requires manual edition of generated code)"},{"sha":"9cc24b0d3f0fd810836c84354a9c4fe7ea96ad0f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/9cc24b0d3f0fd810836c84354a9c4fe7ea96ad0f","distinct":true,"message":"Custom url for AuthenticatedUser"},{"sha":"2cd6dbce91804d33b15332367dc9ab35c9d59f15","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2cd6dbce91804d33b15332367dc9ab35c9d59f15","distinct":true,"message":"Test Repository.edit"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T19:33:23Z","id":"1550880794","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"CreateEvent","payload":{"master_branch":"master","ref_type":"repository","description":null,"ref":null},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/TestPyGithub","id":4288693,"name":"jacquev6/TestPyGithub"},"created_at":"2012-05-10T19:17:13Z","id":"1550874963","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"4303c5b90e2216d927155e9609436ccb8984c495","size":0,"push_id":77697827,"commits":[],"ref":"refs/heads/BranchCreatedByPyGithub"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T18:49:21Z","id":"1550864260","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"04cde900a0775b51f762735637bd30de392a2793","size":1,"push_id":77697824,"ref":"refs/heads/BranchCreatedByPyGithub","commits":[{"sha":"04cde900a0775b51f762735637bd30de392a2793","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/04cde900a0775b51f762735637bd30de392a2793","distinct":false,"message":"On the way to code generation instead of meta-description\n\n(lots of useless eratic history squashed together in one commit)"}]},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T18:49:21Z","id":"1550864258","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"4303c5b90e2216d927155e9609436ccb8984c495","size":2,"push_id":77697820,"commits":[{"sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","distinct":false,"message":"Publish version 0.6"},{"sha":"4303c5b90e2216d927155e9609436ccb8984c495","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","distinct":false,"message":"Merge branch 'develop'"}],"ref":"refs/heads/BranchCreatedByPyGithub"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T18:49:20Z","id":"1550864252","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"4c4e551d39f77beb507cd745408284eb0f8078ec","size":9,"push_id":77687307,"commits":[{"sha":"cd68559b0861ad2be12be29b9d4b7ec66e885191","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cd68559b0861ad2be12be29b9d4b7ec66e885191","distinct":true,"message":"Separate asserts on type and assignments of values of attributes"},{"sha":"d631e83b7901b0a0b6061b361130700a79505319","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d631e83b7901b0a0b6061b361130700a79505319","distinct":true,"message":"Move files around"},{"sha":"d6efda12012dfb0c35f81d2c291bed575d2f9336","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d6efda12012dfb0c35f81d2c291bed575d2f9336","distinct":true,"message":"Remove old tests"},{"sha":"595e88cd5537208958f90d6727965cc7918f09a7","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/595e88cd5537208958f90d6727965cc7918f09a7","distinct":true,"message":"Rename new tests as only tests"},{"sha":"283da5e7de6a4a3b6aaae7045909d70b643ad380","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/283da5e7de6a4a3b6aaae7045909d70b643ad380","distinct":true,"message":"Fix code generation and tests after reorganization"},{"sha":"a78d82212b67402527d1a0200300e772bc889620","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a78d82212b67402527d1a0200300e772bc889620","distinct":true,"message":"Modularize integration tests"},{"sha":"efa58887aa170aefe844d1c4a3f6c9d8d030548d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/efa58887aa170aefe844d1c4a3f6c9d8d030548d","distinct":true,"message":"Test Branch and Commit attributes"},{"sha":"3c71195916d2f3352ca354d99115709a9334617b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3c71195916d2f3352ca354d99115709a9334617b","distinct":true,"message":"Test GitRef attributes"},{"sha":"4c4e551d39f77beb507cd745408284eb0f8078ec","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4c4e551d39f77beb507cd745408284eb0f8078ec","distinct":true,"message":"Todo"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-10T18:02:02Z","id":"1550846032","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","size":17,"push_id":77421832,"commits":[{"sha":"bc08112dce9be4227c90ad812ff4b6e6dbfc81c5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bc08112dce9be4227c90ad812ff4b6e6dbfc81c5","distinct":true,"message":"Do not try to __complete objects without url"},{"sha":"ead8fdd1659f743a060679d77ec94deaa7ac92a0","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ead8fdd1659f743a060679d77ec94deaa7ac92a0","distinct":true,"message":"Use a small eval instead of a big exec"},{"sha":"c559faa6804f4066fee641a079c008f570adffb5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c559faa6804f4066fee641a079c008f570adffb5","distinct":true,"message":"Check types of received attributes"},{"sha":"114db51fe79cad37e50bc3bc82c183c7d2845316","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/114db51fe79cad37e50bc3bc82c183c7d2845316","distinct":true,"message":"Test attributes of Repository"},{"sha":"5e4cfeda7f5a3f9c8738ba953d704b7e1d28a3f6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5e4cfeda7f5a3f9c8738ba953d704b7e1d28a3f6","distinct":true,"message":"Test attributes of GitTree (needs a manual change in url in Repository.get_git_tree)"},{"sha":"a03ff8d09ef2f1d55284b8797dd5b9a95b19f917","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a03ff8d09ef2f1d55284b8797dd5b9a95b19f917","distinct":true,"message":"Explanation about a todo"},{"sha":"d577b691527f5c7f6f663ceef42cba472aae7209","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d577b691527f5c7f6f663ceef42cba472aae7209","distinct":true,"message":"Further simplify record mode"},{"sha":"e1afa5aa3ca92f26aa8dfc3c3d979c1d6d573b39","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e1afa5aa3ca92f26aa8dfc3c3d979c1d6d573b39","distinct":true,"message":"Standardize detection of replay problems"},{"sha":"ec389d6b62275ccc07f935184cdcbd82bb9124cd","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ec389d6b62275ccc07f935184cdcbd82bb9124cd","distinct":true,"message":"Remove more code again"},{"sha":"d4a6a3a344e642672fd3107943bf8899326e9ee1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d4a6a3a344e642672fd3107943bf8899326e9ee1","distinct":true,"message":"Fix urls for git objects"},{"sha":"1612b7bcf7b3449c3820c2e49033894e7135739f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1612b7bcf7b3449c3820c2e49033894e7135739f","distinct":true,"message":"Test GitBlob attributes"},{"sha":"954177f98928d5768b02d3cf6340fddcad697410","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/954177f98928d5768b02d3cf6340fddcad697410","distinct":true,"message":"Re-order tests"},{"sha":"80b4e550f354ff5285717eb096839ea25b238fad","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/80b4e550f354ff5285717eb096839ea25b238fad","distinct":true,"message":"Test attributes of GitCommit"},{"sha":"f23ad16aaaf4c5b2f312317cabf3c3e67dccc92b","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f23ad16aaaf4c5b2f312317cabf3c3e67dccc92b","distinct":true,"message":"Add a GitAuthor class"},{"sha":"f14d761344782215c94a23be806a357e5d7ab58d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f14d761344782215c94a23be806a357e5d7ab58d","distinct":true,"message":"Structure some attributes"},{"sha":"b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b46ed0dfde5ad02d3b91eb54a41c5ed960710eae","distinct":true,"message":"More assertions"},{"sha":"1292bf0e22c796e91cc3d6e24b544aece8c21f2a","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1292bf0e22c796e91cc3d6e24b544aece8c21f2a","distinct":true,"message":"Remove completion functions from GitAuthor"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-09T16:22:49Z","id":"1550379824","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"824b45490dd3b8b2fae4bd4201f195249e26e8a1","size":1,"push_id":77223918,"commits":[{"sha":"824b45490dd3b8b2fae4bd4201f195249e26e8a1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/824b45490dd3b8b2fae4bd4201f195249e26e8a1","distinct":true,"message":"Add a Plan class"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-08T19:27:45Z","id":"1550038588","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"f2ccff31671f56b9a1db152056c40fc5118ac403","size":11,"push_id":77220608,"commits":[{"sha":"84dff1cca70806dd51440fef0634626fd5180a59","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/84dff1cca70806dd51440fef0634626fd5180a59","distinct":true,"message":"Fix testKeys"},{"sha":"e614a30e129b8b7a54173571a379ffe976696578","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e614a30e129b8b7a54173571a379ffe976696578","distinct":true,"message":"Fix testRepositoryCompare"},{"sha":"74d7704bcd1c291b9003b5785b5978a8036c0505","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/74d7704bcd1c291b9003b5785b5978a8036c0505","distinct":true,"message":"Repository.get_languages => fix testRepositoryDetails"},{"sha":"4b820e09c9487b8f92a8fc098c6e708d16219ec1","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4b820e09c9487b8f92a8fc098c6e708d16219ec1","distinct":true,"message":"Remove an old todo"},{"sha":"1625a645de547b29e9de0f40d40cbcdc4a72f29d","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1625a645de547b29e9de0f40d40cbcdc4a72f29d","distinct":true,"message":"Start to rewrite integration test"},{"sha":"1c2f5c78cc8c018775e389a2520e570a707118a6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c2f5c78cc8c018775e389a2520e570a707118a6","distinct":true,"message":"Improve coverage"},{"sha":"26676020797823c0ff91ccb3cca6112d4b93261e","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/26676020797823c0ff91ccb3cca6112d4b93261e","distinct":true,"message":"First recording for new integration tests"},{"sha":"523f2fdd1dcd2e58bc30f6541e53d9858cfa244f","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/523f2fdd1dcd2e58bc30f6541e53d9858cfa244f","distinct":true,"message":"Fix recording"},{"sha":"00904f33330d690994a973cd0e021c498e826bc5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/00904f33330d690994a973cd0e021c498e826bc5","distinct":true,"message":"Cover AuthenticatedUser.edit"},{"sha":"656556341233c62324445eb3f5cef6331a7578d3","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/656556341233c62324445eb3f5cef6331a7578d3","distinct":true,"message":"Ensure that recorded calls are all replayed"},{"sha":"f2ccff31671f56b9a1db152056c40fc5118ac403","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/f2ccff31671f56b9a1db152056c40fc5118ac403","distinct":true,"message":"Add a Plan class"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-08T19:12:55Z","id":"1550033011","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"658e8e1ff5d4846d7aa709e516432843d39ad3d5","size":15,"push_id":77097011,"commits":[{"sha":"b9d318a09a89d71a9025da545e0883ee06bb2e40","author":{"name":"Baylor Rae'","email":"baylorrae@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/b9d318a09a89d71a9025da545e0883ee06bb2e40","distinct":true,"message":"fix a typo that didn't create a link"},{"sha":"fe434fe8d0dc57d06d8491ce0ce8d407e2634170","author":{"name":"Chris McDonald","email":"XWraithanX@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/fe434fe8d0dc57d06d8491ce0ce8d407e2634170","distinct":true,"message":"spelling fix: tecnique -> technique"},{"sha":"5c8f53cd01538eaf4a097636861dd87408bdd61e","author":{"name":"Clint Shryock","email":"clint@ctshryock.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/5c8f53cd01538eaf4a097636861dd87408bdd61e","distinct":true,"message":"Fix small typo\n\n\"a comments\" -> \"a comment\""},{"sha":"f8a3a353705e85132373c40d029af8b544de44b6","author":{"name":"Tyler Stalder","email":"tyler@stalder.me"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/f8a3a353705e85132373c40d029af8b544de44b6","distinct":true,"message":"Fix the links to the the newer /settings/applications/new"},{"sha":"9d11e103e1b5f01088d60a9d9f765b78565c4e7d","author":{"name":"John Barnette","email":"jbarnette@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/9d11e103e1b5f01088d60a9d9f765b78565c4e7d","distinct":true,"message":"Merge pull request #70 from BaylorRae/patch-1\n\nfix a typo that didn't create a link"},{"sha":"4036368a0ecfc7676e421ab81a9dd4beb566c5fb","author":{"name":"John Barnette","email":"jbarnette@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/4036368a0ecfc7676e421ab81a9dd4beb566c5fb","distinct":true,"message":"Merge pull request #71 from wraithan/patch-1\n\nspelling fix: tecnique -> technique"},{"sha":"c3a412b425e699f4d2bc5cea9c5bf90287bd8c39","author":{"name":"John Barnette","email":"jbarnette@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/c3a412b425e699f4d2bc5cea9c5bf90287bd8c39","distinct":true,"message":"Merge pull request #73 from ctshryock/mime-typo\n\nFix small typo on /v3/mime/"},{"sha":"338fc8c0e1ebd58c02fd3dd7197032947f4410bd","author":{"name":"John Barnette","email":"jbarnette@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/338fc8c0e1ebd58c02fd3dd7197032947f4410bd","distinct":true,"message":"Merge pull request #74 from tylerstalder/patch-1\n\nFix the links to the the newer /settings/applications/new"},{"sha":"52b8a57eca396da67c8a3fb0d7b022348324cbb3","author":{"name":"John Barnette","email":"john@jbarnette.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/52b8a57eca396da67c8a3fb0d7b022348324cbb3","distinct":true,"message":"Make new auth link anchor consistent. (@kastiglione)"},{"sha":"11fa772024c1b6ed578b5de95121f5f5935528e9","author":{"name":"John Barnette","email":"john@jbarnette.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/11fa772024c1b6ed578b5de95121f5f5935528e9","distinct":true,"message":"Squash an encoding issue."},{"sha":"1773daffb48b4d48f34ad145f22a7fa8e655625f","author":{"name":"John Barnette","email":"john@jbarnette.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/1773daffb48b4d48f34ad145f22a7fa8e655625f","distinct":true,"message":"Stop lying."},{"sha":"da0ecbdfd9cb3d3b23299c05f0325f92acf07771","author":{"name":"Jason Salaz","email":"jsalaz@github.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/da0ecbdfd9cb3d3b23299c05f0325f92acf07771","distinct":true,"message":"Suggested clarification from Bradley at Logos -> https://support.enterprise.github.com/tickets/478"},{"sha":"63cd091f4ca04a3b9b3b960d3ad588125d2c2e1b","author":{"name":"rick","email":"technoweenie@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/63cd091f4ca04a3b9b3b960d3ad588125d2c2e1b","distinct":true,"message":"Update content/v3.md"},{"sha":"d6599c82af8cfd98f7cb2e815d64ca3af890bb3e","author":{"name":"rick","email":"technoweenie@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/d6599c82af8cfd98f7cb2e815d64ca3af890bb3e","distinct":true,"message":"Update content/v3.md"},{"sha":"658e8e1ff5d4846d7aa709e516432843d39ad3d5","author":{"name":"rick","email":"technoweenie@gmail.com"},"url":"https://api.github.com/repos/jacquev6/developer.github.com/commits/658e8e1ff5d4846d7aa709e516432843d39ad3d5","distinct":true,"message":"pull request changes"}],"ref":"refs/heads/master"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/developer.github.com","id":3361136,"name":"jacquev6/developer.github.com"},"created_at":"2012-05-08T08:36:30Z","id":"1549819985","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"fcd377e377c23f87779d7940c3e894fd5844aad2","size":5,"push_id":77092135,"commits":[{"sha":"90ff8697b7039fcc1f12369b421f31319fd996df","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/90ff8697b7039fcc1f12369b421f31319fd996df","distinct":true,"message":"Simplify definition of list types"},{"sha":"c01d36a64eb6c4e69e3ac2f6ade27d793f7f2300","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c01d36a64eb6c4e69e3ac2f6ade27d793f7f2300","distinct":true,"message":"Remove underscores in keys in description, to allow hunting underscores in values"},{"sha":"07e994823e22a01d11612f141c2c0f9336ae5bf5","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/07e994823e22a01d11612f141c2c0f9336ae5bf5","distinct":true,"message":"Fix testGists"},{"sha":"5be7fed4c9533dedffe03c7f908a608a8e6fe221","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5be7fed4c9533dedffe03c7f908a608a8e6fe221","distinct":true,"message":"Todo"},{"sha":"fcd377e377c23f87779d7940c3e894fd5844aad2","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fcd377e377c23f87779d7940c3e894fd5844aad2","distinct":true,"message":"Fix testIssuesForAuthenticatedUser"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-08T07:57:57Z","id":"1549811703","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"opened","issue":{"number":25,"pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"created_at":"2012-05-07T10:49:06Z","body":"List known clients.\r\n\r\nFirst known client: http://pypi.python.org/pypi/tratihubis/ (cf #24)","comments":0,"title":"List project(s) using PyGithub","updated_at":"2012-05-07T10:49:06Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/25","id":4452000,"assignee":{"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","id":327146,"login":"jacquev6"},"milestone":{"number":2,"created_at":"2012-03-08T12:22:28Z","due_on":null,"title":"Version 1.0: coherent public interface","creator":{"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","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"closed_issues":1,"open_issues":9,"description":"","state":"open"},"closed_at":null,"user":{"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","id":327146,"login":"jacquev6"},"labels":[{"name":"Project management","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Project+management","color":"444444"}],"html_url":"https://github.com/jacquev6/PyGithub/issues/25","state":"open"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-07T10:49:07Z","id":"1549467026","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssueCommentEvent","payload":{"comment":{"created_at":"2012-05-07T10:45:58Z","body":"This was reported by user in #24. I close this one because the other one has more information.","updated_at":"2012-05-07T10:45:58Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/comments/5547576","id":5547576,"user":{"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","id":327146,"login":"jacquev6"}},"action":"created","issue":{"number":6,"created_at":"2012-03-12T19:45:51Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"title":"Review exceptions policy when receiving error HTTP status","body":"","comments":1,"updated_at":"2012-05-07T10:45:58Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6","id":3617711,"assignee":{"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","id":327146,"login":"jacquev6"},"milestone":{"number":2,"due_on":null,"created_at":"2012-03-08T12:22:28Z","title":"Version 1.0: coherent public interface","creator":{"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","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"open_issues":8,"closed_issues":1,"description":"","state":"open"},"closed_at":"2012-05-07T10:45:58Z","html_url":"https://github.com/jacquev6/PyGithub/issues/6","labels":[{"name":"Public interface","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","color":"d7e102"}],"user":{"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","id":327146,"login":"jacquev6"},"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-07T10:45:59Z","id":"1549466428","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"IssuesEvent","payload":{"action":"closed","issue":{"number":6,"created_at":"2012-03-12T19:45:51Z","pull_request":{"diff_url":null,"patch_url":null,"html_url":null},"title":"Review exceptions policy when receiving error HTTP status","body":"","comments":1,"updated_at":"2012-05-07T10:45:58Z","url":"https://api.github.com/repos/jacquev6/PyGithub/issues/6","id":3617711,"assignee":{"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","id":327146,"login":"jacquev6"},"milestone":{"number":2,"due_on":null,"created_at":"2012-03-08T12:22:28Z","title":"Version 1.0: coherent public interface","creator":{"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","id":327146,"login":"jacquev6"},"url":"https://api.github.com/repos/jacquev6/PyGithub/milestones/2","id":93547,"open_issues":8,"closed_issues":1,"description":"","state":"open"},"closed_at":"2012-05-07T10:45:58Z","html_url":"https://github.com/jacquev6/PyGithub/issues/6","labels":[{"name":"Public interface","url":"https://api.github.com/repos/jacquev6/PyGithub/labels/Public+interface","color":"d7e102"}],"user":{"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","id":327146,"login":"jacquev6"},"state":"closed"}},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-07T10:45:59Z","id":"1549466427","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}},{"type":"PushEvent","payload":{"head":"0063647781e3beafb088bee0e62757ef3d8f38b6","size":1,"push_id":76816260,"commits":[{"sha":"0063647781e3beafb088bee0e62757ef3d8f38b6","author":{"name":"Vincent Jacques","email":"vincent@vincent-jacques.net"},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0063647781e3beafb088bee0e62757ef3d8f38b6","distinct":true,"message":"Restore documentation of two methods"}],"ref":"refs/heads/topic/RewriteWithGeneratedCode"},"public":true,"repo":{"url":"https://api.github.com/repos/jacquev6/PyGithub","id":3544490,"name":"jacquev6/PyGithub"},"created_at":"2012-05-06T20:48:16Z","id":"1549334604","actor":{"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","url":"https://api.github.com/users/jacquev6","id":327146,"login":"jacquev6"}}] -