https
GET
api.github.com
None
/repos/jacquev6/PyGithub/compare/v0.6...v0.7
{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
null
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4997'), ('content-length', '14488'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"42eb6d36008b20550ae6d1991e0423d5"'), ('date', 'Sun, 27 May 2012 06:30:33 GMT'), ('content-type', 'application/json; charset=utf-8')]
{"status":"ahead","behind_by":0,"total_commits":4,"merge_base_commit":{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","committer":{"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},"sha":"4303c5b90e2216d927155e9609436ccb8984c495","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},"patch_url":"https://github.com/jacquev6/PyGithub/compare/v0.6...v0.7.patch","diff_url":"https://github.com/jacquev6/PyGithub/compare/v0.6...v0.7.diff","url":"https://api.github.com/repos/jacquev6/PyGithub/compare/v0.6...v0.7","ahead_by":4,"base_commit":{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","committer":{"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},"sha":"4303c5b90e2216d927155e9609436ccb8984c495","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/936f4a97f1a86392637ec002bbf89ff036a5062d","sha":"936f4a97f1a86392637ec002bbf89ff036a5062d"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/2a7e80e6421c5d4d201d60619068dea6bae612cb","sha":"2a7e80e6421c5d4d201d60619068dea6bae612cb"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4303c5b90e2216d927155e9609436ccb8984c495","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-04-17T10:55:16-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/f492784d8ca837779650d1fb406a1a3587a764ad","sha":"f492784d8ca837779650d1fb406a1a3587a764ad"}}},"permalink_url":"https://github.com/jacquev6/PyGithub/compare/jacquev6:4303c5b...jacquev6:ecda065","files":[{"status":"modified","changes":2,"deletions":1,"raw_url":"https://github.com/jacquev6/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/ReferenceOfClasses.md","blob_url":"https://github.com/jacquev6/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/ReferenceOfClasses.md","filename":"ReferenceOfClasses.md","patch":"@@ -3,7 +3,7 @@ You obtain instances through calls to `get_` and `create_` methods.\n \n Class `Github`\n ==============\n-* Constructed from user's login and password\n+* Constructed from user's login and password or OAuth token\n * `get_user()`: `AuthenticatedUser`\n * `get_user( login )`: `NamedUser`\n * `get_organization( login )`: `Organization`","additions":1,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"},{"status":"modified","changes":4,"deletions":2,"raw_url":"https://github.com/jacquev6/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Github.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Github.py","filename":"github/Github.py","patch":"@@ -2,8 +2,8 @@\n from GithubObjects import *\n \n class Github:\n-    def __init__( self, login, password, debugFile = None ):\n-        self.__requester = Requester( login, password )\n+    def __init__( self, login_or_token = None, password = None, debugFile = None ):\n+        self.__requester = Requester( login_or_token, password )\n         self.__debugFile = debugFile\n \n     def _dataRequest( self, verb, url, parameters, data ):","additions":2,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"},{"status":"modified","changes":17,"deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Requester.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/github/Requester.py","filename":"github/Requester.py","patch":"@@ -7,8 +7,15 @@ class UnknownGithubObject( Exception ):\n     pass\n \n class Requester:\n-    def __init__( self, login, password ):\n-        self.__authorizationHeader = \"Basic \" + base64.b64encode( login + \":\" + password ).replace( '\\n', '' )\n+    def __init__( self, login_or_token, password ):\n+        if password is not None:\n+            login = login_or_token\n+            self.__authorizationHeader = \"Basic \" + base64.b64encode( login + \":\" + password ).replace( '\\n', '' )\n+        elif login_or_token is not None:\n+            token = login_or_token\n+            self.__authorizationHeader = \"token \" + token\n+        else:\n+            self.__authorizationHeader = None\n \n     def dataRequest( self, verb, url, parameters, input ):\n         if parameters is None:\n@@ -46,12 +53,16 @@ def statusRequest( self, verb, url, parameters, input ):\n     def __rawRequest( self, verb, url, parameters, input ):\n         assert verb in [ \"HEAD\", \"GET\", \"POST\", \"PATCH\", \"PUT\", \"DELETE\" ]\n \n+        headers = dict()\n+        if self.__authorizationHeader is not None:\n+            headers[ \"Authorization\" ] = self.__authorizationHeader\n+\n         cnx = httplib.HTTPSConnection( \"api.github.com\", strict = True )\n         cnx.request(\n             verb,\n             self.__completeUrl( url, parameters ),\n             json.dumps( input ),\n-            { \"Authorization\" : self.__authorizationHeader }\n+            headers\n         )\n         response = cnx.getresponse()\n ","additions":14,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"},{"status":"modified","changes":10,"deletions":1,"raw_url":"https://github.com/jacquev6/PyGithub/raw/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/setup.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7/setup.py","filename":"setup.py","patch":"@@ -5,7 +5,7 @@\n \n setup(\n     name = 'PyGithub',\n-    version = '0.6',\n+    version = '0.7',\n     description = 'Use the full Github API v3',\n     author = 'Vincent Jacques',\n     author_email = 'vincent@vincent-jacques.net',\n@@ -26,6 +26,14 @@\n                 print repo.name\n                 repo.edit( has_wiki = False )\n \n+        You can also create a Github instance without authentication::\n+\n+            g = Github( \"user\", \"password\" )\n+\n+        Or with an OAuth token::\n+\n+            g = Github( token )\n+\n         Reference documentation\n         =======================\n ","additions":9,"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7"}],"commits":[{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","committer":{"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},"sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","message":"Implement the three authentication schemes","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T05:10:54-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","committer":{"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},"sha":"cb0313157bf904f2d364377d35d9397b269547a5","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5bb654d26dd014d36794acd1e6ecf3736f12aad7","sha":"5bb654d26dd014d36794acd1e6ecf3736f12aad7"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/cb0313157bf904f2d364377d35d9397b269547a5","message":"Merge branch 'topic/Authentication' into develop","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:04:22-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/59d755d95bc2e2de4dcef70a7c73e81e677f610b","sha":"59d755d95bc2e2de4dcef70a7c73e81e677f610b"}}},{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","committer":{"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},"sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cb0313157bf904f2d364377d35d9397b269547a5","sha":"cb0313157bf904f2d364377d35d9397b269547a5"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","message":"Publish version 0.7","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:13:33-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}},{"author":{"url":"https://api.github.com/users/jacquev6","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","login":"jacquev6","id":327146},"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","committer":{"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},"sha":"ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4303c5b90e2216d927155e9609436ccb8984c495","sha":"4303c5b90e2216d927155e9609436ccb8984c495"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0cec0d25e606c023a62a4fc7cdc815309ebf6d16","sha":"0cec0d25e606c023a62a4fc7cdc815309ebf6d16"}],"commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/ecda065e01876209d2bdf5fe4e91cee8ffaa9ff7","message":"Merge branch 'develop'","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-05-25T10:14:34-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/78735573611521bb3ade95921c668097e2a4dc5e","sha":"78735573611521bb3ade95921c668097e2a4dc5e"}}}],"html_url":"https://github.com/jacquev6/PyGithub/compare/v0.6...v0.7"}

