Files
PyGithub/ReplayDataForIntegrationTest/RepositoryCompare.txt
T

16 lines
156 KiB
Plaintext

GET /user {} null
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4989'), ('content-length', '801'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"f5f8ac70cf06f9040d87ed89e07aa27c"'), ('date', 'Mon, 19 Mar 2012 18:43:26 GMT'), ('content-type', 'application/json; charset=utf-8')]
{"owned_private_repos":5,"type":"User","url":"https://api.github.com/users/jacquev6","public_gists":1,"following":24,"blog":"http://vincent-jacques.net","login":"jacquev6","hireable":false,"private_gists":2,"bio":"","disk_usage":17888,"plan":{"collaborators":1,"name":"micro","private_repos":5,"space":614400},"followers":12,"location":"Paris, France","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","company":"Criteo","avatar_url":"https://secure.gravatar.com/avatar/b68de5ae38616c296fa345d2b9df2225?d=https://a248.e.akamai.net/assets.github.com%2Fimages%2Fgravatars%2Fgravatar-140.png","collaborators":0,"created_at":"2010-07-09T06:10:06Z","name":"Vincent Jacques","email":"vincent@vincent-jacques.net","total_private_repos":5,"id":327146,"public_repos":16,"html_url":"https://github.com/jacquev6"}
GET /repos/jacquev6/PyGithub {} null
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4988'), ('content-length', '1072'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"20e6ec1075e57dd23d1992250b2fb1a7"'), ('date', 'Mon, 19 Mar 2012 18:43:26 GMT'), ('content-type', 'application/json; charset=utf-8')]
{"forks":1,"url":"https://api.github.com/repos/jacquev6/PyGithub","has_wiki":false,"homepage":"http://vincent-jacques.net/PyGithub","mirror_url":null,"ssh_url":"git@github.com:jacquev6/PyGithub.git","updated_at":"2012-03-19T17:48:25Z","svn_url":"https://github.com/jacquev6/PyGithub","fork":false,"open_issues":15,"git_url":"git://github.com/jacquev6/PyGithub.git","watchers":6,"language":"Python","pushed_at":"2012-03-19T17:48:25Z","private":false,"size":1000,"clone_url":"https://github.com/jacquev6/PyGithub.git","created_at":"2012-02-25T12:53:47Z","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","login":"jacquev6","gravatar_id":"b68de5ae38616c296fa345d2b9df2225","id":327146},"name":"PyGithub","has_downloads":true,"id":3544490,"html_url":"https://github.com/jacquev6/PyGithub","description":"Python library (soon) implementing the full Github API v3","has_issues":true,"master_branch":null}
GET /repos/jacquev6/PyGithub/compare/master...develop {} null
200
[('status', '200 OK'), ('x-ratelimit-remaining', '4987'), ('content-length', '157277'), ('server', 'nginx/1.0.13'), ('connection', 'keep-alive'), ('x-ratelimit-limit', '5000'), ('etag', '"757e589de165efb8bd100976999f16c7"'), ('date', 'Mon, 19 Mar 2012 18:43:27 GMT'), ('content-type', 'application/json; charset=utf-8')]
{"behind_by":0,"permalink_url":"https://github.com/jacquev6/PyGithub/compare/jacquev6:a3be28756101370fbc689eec3a7825c4c385a6c9...jacquev6:a0cc821c1beada4aa9ca0d5218664c5372720936","ahead_by":34,"status":"ahead","diff_url":"https://github.com/jacquev6/PyGithub/compare/master...develop.diff","base_commit":{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3d6bd49ce229243fea4bb46a937622d0ec7d4d1c","sha":"3d6bd49ce229243fea4bb46a937622d0ec7d4d1c"}],"committer":{"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/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T15:09:06-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5c6e0289868fe3bc6bff49b0c33bd27c4dd07e2d","sha":"5c6e0289868fe3bc6bff49b0c33bd27c4dd07e2d"},"message":"Publish version 0.4","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T15:09:06-07:00"}},"sha":"a3be28756101370fbc689eec3a7825c4c385a6c9"},"total_commits":34,"html_url":"https://github.com/jacquev6/PyGithub/compare/master...develop","files":[{"filename":"ReferenceOfApis.md","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/ReferenceOfApis.md","deletions":12,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/ReferenceOfApis.md","additions":4,"status":"modified","patch":"@@ -55,7 +55,7 @@ API `/gists/starred`\n \n API `/issues`\n =============\n-* GET: (TODO)\n+* GET: `AuthenticatedUser.get_issues`\n \n API `/networks/:user/:repo/events`\n ==================================\n@@ -143,7 +143,7 @@ API `/repos/:user/:repo/commits/:sha/comments`\n \n API `/repos/:user/:repo/compare/:base...:head`\n ==============================================\n-* GET: (TODO)\n+* GET: `Repository.compare`\n \n API `/repos/:user/:repo/contributors`\n =====================================\n@@ -206,18 +206,10 @@ API `/repos/:user/:repo/git/trees`\n ==================================\n * POST: `Repository.create_git_tree`\n \n-API `/repos/:user/:repo/git/trees?base_tree=`\n-=============================================\n-* POST: (TODO)\n-\n API `/repos/:user/:repo/git/trees/:sha`\n =======================================\n * GET: `Repository.get_git_tree`\n \n-API `/repos/:user/:repo/git/trees/:sha?recursive=1`\n-===================================================\n-* GET: (TODO)\n-\n API `/repos/:user/:repo/hooks`\n ==============================\n * GET: `Repository.get_hooks`\n@@ -321,7 +313,7 @@ API `/repos/:user/:repo/milestones/:number/labels`\n API `/repos/:user/:repo/pulls`\n ==============================\n * GET: `Repository.get_pulls`\n-* POST: `Repository.create_pull` (TODO: alternative input)\n+* POST: `Repository.create_pull`\n \n API `/repos/:user/:repo/pulls/:id`\n ==================================\n@@ -331,7 +323,7 @@ API `/repos/:user/:repo/pulls/:id`\n API `/repos/:user/:repo/pulls/:id/comments`\n ===========================================\n * GET: `PullRequest.get_comments`\n-* POST: `PullRequest.create_comment` (TODO: alternative input)\n+* POST: `PullRequest.create_comment`\n \n API `/repos/:user/:repo/pulls/:id/commits`\n ==========================================","changes":16,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"ReferenceOfClasses.md","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/ReferenceOfClasses.md","deletions":31,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/ReferenceOfClasses.md","additions":31,"status":"modified","patch":"@@ -1,19 +1,13 @@\n You don't normaly create instances of any class but `Github`.\n You obtain instances through calls to `get_` and `create_` methods.\n \n-In this documentation:\n-\n-* `login` is a string containing a user's or organization's login\n-* `user` is an instance of `AuthenticatedUser` or `NamedUser`\n-* `name` is a string containing the name of a repository\n-* `repo` is an instance of `Repository`\n-\n Class `Github`\n ==============\n * Constructed from user's login and password\n * `get_user()`: `AuthenticatedUser`\n * `get_user( login )`: `NamedUser`\n * `get_organization( login )`: `Organization`\n+* `get_gist( id )`: `Gist`\n \n Class `AuthenticatedUser`\n =========================\n@@ -85,7 +79,7 @@ Following\n * `following`: `NamedUser`\n * `remove_from_following( following )`\n * `following`: `NamedUser`\n-* `has_in_following( following )`: `bool`\n+* `has_in_following( following )`: bool\n * `following`: `NamedUser`\n \n Orgs\n@@ -106,7 +100,7 @@ Watched\n * `watched`: `Repository`\n * `remove_from_watched( watched )`\n * `watched`: `Repository`\n-* `has_in_watched( watched )`: `bool`\n+* `has_in_watched( watched )`: bool\n * `watched`: `Repository`\n \n Forking\n@@ -119,6 +113,10 @@ Gists\n * `create_gist( public, files, [description] )`: `Gist`\n * `get_starred_gists()`: list of `Gist`\n \n+Issues\n+------\n+* `get_issues()`: list of `Issue`\n+\n Class `Authorization`\n =====================\n \n@@ -363,6 +361,7 @@ Attributes\n * `sha`\n * `url`\n * `tree`\n+* `recursive`\n \n Class `Hook`\n ============\n@@ -557,6 +556,10 @@ Following\n ---------\n * `get_following()`: list of `NamedUser`\n \n+Orgs\n+----\n+* `get_orgs()`: list of `Organization`\n+\n Events\n ------\n * `get_events()`: list of `Event`\n@@ -567,10 +570,6 @@ Received events\n * `get_received_events()`: list of `Event`\n * `get_public_received_events()`: list of `Event`\n \n-Orgs\n-----\n-* `get_orgs()`: list of `Organization`\n-\n Repos\n -----\n * `get_repos( [type] )`: list of `Repository`\n@@ -625,7 +624,7 @@ Public members\n * `public_member`: `NamedUser`\n * `remove_from_public_members( public_member )`\n * `public_member`: `NamedUser`\n-* `has_in_public_members( public_member )`: `bool`\n+* `has_in_public_members( public_member )`: bool\n * `public_member`: `NamedUser`\n \n Members\n@@ -633,13 +632,9 @@ Members\n * `get_members()`: list of `NamedUser`\n * `remove_from_members( member )`\n * `member`: `NamedUser`\n-* `has_in_members( member )`: `bool`\n+* `has_in_members( member )`: bool\n * `member`: `NamedUser`\n \n-Events\n-------\n-* `get_events()`: list of `Event`\n-\n Repos\n -----\n * `get_repos( [type] )`: list of `Repository`\n@@ -655,6 +650,10 @@ Teams\n * `get_teams()`: list of `Team`\n * `create_team( name, [repo_names, permission] )`: `Team`\n \n+Events\n+------\n+* `get_events()`: list of `Event`\n+\n Class `PullRequest`\n ===================\n \n@@ -703,7 +702,7 @@ Comments\n --------\n * `get_comments()`: list of `PullRequestComment`\n * `get_comment( id )`: `PullRequestComment`\n-* `create_comment( body, commit_id, path, position )`: `PullRequestComment`\n+* `create_comment( < body, commit_id, path, position > or < body, in_reply_to > )`: `PullRequestComment`\n * `is_merged()`: bool\n * `merge( [commit_message] )`\n \n@@ -782,11 +781,6 @@ Attributes\n * `parent`: `Repository`\n * `source`: `Repository`\n \n-Events\n-------\n-* `get_events()`: list of `Event`\n-* `get_network_events()`: list of `Event`\n-\n Issues events\n -------------\n * `get_issues_events()`: list of `IssueEvent`\n@@ -823,7 +817,7 @@ Collaborators\n * `collaborator`: `NamedUser`\n * `remove_from_collaborators( collaborator )`\n * `collaborator`: `NamedUser`\n-* `has_in_collaborators( collaborator )`: `bool`\n+* `has_in_collaborators( collaborator )`: bool\n * `collaborator`: `NamedUser`\n \n Contributors\n@@ -847,8 +841,8 @@ Git commits\n \n Git trees\n ---------\n-* `get_git_tree( sha )`: `GitTree`\n-* `create_git_tree( tree )`: `GitTree`\n+* `get_git_tree( sha, [recursive] )`: `GitTree`\n+* `create_git_tree( tree, [base_tree] )`: `GitTree`\n \n Git blobs\n ---------\n@@ -906,12 +900,18 @@ Pulls\n -----\n * `get_pulls( [state] )`: list of `PullRequest`\n * `get_pull( number )`: `PullRequest`\n-* `create_pull( title, body, base, head )`: `PullRequest`\n+* `create_pull( < title, body, base, head > or < issue, base, head > )`: `PullRequest`\n+* `compare( base, head )`\n \n Teams\n -----\n * `get_teams()`: list of `Team`\n \n+Events\n+------\n+* `get_events()`: list of `Event`\n+* `get_network_events()`: list of `Event`\n+\n Class `RepositoryKey`\n =====================\n \n@@ -967,7 +967,7 @@ Members\n * `member`: `NamedUser`\n * `remove_from_members( member )`\n * `member`: `NamedUser`\n-* `has_in_members( member )`: `bool`\n+* `has_in_members( member )`: bool\n * `member`: `NamedUser`\n \n Repos\n@@ -977,7 +977,7 @@ Repos\n * `repo`: `Repository`\n * `remove_from_repos( repo )`\n * `repo`: `Repository`\n-* `has_in_repos( repo )`: `bool`\n+* `has_in_repos( repo )`: bool\n * `repo`: `Repository`\n \n Class `UserKey`","changes":62,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GenerateDocumentation.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GenerateDocumentation.py","deletions":8,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GenerateDocumentation.py","additions":1,"status":"modified","patch":"@@ -1,6 +1,5 @@\n #!/bin/env python\n \n-import GithubObject\n import GithubObjects\n \n def generateDocumentation():\n@@ -15,18 +14,12 @@ def generateDocumentation():\n You don't normaly create instances of any class but `Github`.\n You obtain instances through calls to `get_` and `create_` methods.\n \n-In this documentation:\n-\n-* `login` is a string containing a user's or organization's login\n-* `user` is an instance of `AuthenticatedUser` or `NamedUser`\n-* `name` is a string containing the name of a repository\n-* `repo` is an instance of `Repository`\n-\n Class `Github`\n ==============\n * Constructed from user's login and password\n * `get_user()`: `AuthenticatedUser`\n * `get_user( login )`: `NamedUser`\n * `get_organization( login )`: `Organization`\n+* `get_gist( id )`: `Gist`\n \"\"\"\n print generateDocumentation()","changes":9,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a3be28756101370fbc689eec3a7825c4c385a6c9/github/GithubObjects.py","deletions":761,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a3be28756101370fbc689eec3a7825c4c385a6c9/github/GithubObjects.py","additions":0,"status":"removed","patch":"@@ -1,761 +0,0 @@\n-import itertools\n-import urllib\n-\n-from GithubObject import *\n-\n-Event = GithubObject(\n- \"Event\",\n- InternalSimpleAttributes(\n- \"type\", \"public\", \"payload\", \"created_at\", \"id\", \"commit_id\", \"url\",\n- \"event\", \"issue\",\n- ),\n-)\n-\n-def __testHook( hook ):\n- hook._github._statusRequest( \"POST\", hook._baseUrl() + \"/test\", None, None )\n-Hook = GithubObject(\n- \"Hook\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/hooks/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"url\", \"updated_at\", \"created_at\", \"name\", \"events\", \"active\", \"config\",\n- \"id\", \"last_response\",\n- \"_repo\", ### Ugly hack\n- ),\n- Editable( [ \"name\", \"config\" ], [ \"events\", \"add_events\", \"remove_events\", \"active\" ] ),\n- Deletable(),\n- SeveralAttributePolicies( [ MethodFromCallable( \"test\", [], [], __testHook, SimpleTypePolicy( None ) ) ], \"Testing\" )\n-)\n-\n-Authorization = GithubObject(\n- \"Authorization\",\n- BaseUrl( lambda obj: \"/authorizations/\" + str( obj.id ) ), ### @todo make the lambda return a tuple, and BaseUrl convert elements to strings and join them with \"/\"\n- InternalSimpleAttributes(\n- \"id\", \"url\", \"scopes\", \"token\", \"app\", \"note\", \"note_url\", \"updated_at\",\n- \"created_at\",\n- ),\n- Editable( [], [ \"scopes\", \"add_scopes\", \"remove_scopes\", \"note\", \"note_url\" ] ),\n- Deletable(),\n-)\n-\n-UserKey = GithubObject(\n- \"UserKey\",\n- BaseUrl( lambda obj: \"/user/keys/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"url\", \"id\", \"title\", \"key\",\n- ),\n- Editable( [], [ \"title\", \"key\" ] ),\n- Deletable(),\n-)\n-\n-AuthenticatedUser = GithubObject(\n- \"AuthenticatedUser\",\n- BaseUrl( lambda obj: \"/user\" ),\n- Identity( lambda obj: obj.login ),\n- InternalSimpleAttributes(\n- \"login\", \"id\", \"avatar_url\", \"gravatar_id\", \"url\", \"name\", \"company\",\n- \"blog\", \"location\", \"email\", \"hireable\", \"bio\", \"public_repos\",\n- \"public_gists\", \"followers\", \"following\", \"html_url\", \"created_at\",\n- \"type\", \"total_private_repos\", \"owned_private_repos\", \"private_gists\",\n- \"disk_usage\", \"collaborators\", \"plan\",\n- ),\n- Editable( [], [ \"name\", \"email\", \"blog\", \"company\", \"location\", \"hireable\", \"bio\" ] ),\n- ExternalListOfSimpleTypes( \"emails\", \"email\", \"string\",\n- ListGetable( [], [] ),\n- SeveralElementsAddable(),\n- SeveralElementsRemovable()\n- ),\n- ExternalListOfObjects( \"authorizations\", \"authorization\", Authorization,\n- ListGetable( [], [] ),\n- ElementGetable( [ \"id\" ], [] ),\n- ElementCreatable( [], [ \"scopes\", \"note\", \"note_url\" ] ),\n- url = \"/authorizations\",\n- ),\n- ExternalListOfObjects( \"keys\", \"key\", UserKey,\n- ListGetable( [], [] ),\n- ElementGetable( [ \"id\" ], [] ),\n- ElementCreatable( [ \"title\", \"key\" ], [] ),\n- ),\n- ExternalListOfObjects( \"events\", \"event\", Event,\n- ListGetable( [], [] ),\n- url = \"/events\"\n- ),\n-)\n-\n-NamedUser = GithubObject(\n- \"NamedUser\",\n- BaseUrl( lambda obj: \"/users/\" + obj.login ),\n- Identity( lambda obj: obj.login ),\n- InternalSimpleAttributes(\n- \"login\", \"id\", \"avatar_url\", \"gravatar_id\", \"url\", \"name\", \"company\",\n- \"blog\", \"location\", \"email\", \"hireable\", \"bio\", \"public_repos\",\n- \"public_gists\", \"followers\", \"following\", \"html_url\", \"created_at\",\n- \"type\",\n- # Only in Repository.get_contributors()\n- \"contributions\",\n- # Seen only by user herself\n- \"disk_usage\", \"collaborators\", \"plan\", \"total_private_repos\",\n- \"owned_private_repos\", \"private_gists\",\n- ),\n-)\n-\n-AuthenticatedUser._addAttributePolicy(\n- ExternalListOfObjects( \"followers\", \"follower\", NamedUser,\n- ListGetable( [], [] )\n- )\n-)\n-NamedUser._addAttributePolicy(\n- ExternalListOfObjects( \"followers\", \"follower\", NamedUser,\n- ListGetable( [], [] )\n- )\n-)\n-\n-AuthenticatedUser._addAttributePolicy(\n- ExternalListOfObjects( \"following\", \"following\", NamedUser,\n- ListGetable( [], [] ),\n- ElementAddable(),\n- ElementRemovable(),\n- ElementHasable()\n- )\n-)\n-NamedUser._addAttributePolicy(\n- ExternalListOfObjects( \"following\", \"following\", NamedUser,\n- ListGetable( [], [] )\n- )\n-)\n-NamedUser._addAttributePolicy(\n- ExternalListOfObjects( \"events\", \"event\", Event,\n- ListGetable( [], [] )\n- ),\n-)\n-def __getPublicEvents( user ):\n- return [\n- Event( user._github, attributes, lazy = True )\n- for attributes\n- in user._github._dataRequest( \"GET\", user._baseUrl() + \"/events/public\", None, None )\n- ]\n-NamedUser._addAttributePolicy(\n- MethodFromCallable( \"get_public_events\", [], [], __getPublicEvents, SimpleTypePolicy( \"list of `Event`\" ) )\n-)\n-NamedUser._addAttributePolicy(\n- ExternalListOfObjects( \"received_events\", \"received_event\", Event,\n- ListGetable( [], [] )\n- )\n-)\n-def __getPublicReceivedEvents( user ):\n- return [\n- Event( user._github, attributes, lazy = True )\n- for attributes\n- in user._github._dataRequest( \"GET\", user._baseUrl() + \"/received_events/public\", None, None )\n- ]\n-NamedUser._addAttributePolicy(\n- MethodFromCallable( \"get_public_received_events\", [], [], __getPublicReceivedEvents, SimpleTypePolicy( \"list of `Event`\" ) )\n-)\n-\n-Organization = GithubObject(\n- \"Organization\",\n- BaseUrl( lambda obj: \"/orgs/\" + obj.login ),\n- Identity( lambda obj: obj.login ),\n- InternalSimpleAttributes(\n- \"login\", \"id\", \"url\", \"avatar_url\", \"name\", \"company\", \"blog\",\n- \"location\", \"email\", \"public_repos\", \"public_gists\", \"followers\",\n- \"following\", \"html_url\", \"created_at\", \"type\", \"gravatar_id\",\n- # Seen only by owners\n- \"disk_usage\", \"collaborators\", \"billing_email\", \"plan\", \"private_gists\",\n- \"total_private_repos\", \"owned_private_repos\",\n- ),\n- Editable( [], [ \"billing_email\", \"blog\", \"company\", \"email\", \"location\", \"name\" ] ),\n- ExternalListOfObjects( \"public_members\", \"public_member\", NamedUser,\n- ListGetable( [], [] ),\n- ElementAddable(),\n- ElementRemovable(),\n- ElementHasable()\n- ),\n- ExternalListOfObjects( \"members\", \"member\", NamedUser,\n- ListGetable( [], [] ),\n- ElementRemovable(),\n- ElementHasable()\n- ),\n- ExternalListOfObjects( \"events\", \"event\", Event,\n- ListGetable( [], [] )\n- ),\n-)\n-\n-AuthenticatedUser._addAttributePolicy(\n- ExternalListOfObjects( \"orgs\", \"org\", Organization,\n- ListGetable( [], [] )\n- )\n-)\n-NamedUser._addAttributePolicy(\n- ExternalListOfObjects( \"orgs\", \"org\", Organization,\n- ListGetable( [], [] )\n- )\n-)\n-\n-def __getOrganizationEvents( user, org ):\n- return [\n- Event( user._github, attributes, lazy = True )\n- for attributes\n- in user._github._dataRequest( \"GET\", \"/users/\" + user.login + \"/events/orgs/\" + org.login, None, None )\n- ]\n-AuthenticatedUser._addAttributePolicy(\n- MethodFromCallable( \"get_organization_events\", [ \"org\" ], [], __getOrganizationEvents, SimpleTypePolicy( \"list of `Event`\" ) )\n-)\n-\n-GitRef = GithubObject(\n- \"GitRef\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/\" + obj.ref ),\n- InternalSimpleAttributes(\n- \"ref\", \"url\",\n- \"object\", ### @todo Structure\n- \"_repo\", ### Ugly hack\n- ),\n- Editable( [ \"sha\" ], [ \"force\" ] ),\n-)\n-\n-GitTree = GithubObject(\n- \"GitTree\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/trees/\" + obj.sha ),\n- InternalSimpleAttributes(\n- \"sha\", \"url\",\n- \"tree\", ### @todo Structure\n- \"_repo\", ### Ugly hack\n- ),\n-)\n-\n-GitCommit = GithubObject(\n- \"GitCommit\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/commits/\" + obj.sha ),\n- InternalSimpleAttributes(\n- \"sha\", \"url\", \"message\",\n- \"parents\", ### @todo Structure\n- \"author\", \"committer\",\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"tree\", GitTree ),\n-)\n-\n-GitBlob = GithubObject(\n- \"GitBlob\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/blobs/\" + obj.sha ),\n- InternalSimpleAttributes(\n- \"sha\", \"size\", \"url\",\n- \"content\", \"encoding\",\n- \"_repo\", ### Ugly hack\n- ),\n-)\n-\n-GitTag = GithubObject(\n- \"GitTag\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/tags/\" + obj.sha ),\n- InternalSimpleAttributes(\n- \"tag\", \"sha\", \"url\",\n- \"message\",\n- \"tagger\", ### @todo Structure\n- \"object\", ### @todo Structure\n- \"_repo\", ### Ugly hack\n- ),\n-)\n-\n-Label = GithubObject(\n- \"Label\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/labels/\" + obj._identity ),\n- Identity( lambda obj: urllib.quote( obj.name ) ),\n- InternalSimpleAttributes(\n- \"url\", \"name\", \"color\",\n- \"_repo\", ### Ugly hack\n- ),\n- Editable( [ \"name\", \"color\" ], [] ),\n- Deletable(),\n-)\n-\n-__modifyAttributesForObjectsReferingReferedRepo = { \"_repo\": lambda obj: obj._repo }\n-\n-Milestone = GithubObject(\n- \"Milestone\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/milestones/\" + str( obj.number ) ),\n- InternalSimpleAttributes(\n- \"url\", \"number\", \"state\", \"title\", \"description\", \"open_issues\",\n- \"closed_issues\", \"created_at\", \"due_on\",\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"creator\", NamedUser ),\n- Editable( [ \"title\" ], [ \"state\", \"description\", \"due_on\" ] ),\n- Deletable(),\n- ExternalListOfObjects( \"labels\", \"label\", Label,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingReferedRepo )\n- ),\n-)\n-\n-IssueComment = GithubObject(\n- \"IssueComment\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/issues/comments/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"url\", \"body\", \"created_at\", \"updated_at\", \"id\",\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"user\", NamedUser ),\n- Editable( [ \"body\" ], [] ),\n- Deletable(),\n-)\n-\n-IssueEvent = GithubObject(\n- \"IssueEvent\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/issues/events/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"id\", \"url\", \"created_at\", \"issue\", \"event\", \"commit_id\",\n- \"_repo\", # Ugly hack\n- ),\n- InternalObjectAttribute( \"actor\", NamedUser ),\n-)\n-\n-Issue = GithubObject(\n- \"Issue\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/issues/\" + str( obj.number ) ),\n- InternalSimpleAttributes(\n- \"url\", \"html_url\", \"number\", \"state\", \"title\", \"body\", \"labels\",\n- \"comments\", \"closed_at\", \"created_at\", \"updated_at\", \"id\", \"closed_by\",\n- \"pull_request\", ### @todo Structure\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"user\", NamedUser ),\n- InternalObjectAttribute( \"assignee\", NamedUser ),\n- InternalObjectAttribute( \"milestone\", Milestone ),\n- Editable( [], [ \"title\", \"body\", \"assignee\", \"state\", \"milestone\", \"labels\" ] ),\n- ExternalListOfObjects( \"labels\", \"label\", Label,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingReferedRepo ),\n- SeveralElementsAddable(),\n- ListSetable(),\n- ListDeletable(),\n- ElementRemovable(),\n- ),\n- ExternalListOfObjects( \"comments\", \"comment\", IssueComment,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingReferedRepo ),\n- ElementGetable( [ \"id\" ], [], __modifyAttributesForObjectsReferingReferedRepo ),\n- ElementCreatable( [ \"body\" ], [], __modifyAttributesForObjectsReferingReferedRepo ),\n- ),\n- ExternalListOfObjects( \"events\", \"event\", IssueEvent,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingReferedRepo )\n- ),\n-)\n-\n-Download = GithubObject(\n- \"Download\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/downloads/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"url\", \"html_url\", \"id\", \"name\", \"description\", \"size\",\n- \"download_count\", \"content_type\", \"policy\", \"signature\", \"bucket\",\n- \"accesskeyid\", \"path\", \"acl\", \"expirationdate\", \"prefix\", \"mime_type\",\n- \"redirect\", \"s3_url\", \"created_at\",\n- \"_repo\", ### Ugly hack\n- ),\n- Deletable(),\n-)\n-\n-CommitComment = GithubObject(\n- \"CommitComment\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/comments/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"url\", \"id\", \"body\", \"path\", \"position\", \"commit_id\",\n- \"created_at\", \"updated_at\", \"html_url\", \"line\",\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"user\", NamedUser ),\n- Editable( [ \"body\" ], [] ),\n- Deletable(),\n-)\n-\n-Commit = GithubObject(\n- \"Commit\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/commits/\" + str( obj.sha ) ),\n- InternalSimpleAttributes(\n- \"sha\", \"url\",\n- \"parents\", ### @todo Structure\n- \"stats\", ### @todo Structure\n- \"files\", ### @todo Structure\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"commit\", GitCommit ),\n- InternalObjectAttribute( \"author\", NamedUser ),\n- InternalObjectAttribute( \"committer\", NamedUser ),\n- ExternalListOfObjects( \"comments\", \"comment\", CommitComment,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingReferedRepo ),\n- ElementCreatable( [ \"body\" ], [ \"commit_id\", \"line\", \"path\", \"position\" ], __modifyAttributesForObjectsReferingReferedRepo ),\n- ),\n-)\n-\n-Tag = GithubObject(\n- \"Tag\",\n- InternalSimpleAttributes(\n- \"name\", \"zipball_url\", \"tarball_url\",\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"commit\", Commit )\n-)\n-\n-Branch = GithubObject(\n- \"Branch\",\n- InternalSimpleAttributes(\n- \"name\",\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"commit\", Commit )\n-)\n-\n-__modifyAttributesForObjectsReferingRepo = { \"_repo\": lambda repo: repo }\n-PullRequestFile = GithubObject(\n- \"PullRequestFile\",\n- InternalSimpleAttributes(\n- \"sha\", \"filename\", \"status\", \"additions\", \"deletions\", \"changes\",\n- \"blob_url\", \"raw_url\", \"patch\",\n- ),\n-)\n-\n-PullRequestComment = GithubObject(\n- \"PullRequestComment\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/pulls/comments/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"url\", \"id\", \"body\", \"path\", \"position\", \"commit_id\",\n- \"created_at\", \"updated_at\", \"html_url\", \"line\",\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"user\", NamedUser ),\n- Editable( [ \"body\" ], [] ),\n- Deletable(),\n-)\n-\n-def __pullRequestIsMerged( r ):\n- return r._github._statusRequest( \"GET\", r._baseUrl() + \"/merge\", None, None ) == 204\n-def __mergePullRequest( r, **data ):\n- r._github._statusRequest( \"PUT\", r._baseUrl() + \"/merge\", None, data )\n-PullRequest = GithubObject(\n- \"PullRequest\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/pulls/\" + str( obj.number ) ),\n- InternalSimpleAttributes(\n- \"id\", \"url\", \"html_url\", \"diff_url\", \"patch_url\", \"issue_url\", \"number\",\n- \"state\", \"title\", \"body\", \"created_at\", \"updated_at\", \"closed_at\",\n- \"merged_at\", \"_links\", \"merged\", \"mergeable\", \"comments\", \"commits\",\n- \"additions\", \"deletions\", \"changed_files\", \"head\", \"base\", \"merged_by\",\n- \"review_comments\",\n- \"_repo\", ### Ugly hack\n- ),\n- InternalObjectAttribute( \"user\", NamedUser ),\n- Editable( [], [ \"title\", \"body\", \"state\" ] ),\n- ExternalListOfObjects( \"commits\", \"commit\", Commit,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingReferedRepo ),\n- ),\n- ExternalListOfObjects( \"files\", \"file\", PullRequestFile,\n- ListGetable( [], [] ),\n- ),\n- ExternalListOfObjects( \"comments\", \"comment\", PullRequestComment,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingReferedRepo ),\n- ElementGetable( [ \"id\" ], [], __modifyAttributesForObjectsReferingReferedRepo ),\n- ElementCreatable( [ \"body\", \"commit_id\", \"path\", \"position\" ], [], __modifyAttributesForObjectsReferingReferedRepo ),\n- ),\n- MethodFromCallable( \"is_merged\", [], [], __pullRequestIsMerged, SimpleTypePolicy( \"bool\" ) ),\n- MethodFromCallable( \"merge\", [], [ \"commit_message\" ], __mergePullRequest, SimpleTypePolicy( None ) ),\n-)\n-\n-RepositoryKey = GithubObject(\n- \"RepositoryKey\",\n- BaseUrl( lambda obj: obj._repo._baseUrl() + \"/keys/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"url\", \"id\", \"title\", \"key\",\n- \"_repo\", ### Ugly hack\n- ),\n- Editable( [ \"title\", \"key\" ], [] ),\n- Deletable()\n-)\n-\n-Repository = GithubObject(\n- \"Repository\",\n- BaseUrl( lambda obj: \"/repos/\" + obj.owner.login + \"/\" + obj.name ),\n- Identity( lambda obj: obj.owner.login + \"/\" + obj.name ),\n- InternalSimpleAttributes(\n- \"url\", \"html_url\", \"clone_url\", \"git_url\", \"ssh_url\", \"svn_url\",\n- \"name\", \"description\", \"homepage\", \"language\", \"private\",\n- \"fork\", \"forks\", \"watchers\", \"size\", \"master_branch\", \"open_issues\",\n- \"pushed_at\", \"created_at\", \"organization\",\n- \"has_issues\", \"has_wiki\", \"has_downloads\",\n- # Not documented\n- \"mirror_url\", \"updated_at\", \"id\",\n- ),\n- InternalObjectAttribute( \"owner\", NamedUser ),\n-)\n-Repository._addAttributePolicy( InternalObjectAttribute( \"parent\", Repository ) )\n-Repository._addAttributePolicy( InternalObjectAttribute( \"source\", Repository ) )\n-Repository._addAttributePolicy(\n- ExternalListOfObjects( \"events\", \"event\", Event,\n- ListGetable( [], [] )\n- ),\n-)\n-def __getNetworkEvents( repo ):\n- return [\n- Event( repo._github, attributes, lazy = True )\n- for attributes\n- in repo._github._dataRequest( \"GET\", \"/networks/\" + repo.owner.login + \"/\" + repo.name + \"/events\", None, None )\n- ]\n-Repository._addAttributePolicy(\n- MethodFromCallable( \"get_network_events\", [], [], __getNetworkEvents, SimpleTypePolicy( \"list of `Event`\" ) )\n-)\n-Repository._addAttributePolicy(\n- ExternalListOfObjects( \"issues/events\", \"issues_event\", IssueEvent,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"id\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- )\n-)\n-Repository._addAttributePolicy(\n- ExternalListOfObjects( \"forks\", \"fork\", Repository,\n- ListGetable( [], [] )\n- )\n-)\n-Repository._addAttributePolicy(\n- Editable( [ \"name\" ], [ \"description\", \"homepage\", \"public\", \"has_issues\", \"has_wiki\", \"has_downloads\" ] )\n-)\n-Repository._addAttributePolicy(\n- SeveralAttributePolicies( [ ExternalSimpleAttribute( \"languages\", \"dictionary of strings to integers\" ) ], \"Languages\" )\n-)\n-Repository._addAttributePolicy( SeveralAttributePolicies( [\n- ExternalListOfObjects( \"hooks\", \"hook\", Hook,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"id\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"name\", \"config\" ], [ \"events\", \"active\" ], __modifyAttributesForObjectsReferingRepo ),\n- ),\n- ExternalListOfObjects( \"keys\", \"key\", RepositoryKey,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"id\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"title\", \"key\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ),\n- ExternalListOfObjects( \"collaborators\", \"collaborator\", NamedUser,\n- ListGetable( [], [] ),\n- ElementAddable(),\n- ElementRemovable(),\n- ElementHasable()\n- ),\n- ExternalListOfObjects( \"contributors\", \"contributor\", NamedUser,\n- ListGetable( [], [] )\n- ),\n- ExternalListOfObjects( \"watchers\", \"watcher\", NamedUser,\n- ListGetable( [], [] )\n- ),\n- ExternalListOfObjects( \"git/refs\", \"git_ref\", GitRef,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"ref\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"ref\", \"sha\" ], [], __modifyAttributesForObjectsReferingRepo )\n- ),\n- ExternalListOfObjects( \"git/commits\", \"git_commit\", GitCommit,\n- ElementGetable( [ \"sha\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"message\", \"tree\", \"parents\" ], [ \"author\", \"committer\" ], __modifyAttributesForObjectsReferingRepo )\n- ),\n- ExternalListOfObjects( \"git/trees\", \"git_tree\", GitTree,\n- ElementGetable( [ \"sha\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"tree\" ], [], __modifyAttributesForObjectsReferingRepo )\n- ),\n- ExternalListOfObjects( \"git/blobs\", \"git_blob\", GitBlob,\n- ElementGetable( [ \"sha\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"content\", \"encoding\" ], [], __modifyAttributesForObjectsReferingRepo )\n- ),\n- ExternalListOfObjects( \"git/tags\", \"git_tag\", GitTag,\n- ElementGetable( [ \"sha\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"tag\", \"message\", \"object\", \"type\" ], [ \"tagger\" ], __modifyAttributesForObjectsReferingRepo )\n- ),\n- ExternalListOfObjects( \"labels\", \"label\", Label,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"name\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"name\", \"color\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ),\n- ExternalListOfObjects( \"milestones\", \"milestone\", Milestone,\n- ListGetable( [], [ \"state\", \"sort\", \"direction\" ], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"number\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"title\" ], [ \"state\", \"description\", \"due_on\" ], __modifyAttributesForObjectsReferingRepo )\n- ),\n- ExternalListOfObjects( \"issues\", \"issue\", Issue,\n- ListGetable( [], [ \"milestone\", \"state\", \"assignee\", \"mentioned\", \"labels\", \"sort\", \"direction\", \"since\" ], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"number\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"title\" ], [ \"body\", \"assignee\", \"milestone\", \"labels\", ], __modifyAttributesForObjectsReferingRepo )\n- ),\n- ExternalListOfObjects( \"downloads\", \"download\", Download,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"id\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"name\", \"size\" ], [ \"description\", \"content_type\" ], __modifyAttributesForObjectsReferingRepo ),\n- ),\n- ExternalListOfObjects( \"comments\", \"comment\", CommitComment,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"id\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ),\n- ExternalListOfObjects( \"commits\", \"commit\", Commit,\n- ListGetable( [], [ \"sha\", \"path\" ], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"sha\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ),\n- ExternalListOfObjects( \"tags\", \"tag\", Tag,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),\n- ),\n- ExternalListOfObjects( \"branches\", \"branch\", Branch,\n- ListGetable( [], [], __modifyAttributesForObjectsReferingRepo ),\n- ),\n- ExternalListOfObjects( \"pulls\", \"pull\", PullRequest,\n- ListGetable( [], [ \"state\" ], __modifyAttributesForObjectsReferingRepo ),\n- ElementGetable( [ \"number\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ElementCreatable( [ \"title\", \"body\", \"base\", \"head\" ], [], __modifyAttributesForObjectsReferingRepo ),\n- ),\n-] ) )\n-\n-__repoElementCreatable = ElementCreatable( [ \"name\" ], [ \"description\", \"homepage\", \"private\", \"has_issues\", \"has_wiki\", \"has_downloads\", \"team_id\", ] )\n-__repoElementGetable = ElementGetable( [ \"name\" ], [], { \"owner\" : lambda user: { \"login\": user.login } } )\n-__repoListGetable = ListGetable( [], [ \"type\" ] )\n-AuthenticatedUser._addAttributePolicy(\n- ExternalListOfObjects( \"repos\", \"repo\", Repository,\n- __repoListGetable,\n- __repoElementGetable,\n- __repoElementCreatable\n- )\n-)\n-NamedUser._addAttributePolicy(\n- ExternalListOfObjects( \"repos\", \"repo\", Repository,\n- __repoListGetable,\n- __repoElementGetable\n- )\n-)\n-Organization._addAttributePolicy(\n- ExternalListOfObjects( \"repos\", \"repo\", Repository,\n- __repoListGetable,\n- __repoElementGetable,\n- __repoElementCreatable\n- )\n-)\n-\n-AuthenticatedUser._addAttributePolicy(\n- ExternalListOfObjects( \"watched\", \"watched\", Repository,\n- ListGetable( [], [] ),\n- ElementAddable(),\n- ElementRemovable(),\n- ElementHasable()\n- )\n-)\n-NamedUser._addAttributePolicy(\n- ExternalListOfObjects( \"watched\", \"watched\", Repository,\n- ListGetable( [], [] )\n- )\n-)\n-\n-def __createForkForUser( user, repo ):\n- assert isinstance( repo, Repository )\n- return Repository( user._github, user._github._dataRequest( \"POST\", repo._baseUrl() + \"/forks\", None, None ), lazy = True )\n-AuthenticatedUser._addAttributePolicy( SeveralAttributePolicies( [ MethodFromCallable( \"create_fork\", [ \"repo\" ], [], __createForkForUser, ObjectTypePolicy( Repository ) ) ], \"Forking\" ) )\n-def __createForkForOrg( org, repo ):\n- assert isinstance( repo, Repository )\n- return Repository( org._github, org._github._dataRequest( \"POST\", repo._baseUrl() + \"/forks\", { \"org\": org.login }, None ), lazy = True )\n-Organization._addAttributePolicy( SeveralAttributePolicies( [ MethodFromCallable( \"create_fork\", [ \"repo\" ], [], __createForkForOrg, ObjectTypePolicy( Repository ) ) ], \"Forking\" ) )\n-\n-Team = GithubObject(\n- \"Team\",\n- BaseUrl( lambda obj: \"/teams/\" + str( obj.id ) ),\n- Identity( lambda obj: str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"url\", \"name\", \"id\", \"permission\", \"members_count\", \"repos_count\",\n- ),\n- Editable( [ \"name\" ], [ \"permission\" ] ),\n- Deletable(),\n- ExternalListOfObjects( \"members\", \"member\", NamedUser,\n- ListGetable( [], [] ),\n- ElementAddable(),\n- ElementRemovable(),\n- ElementHasable()\n- ),\n- ExternalListOfObjects( \"repos\", \"repo\", Repository,\n- ListGetable( [], [] ),\n- ElementAddable(),\n- ElementRemovable(),\n- ElementHasable()\n- ),\n-)\n-\n-Organization._addAttributePolicy(\n- ExternalListOfObjects( \"teams\", \"team\", Team,\n- ListGetable( [], [] ),\n- ElementCreatable( [ \"name\" ], [ \"repo_names\", \"permission\" ] )\n- )\n-)\n-Repository._addAttributePolicy(\n- ExternalListOfObjects( \"teams\", \"team\", Team,\n- ListGetable( [], [] )\n- )\n-)\n-\n-GistComment = GithubObject(\n- \"GistComment\",\n- BaseUrl( lambda obj: \"/gists/comments/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"id\", \"url\", \"body\", \"created_at\",\n- \"updated_at\",\n- ),\n- InternalObjectAttribute( \"user\", NamedUser ),\n- Editable( [ \"body\" ], [] ),\n- Deletable(),\n-)\n-\n-def __isStarred( gist ):\n- return gist._github._statusRequest( \"GET\", gist._baseUrl() + \"/star\", None, None ) == 204\n-def __setStarred( gist ):\n- gist._github._statusRequest( \"PUT\", gist._baseUrl() + \"/star\", None, None )\n-def __resetStarred( gist ):\n- gist._github._statusRequest( \"DELETE\", gist._baseUrl() + \"/star\", None, None )\n-Gist = GithubObject(\n- \"Gist\",\n- BaseUrl( lambda obj: \"/gists/\" + str( obj.id ) ),\n- InternalSimpleAttributes(\n- \"url\", \"id\", \"description\", \"public\", \"files\", \"comments\", \"html_url\",\n- \"git_pull_url\", \"git_push_url\", \"created_at\", \"forks\", \"history\",\n- \"updated_at\",\n- ),\n- InternalObjectAttribute( \"user\", NamedUser ),\n- Editable( [], [ \"description\", \"files\" ] ),\n- Deletable(),\n- ExternalListOfObjects( \"comments\", \"comment\", GistComment,\n- ListGetable( [], [] ),\n- ElementGetable( [ \"id\" ], [] ),\n- ElementCreatable( [ \"body\" ], [] ),\n- ),\n- SeveralAttributePolicies( [\n- MethodFromCallable( \"is_starred\", [], [], __isStarred, SimpleTypePolicy( \"bool\" ) ),\n- MethodFromCallable( \"set_starred\", [], [], __setStarred, SimpleTypePolicy( None ) ),\n- MethodFromCallable( \"reset_starred\", [], [], __resetStarred, SimpleTypePolicy( None ) ),\n- ], \"Starring\" ),\n-)\n-def __createFork( gist ):\n- return Gist( gist._github, gist._github._dataRequest( \"POST\", gist._baseUrl() + \"/fork\", None, None ), lazy = True )\n-Gist._addAttributePolicy( SeveralAttributePolicies( [\n- MethodFromCallable( \"create_fork\", [], [], __createFork, ObjectTypePolicy( Gist ) ),\n- ], \"Forking\" ),\n-)\n-\n-NamedUser._addAttributePolicy(\n- ExternalListOfObjects( \"gists\", \"gist\", Gist,\n- ListGetable( [], [] ),\n- )\n-)\n-\n-AuthenticatedUser._addAttributePolicy(\n- ExternalListOfObjects( \"gists\", \"gist\", Gist,\n- ListGetable( [], [] ),\n- ElementCreatable( [ \"public\", \"files\", ], [ \"description\" ] ),\n- url = \"/gists\",\n- )\n-)\n-def __getStaredGists( user ):\n- return [\n- Gist( user._github, attributes, lazy = True )\n- for attributes in user._github._dataRequest( \"GET\", \"/gists/starred\", None, None )\n- ]\n-AuthenticatedUser._addAttributePolicy(\n- MethodFromCallable( \"get_starred_gists\", [], [], __getStaredGists, SimpleTypePolicy( \"list of `Gist`\" ) ),\n-)\n-\n-Event._addAttributePolicy(\n- InternalObjectAttribute( \"repo\", Repository ),\n-)\n-Event._addAttributePolicy(\n- InternalObjectAttribute( \"actor\", NamedUser ),\n-)\n-Event._addAttributePolicy(\n- InternalObjectAttribute( \"org\", Organization ),\n-)","changes":761,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/AuthenticatedUser.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/AuthenticatedUser.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/AuthenticatedUser.py","additions":94,"status":"added","patch":"@@ -0,0 +1,94 @@\n+from Authorization import *\n+from UserKey import *\n+from Event import *\n+from NamedUser import *\n+from Organization import *\n+from Repository import *\n+from Gist import *\n+from Issue import *\n+\n+def __getOrganizationEvents( user, org ):\n+ return [\n+ Event( user._github, attributes, lazy = True )\n+ for attributes\n+ in user._github._dataRequest( \"GET\", \"/users/\" + user.login + \"/events/orgs/\" + org.login, None, None )\n+ ]\n+\n+def __createFork( user, repo ):\n+ assert isinstance( repo, Repository )\n+ return Repository( user._github, user._github._dataRequest( \"POST\", repo._baseUrl() + \"/forks\", None, None ), lazy = True )\n+\n+def __getStaredGists( user ):\n+ return [\n+ Gist( user._github, attributes, lazy = True )\n+ for attributes in user._github._dataRequest( \"GET\", \"/gists/starred\", None, None )\n+ ]\n+\n+AuthenticatedUser = GithubObject(\n+ \"AuthenticatedUser\",\n+ BaseUrl( lambda obj: \"/user\" ),\n+ Identity( lambda obj: obj.login ),\n+ InternalSimpleAttributes(\n+ \"login\", \"id\", \"avatar_url\", \"gravatar_id\", \"url\", \"name\", \"company\",\n+ \"blog\", \"location\", \"email\", \"hireable\", \"bio\", \"public_repos\",\n+ \"public_gists\", \"followers\", \"following\", \"html_url\", \"created_at\",\n+ \"type\", \"total_private_repos\", \"owned_private_repos\", \"private_gists\",\n+ \"disk_usage\", \"collaborators\", \"plan\",\n+ ),\n+ Editable( Parameters( [], [ \"name\", \"email\", \"blog\", \"company\", \"location\", \"hireable\", \"bio\" ] ) ),\n+ ExternalListOfSimpleTypes( \"emails\", \"email\", \"string\",\n+ ListGetable( Parameters( [], [] ) ),\n+ SeveralElementsAddable(),\n+ SeveralElementsRemovable()\n+ ),\n+ ExternalListOfObjects( \"authorizations\", \"authorization\", Authorization,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ) ),\n+ ElementCreatable( Parameters( [], [ \"scopes\", \"note\", \"note_url\" ] ) ),\n+ url = \"/authorizations\",\n+ ),\n+ ExternalListOfObjects( \"keys\", \"key\", UserKey,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ) ),\n+ ElementCreatable( Parameters( [ \"title\", \"key\" ], [] ) ),\n+ ),\n+ ExternalListOfObjects( \"events\", \"event\", Event,\n+ ListGetable( Parameters( [], [] ) ),\n+ url = \"/events\"\n+ ),\n+ ExternalListOfObjects( \"followers\", \"follower\", NamedUser,\n+ ListGetable( Parameters( [], [] ) )\n+ ),\n+ ExternalListOfObjects( \"following\", \"following\", NamedUser,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementAddable(),\n+ ElementRemovable(),\n+ ElementHasable()\n+ ),\n+ ExternalListOfObjects( \"orgs\", \"org\", Organization,\n+ ListGetable( Parameters( [], [] ) )\n+ ),\n+ MethodFromCallable( \"get_organization_events\", Parameters( [ \"org\" ], [] ), __getOrganizationEvents, SimpleTypePolicy( \"list of `Event`\" ) ),\n+ ExternalListOfObjects( \"repos\", \"repo\", Repository,\n+ ListGetable( Parameters( [], [ \"type\" ] ) ),\n+ ElementGetable( Parameters( [ \"name\" ], [] ), { \"owner\" : lambda user: { \"login\": user.login } } ),\n+ ElementCreatable( Parameters( [ \"name\" ], [ \"description\", \"homepage\", \"private\", \"has_issues\", \"has_wiki\", \"has_downloads\", \"team_id\", ] ) )\n+ ),\n+ ExternalListOfObjects( \"watched\", \"watched\", Repository,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementAddable(),\n+ ElementRemovable(),\n+ ElementHasable()\n+ ),\n+ SeveralAttributePolicies( [ MethodFromCallable( \"create_fork\", Parameters( [ \"repo\" ], [] ), __createFork, ObjectTypePolicy( Repository ) ) ], \"Forking\" ),\n+ ExternalListOfObjects( \"gists\", \"gist\", Gist,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementCreatable( Parameters( [ \"public\", \"files\", ], [ \"description\" ] ) ),\n+ url = \"/gists\",\n+ ),\n+ MethodFromCallable( \"get_starred_gists\", Parameters( [], [] ), __getStaredGists, SimpleTypePolicy( \"list of `Gist`\" ) ),\n+ ExternalListOfObjects( \"issues\", \"issue\", Issue,\n+ ListGetable( Parameters( [], [] ) ),\n+ url = \"/issues\",\n+ ),\n+)","changes":94,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Authorization.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Authorization.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Authorization.py","additions":12,"status":"added","patch":"@@ -0,0 +1,12 @@\n+from GithubObject import *\n+\n+Authorization = GithubObject(\n+ \"Authorization\",\n+ BaseUrl( lambda obj: \"/authorizations/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"id\", \"url\", \"scopes\", \"token\", \"app\", \"note\", \"note_url\", \"updated_at\",\n+ \"created_at\",\n+ ),\n+ Editable( Parameters( [], [ \"scopes\", \"add_scopes\", \"remove_scopes\", \"note\", \"note_url\" ] ) ),\n+ Deletable(),\n+)","changes":12,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Branch.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Branch.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Branch.py","additions":10,"status":"added","patch":"@@ -0,0 +1,10 @@\n+from Commit import *\n+\n+Branch = GithubObject(\n+ \"Branch\",\n+ InternalSimpleAttributes(\n+ \"name\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"commit\", Commit )\n+)","changes":10,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Commit.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Commit.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Commit.py","additions":24,"status":"added","patch":"@@ -0,0 +1,24 @@\n+from GitCommit import *\n+from NamedUser import *\n+from CommitComment import *\n+\n+__modifyAttributesForObjectsReferingReferedRepo = { \"_repo\": lambda obj: obj._repo }\n+\n+Commit = GithubObject(\n+ \"Commit\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/commits/\" + str( obj.sha ) ),\n+ InternalSimpleAttributes(\n+ \"sha\", \"url\",\n+ \"parents\",\n+ \"stats\",\n+ \"files\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"commit\", GitCommit ),\n+ InternalObjectAttribute( \"author\", NamedUser ),\n+ InternalObjectAttribute( \"committer\", NamedUser ),\n+ ExternalListOfObjects( \"comments\", \"comment\", CommitComment,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ ElementCreatable( Parameters( [ \"body\" ], [ \"commit_id\", \"line\", \"path\", \"position\" ] ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ ),\n+)","changes":24,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/CommitComment.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/CommitComment.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/CommitComment.py","additions":14,"status":"added","patch":"@@ -0,0 +1,14 @@\n+from NamedUser import *\n+\n+CommitComment = GithubObject(\n+ \"CommitComment\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/comments/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"id\", \"body\", \"path\", \"position\", \"commit_id\",\n+ \"created_at\", \"updated_at\", \"html_url\", \"line\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"user\", NamedUser ),\n+ Editable( Parameters( [ \"body\" ], [] ) ),\n+ Deletable(),\n+)","changes":14,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Download.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Download.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Download.py","additions":14,"status":"added","patch":"@@ -0,0 +1,14 @@\n+from GithubObject import *\n+\n+Download = GithubObject(\n+ \"Download\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/downloads/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"html_url\", \"id\", \"name\", \"description\", \"size\",\n+ \"download_count\", \"content_type\", \"policy\", \"signature\", \"bucket\",\n+ \"accesskeyid\", \"path\", \"acl\", \"expirationdate\", \"prefix\", \"mime_type\",\n+ \"redirect\", \"s3_url\", \"created_at\",\n+ \"_repo\",\n+ ),\n+ Deletable(),\n+)","changes":14,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Event.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Event.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Event.py","additions":14,"status":"added","patch":"@@ -0,0 +1,14 @@\n+from Repository import *\n+from NamedUser import *\n+from Organization import *\n+\n+Event = GithubObject(\n+ \"Event\",\n+ InternalSimpleAttributes(\n+ \"type\", \"public\", \"payload\", \"created_at\", \"id\", \"commit_id\", \"url\",\n+ \"event\", \"issue\",\n+ ),\n+ InternalObjectAttribute( \"repo\", Repository ),\n+ InternalObjectAttribute( \"actor\", NamedUser ),\n+ InternalObjectAttribute( \"org\", Organization ),\n+)\n\\ No newline at end of file","changes":14,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Gist.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Gist.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Gist.py","additions":37,"status":"added","patch":"@@ -0,0 +1,37 @@\n+from NamedUser import *\n+from GistComment import *\n+\n+def __isStarred( gist ):\n+ return gist._github._statusRequest( \"GET\", gist._baseUrl() + \"/star\", None, None ) == 204\n+def __setStarred( gist ):\n+ gist._github._statusRequest( \"PUT\", gist._baseUrl() + \"/star\", None, None )\n+def __resetStarred( gist ):\n+ gist._github._statusRequest( \"DELETE\", gist._baseUrl() + \"/star\", None, None )\n+Gist = GithubObject(\n+ \"Gist\",\n+ BaseUrl( lambda obj: \"/gists/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"id\", \"description\", \"public\", \"files\", \"comments\", \"html_url\",\n+ \"git_pull_url\", \"git_push_url\", \"created_at\", \"forks\", \"history\",\n+ \"updated_at\",\n+ ),\n+ InternalObjectAttribute( \"user\", NamedUser ),\n+ Editable( Parameters( [], [ \"description\", \"files\" ] ) ),\n+ Deletable(),\n+ ExternalListOfObjects( \"comments\", \"comment\", GistComment,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ) ),\n+ ElementCreatable( Parameters( [ \"body\" ], [] ) ),\n+ ),\n+ SeveralAttributePolicies( [\n+ MethodFromCallable( \"is_starred\", Parameters( [], [] ), __isStarred, SimpleTypePolicy( \"bool\" ) ),\n+ MethodFromCallable( \"set_starred\", Parameters( [], [] ), __setStarred, SimpleTypePolicy( None ) ),\n+ MethodFromCallable( \"reset_starred\", Parameters( [], [] ), __resetStarred, SimpleTypePolicy( None ) ),\n+ ], \"Starring\" ),\n+)\n+def __createFork( gist ):\n+ return Gist( gist._github, gist._github._dataRequest( \"POST\", gist._baseUrl() + \"/fork\", None, None ), lazy = True )\n+Gist._addAttributePolicy( SeveralAttributePolicies( [\n+ MethodFromCallable( \"create_fork\", Parameters( [], [] ), __createFork, ObjectTypePolicy( Gist ) ),\n+ ], \"Forking\" ),\n+)","changes":37,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GistComment.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GistComment.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GistComment.py","additions":13,"status":"added","patch":"@@ -0,0 +1,13 @@\n+from NamedUser import *\n+\n+GistComment = GithubObject(\n+ \"GistComment\",\n+ BaseUrl( lambda obj: \"/gists/comments/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"id\", \"url\", \"body\", \"created_at\",\n+ \"updated_at\",\n+ ),\n+ InternalObjectAttribute( \"user\", NamedUser ),\n+ Editable( Parameters( [ \"body\" ], [] ) ),\n+ Deletable(),\n+)","changes":13,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GitBlob.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitBlob.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitBlob.py","additions":11,"status":"added","patch":"@@ -0,0 +1,11 @@\n+from GithubObject import *\n+\n+GitBlob = GithubObject(\n+ \"GitBlob\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/blobs/\" + obj.sha ),\n+ InternalSimpleAttributes(\n+ \"sha\", \"size\", \"url\",\n+ \"content\", \"encoding\",\n+ \"_repo\",\n+ ),\n+)","changes":11,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GitCommit.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitCommit.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitCommit.py","additions":13,"status":"added","patch":"@@ -0,0 +1,13 @@\n+from GitTree import *\n+\n+GitCommit = GithubObject(\n+ \"GitCommit\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/commits/\" + obj.sha ),\n+ InternalSimpleAttributes(\n+ \"sha\", \"url\", \"message\",\n+ \"parents\",\n+ \"author\", \"committer\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"tree\", GitTree ),\n+)","changes":13,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GitRef.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitRef.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitRef.py","additions":12,"status":"added","patch":"@@ -0,0 +1,12 @@\n+from GithubObject import *\n+\n+GitRef = GithubObject(\n+ \"GitRef\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/\" + obj.ref ),\n+ InternalSimpleAttributes(\n+ \"ref\", \"url\",\n+ \"object\",\n+ \"_repo\",\n+ ),\n+ Editable( Parameters( [ \"sha\" ], [ \"force\" ] ) ),\n+)","changes":12,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GitTag.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitTag.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitTag.py","additions":13,"status":"added","patch":"@@ -0,0 +1,13 @@\n+from GithubObject import *\n+\n+GitTag = GithubObject(\n+ \"GitTag\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/tags/\" + obj.sha ),\n+ InternalSimpleAttributes(\n+ \"tag\", \"sha\", \"url\",\n+ \"message\",\n+ \"tagger\",\n+ \"object\",\n+ \"_repo\",\n+ ),\n+)","changes":13,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GitTree.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitTree.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GitTree.py","additions":11,"status":"added","patch":"@@ -0,0 +1,11 @@\n+from GithubObject import *\n+\n+GitTree = GithubObject(\n+ \"GitTree\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/git/trees/\" + obj.sha + \"?recursive=1\" if obj.recursive else \"\" ),\n+ InternalSimpleAttributes(\n+ \"sha\", \"url\",\n+ \"tree\",\n+ \"_repo\", \"recursive\",\n+ ),\n+)","changes":11,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GithubObject/ArgumentsChecker.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/ArgumentsChecker.py","deletions":1,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/ArgumentsChecker.py","additions":22,"status":"renamed","patch":"@@ -1,6 +1,6 @@\n import itertools\n \n-class ArgumentsChecker:\n+class Parameters:\n def __init__( self, mandatoryParameters, optionalParameters ):\n self.__mandatoryParameters = mandatoryParameters\n self.__optionalParameters = optionalParameters\n@@ -34,3 +34,24 @@ def documentParameters( self ):\n return \" \" + mandatory + \" \"\n else:\n return \" \" + mandatory + \", \" + optional + \" \"\n+\n+def NoParameters():\n+ return Parameters( [], [] )\n+\n+class Alternative:\n+ def __init__( self, *checkers ):\n+ self.__checkers = checkers\n+\n+ def check( self, args, kwds ):\n+ # Try the n - 1 first checkers\n+ for checker in self.__checkers[ : -1 ]:\n+ try:\n+ return checker.check( args, kwds )\n+ except TypeError:\n+ pass\n+ # Use the last checker\n+ # This way, the call stack will point to an actual validation failure\n+ return self.__checkers[ -1 ].check( args, kwds )\n+\n+ def documentParameters( self ):\n+ return \" <\" + \"> or <\".join( checker.documentParameters() for checker in self.__checkers ) + \"> \"","changes":23,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GithubObject/Basic.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/Basic.py","deletions":5,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/Basic.py","additions":2,"status":"renamed","patch":"@@ -1,5 +1,3 @@\n-from ArgumentsChecker import *\n-\n class AttributeFromCallable:\n class AttributeDefinition:\n def __init__( self, name, callable ):\n@@ -25,10 +23,9 @@ def apply( self, cls ):\n def autoDocument( self ):\n return \"\"\n \n-### @todo include the ArgumentsChecker\n class MethodFromCallable:\n- def __init__( self, name, mandatoryParameters, optionalParameters, callable, returnTypePolicy ):\n- self.__argumentsChecker = ArgumentsChecker( mandatoryParameters, optionalParameters )\n+ def __init__( self, name, parameters, callable, returnTypePolicy ):\n+ self.__argumentsChecker = parameters\n self.__name = name\n self.__callable = callable\n self.__returnTypePolicy = returnTypePolicy","changes":7,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GithubObject/GithubObject.UnitTest.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a3be28756101370fbc689eec3a7825c4c385a6c9/github/GithubObject.UnitTest.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a3be28756101370fbc689eec3a7825c4c385a6c9/github/GithubObject.UnitTest.py","additions":0,"status":"added","changes":0,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GithubObject/GithubObject.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/GithubObject.py","deletions":8,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/GithubObject.py","additions":8,"status":"renamed","patch":"@@ -1,9 +1,9 @@\n import itertools\n \n-from ObjectCapacities.ArgumentsChecker import *\n-from ObjectCapacities.Basic import *\n-from ObjectCapacities.List import *\n-from ObjectCapacities.TypePolicies import *\n+from ArgumentsChecker import *\n+from Basic import *\n+from List import *\n+from TypePolicies import *\n \n class BadGithubObjectException( Exception ):\n pass\n@@ -21,21 +21,21 @@ def ExternalSimpleAttribute( attributeName, type ):\n return ExternalAttribute( attributeName, SimpleTypePolicy( type ) )\n \n def BaseUrl( baseUrl ):\n- return MethodFromCallable( \"_baseUrl\", [], [], baseUrl, SimpleTypePolicy( None ) )\n+ return MethodFromCallable( \"_baseUrl\", NoParameters(), baseUrl, SimpleTypePolicy( None ) )\n \n def Identity( identity ):\n return AttributeFromCallable( \"_identity\", identity )\n \n-def Editable( mandatoryParameters, optionalParameters ):\n+def Editable( parameters ):\n def __execute( obj, **data ):\n attributes = obj._github._dataRequest( \"PATCH\", obj._baseUrl(), None, data )\n obj._updateAttributes( attributes )\n- return SeveralAttributePolicies( [ MethodFromCallable( \"edit\", mandatoryParameters, optionalParameters, __execute, SimpleTypePolicy( None ) ) ], \"Modification\" )\n+ return SeveralAttributePolicies( [ MethodFromCallable( \"edit\", parameters, __execute, SimpleTypePolicy( None ) ) ], \"Modification\" )\n \n def Deletable():\n def __execute( obj ):\n obj._github._statusRequest( \"DELETE\", obj._baseUrl(), None, None )\n- return SeveralAttributePolicies( [ MethodFromCallable( \"delete\", [], [], __execute, SimpleTypePolicy( None ) ) ], \"Deletion\" )\n+ return SeveralAttributePolicies( [ MethodFromCallable( \"delete\", NoParameters(), __execute, SimpleTypePolicy( None ) ) ], \"Deletion\" )\n \n def GithubObject( className, *attributePolicies ):\n class GithubObject:","changes":16,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GithubObject/List.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/List.py","deletions":8,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/List.py","additions":7,"status":"renamed","patch":"@@ -62,8 +62,7 @@ def __execute( self, obj, toBeQueried ):\n ) == 204\n \n def autoDocument( self ):\n- ### @todo `bool` -> bool\n- return \"* `has_in_\" + self.safeAttributeName + \"( \" + self.singularName + \" )`: `bool`\\n * `\" + self.singularName + \"`: \" + self.typePolicy.documentTypeName() + \"\\n\"\n+ return \"* `has_in_\" + self.safeAttributeName + \"( \" + self.singularName + \" )`: bool\\n * `\" + self.singularName + \"`: \" + self.typePolicy.documentTypeName() + \"\\n\"\n \n class ListCapacityWithModifier( ListCapacity ):\n def __init__( self, attributeModifiers ):\n@@ -75,9 +74,9 @@ def _modifyAttributes( self, obj, attributes ):\n return attributes\n \n class ElementCreatable( ListCapacityWithModifier ):\n- def __init__( self, mandatoryParameters, optionalParameters, attributeModifiers = {} ):\n+ def __init__( self, parameters = NoParameters(), attributeModifiers = {} ):\n ListCapacityWithModifier.__init__( self, attributeModifiers )\n- self.__argumentsChecker = ArgumentsChecker( mandatoryParameters, optionalParameters )\n+ self.__argumentsChecker = parameters\n \n def apply( self, cls ):\n cls._addMethod( \"create_\" + self.singularName, self.__execute )\n@@ -100,9 +99,9 @@ def autoDocument( self ):\n return \"* `create_\" + self.singularName + \"(\" + self.__argumentsChecker.documentParameters() + \")`: \" + self.typePolicy.documentTypeName() + \"\\n\"\n \n class ElementGetable( ListCapacityWithModifier ):\n- def __init__( self, mandatoryParameters, optionalParameters, attributeModifiers = {} ):\n+ def __init__( self, parameters = NoParameters(), attributeModifiers = {} ):\n ListCapacityWithModifier.__init__( self, attributeModifiers )\n- self.__argumentsChecker = ArgumentsChecker( mandatoryParameters, optionalParameters )\n+ self.__argumentsChecker = parameters\n \n def apply( self, cls ):\n cls._addMethod( \"get_\" + self.singularName, self.__execute )\n@@ -156,9 +155,9 @@ def autoDocument( self ):\n return \"* `remove_from_\" + self.safeAttributeName + \"( \" + self.singularName + \", ... )`\\n * `\" + self.singularName + \"`: \" + self.typePolicy.documentTypeName() + \"\\n\"\n \n class ListGetable( ListCapacityWithModifier ):\n- def __init__( self, mandatoryParameters, optionalParameters, attributeModifiers = {} ):\n+ def __init__( self, parameters = NoParameters(), attributeModifiers = {} ):\n ListCapacityWithModifier.__init__( self, attributeModifiers )\n- self.__argumentsChecker = ArgumentsChecker( mandatoryParameters, optionalParameters )\n+ self.__argumentsChecker = parameters\n \n def apply( self, cls ):\n cls._addMethod( \"get_\" + self.safeAttributeName, self.__execute )","changes":15,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GithubObject/TypePolicies.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a3be28756101370fbc689eec3a7825c4c385a6c9/github/ObjectCapacities/TypePolicies.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a3be28756101370fbc689eec3a7825c4c385a6c9/github/ObjectCapacities/TypePolicies.py","additions":0,"status":"added","changes":0,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/GithubObject/__init__.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/__init__.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/GithubObject/__init__.py","additions":1,"status":"added","patch":"@@ -0,0 +1 @@\n+from GithubObject import *","changes":1,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Hook.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Hook.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Hook.py","additions":16,"status":"added","patch":"@@ -0,0 +1,16 @@\n+from GithubObject import *\n+\n+def __testHook( hook ):\n+ hook._github._statusRequest( \"POST\", hook._baseUrl() + \"/test\", None, None )\n+Hook = GithubObject(\n+ \"Hook\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/hooks/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"updated_at\", \"created_at\", \"name\", \"events\", \"active\", \"config\",\n+ \"id\", \"last_response\",\n+ \"_repo\",\n+ ),\n+ Editable( Parameters( [ \"name\", \"config\" ], [ \"events\", \"add_events\", \"remove_events\", \"active\" ] ) ),\n+ Deletable(),\n+ SeveralAttributePolicies( [ MethodFromCallable( \"test\", Parameters( [], [] ), __testHook, SimpleTypePolicy( None ) ) ], \"Testing\" )\n+)","changes":16,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Issue.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Issue.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Issue.py","additions":37,"status":"added","patch":"@@ -0,0 +1,37 @@\n+from NamedUser import *\n+from Milestone import *\n+from Label import *\n+from IssueComment import *\n+from IssueEvent import *\n+\n+__modifyAttributesForObjectsReferingReferedRepo = { \"_repo\": lambda obj: obj._repo }\n+\n+Issue = GithubObject(\n+ \"Issue\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/issues/\" + str( obj.number ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"html_url\", \"number\", \"state\", \"title\", \"body\", \"labels\",\n+ \"comments\", \"closed_at\", \"created_at\", \"updated_at\", \"id\", \"closed_by\",\n+ \"pull_request\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"user\", NamedUser ),\n+ InternalObjectAttribute( \"assignee\", NamedUser ),\n+ InternalObjectAttribute( \"milestone\", Milestone ),\n+ Editable( Parameters( [], [ \"title\", \"body\", \"assignee\", \"state\", \"milestone\", \"labels\" ] ) ),\n+ ExternalListOfObjects( \"labels\", \"label\", Label,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ SeveralElementsAddable(),\n+ ListSetable(),\n+ ListDeletable(),\n+ ElementRemovable(),\n+ ),\n+ ExternalListOfObjects( \"comments\", \"comment\", IssueComment,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ ElementCreatable( Parameters( [ \"body\" ], [] ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ ),\n+ ExternalListOfObjects( \"events\", \"event\", IssueEvent,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingReferedRepo )\n+ ),\n+)","changes":37,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/IssueComment.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/IssueComment.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/IssueComment.py","additions":13,"status":"added","patch":"@@ -0,0 +1,13 @@\n+from NamedUser import *\n+\n+IssueComment = GithubObject(\n+ \"IssueComment\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/issues/comments/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"body\", \"created_at\", \"updated_at\", \"id\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"user\", NamedUser ),\n+ Editable( Parameters( [ \"body\" ], [] ) ),\n+ Deletable(),\n+)","changes":13,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/IssueEvent.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/IssueEvent.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/IssueEvent.py","additions":11,"status":"added","patch":"@@ -0,0 +1,11 @@\n+from NamedUser import *\n+\n+IssueEvent = GithubObject(\n+ \"IssueEvent\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/issues/events/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"id\", \"url\", \"created_at\", \"issue\", \"event\", \"commit_id\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"actor\", NamedUser ),\n+)","changes":11,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Label.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Label.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Label.py","additions":15,"status":"added","patch":"@@ -0,0 +1,15 @@\n+import urllib\n+\n+from GithubObject import *\n+\n+Label = GithubObject(\n+ \"Label\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/labels/\" + obj._identity ),\n+ Identity( lambda obj: urllib.quote( obj.name ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"name\", \"color\",\n+ \"_repo\",\n+ ),\n+ Editable( Parameters( [ \"name\", \"color\" ], [] ) ),\n+ Deletable(),\n+)","changes":15,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Milestone.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Milestone.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Milestone.py","additions":20,"status":"added","patch":"@@ -0,0 +1,20 @@\n+from NamedUser import *\n+from Label import *\n+\n+__modifyAttributesForObjectsReferingReferedRepo = { \"_repo\": lambda obj: obj._repo }\n+\n+Milestone = GithubObject(\n+ \"Milestone\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/milestones/\" + str( obj.number ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"number\", \"state\", \"title\", \"description\", \"open_issues\",\n+ \"closed_issues\", \"created_at\", \"due_on\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"creator\", NamedUser ),\n+ Editable( Parameters( [ \"title\" ], [ \"state\", \"description\", \"due_on\" ] ) ),\n+ Deletable(),\n+ ExternalListOfObjects( \"labels\", \"label\", Label,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingReferedRepo )\n+ ),\n+)","changes":20,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/NamedUser.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/NamedUser.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/NamedUser.py","additions":30,"status":"added","patch":"@@ -0,0 +1,30 @@\n+from GithubObject import *\n+\n+NamedUser = GithubObject(\n+ \"NamedUser\",\n+ BaseUrl( lambda obj: \"/users/\" + obj.login ),\n+ Identity( lambda obj: obj.login ),\n+ InternalSimpleAttributes(\n+ \"login\", \"id\", \"avatar_url\", \"gravatar_id\", \"url\", \"name\", \"company\",\n+ \"blog\", \"location\", \"email\", \"hireable\", \"bio\", \"public_repos\",\n+ \"public_gists\", \"followers\", \"following\", \"html_url\", \"created_at\",\n+ \"type\",\n+ # Only in Repository.get_contributors()\n+ \"contributions\",\n+ # Seen only by user herself\n+ \"disk_usage\", \"collaborators\", \"plan\", \"total_private_repos\",\n+ \"owned_private_repos\", \"private_gists\",\n+ ),\n+)\n+\n+NamedUser._addAttributePolicy(\n+ ExternalListOfObjects( \"followers\", \"follower\", NamedUser,\n+ ListGetable( Parameters( [], [] ) )\n+ )\n+)\n+\n+NamedUser._addAttributePolicy(\n+ ExternalListOfObjects( \"following\", \"following\", NamedUser,\n+ ListGetable( Parameters( [], [] ) )\n+ )\n+)","changes":30,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/NamedUser_complete.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/NamedUser_complete.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/NamedUser_complete.py","additions":65,"status":"added","patch":"@@ -0,0 +1,65 @@\n+from NamedUser import *\n+\n+from Organization import *\n+from Event import *\n+from Repository import *\n+from Gist import *\n+\n+NamedUser._addAttributePolicy(\n+ ExternalListOfObjects( \"orgs\", \"org\", Organization,\n+ ListGetable( Parameters( [], [] ) )\n+ )\n+)\n+\n+NamedUser._addAttributePolicy(\n+ ExternalListOfObjects( \"events\", \"event\", Event,\n+ ListGetable( Parameters( [], [] ) )\n+ )\n+)\n+\n+def __getPublicEvents( user ):\n+ return [\n+ Event( user._github, attributes, lazy = True )\n+ for attributes\n+ in user._github._dataRequest( \"GET\", user._baseUrl() + \"/events/public\", None, None )\n+ ]\n+\n+NamedUser._addAttributePolicy(\n+ MethodFromCallable( \"get_public_events\", Parameters( [], [] ), __getPublicEvents, SimpleTypePolicy( \"list of `Event`\" ) )\n+)\n+\n+NamedUser._addAttributePolicy(\n+ ExternalListOfObjects( \"received_events\", \"received_event\", Event,\n+ ListGetable( Parameters( [], [] ) )\n+ )\n+)\n+\n+def __getPublicReceivedEvents( user ):\n+ return [\n+ Event( user._github, attributes, lazy = True )\n+ for attributes\n+ in user._github._dataRequest( \"GET\", user._baseUrl() + \"/received_events/public\", None, None )\n+ ]\n+\n+NamedUser._addAttributePolicy(\n+ MethodFromCallable( \"get_public_received_events\", Parameters( [], [] ), __getPublicReceivedEvents, SimpleTypePolicy( \"list of `Event`\" ) )\n+)\n+\n+NamedUser._addAttributePolicy(\n+ ExternalListOfObjects( \"repos\", \"repo\", Repository,\n+ ListGetable( Parameters( [], [ \"type\" ] ) ),\n+ ElementGetable( Parameters( [ \"name\" ], [] ), { \"owner\" : lambda user: { \"login\": user.login } } )\n+ )\n+)\n+\n+NamedUser._addAttributePolicy(\n+ ExternalListOfObjects( \"watched\", \"watched\", Repository,\n+ ListGetable( Parameters( [], [] ) )\n+ )\n+)\n+\n+NamedUser._addAttributePolicy(\n+ ExternalListOfObjects( \"gists\", \"gist\", Gist,\n+ ListGetable( Parameters( [], [] ) ),\n+ )\n+)","changes":65,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Organization.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Organization.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Organization.py","additions":27,"status":"added","patch":"@@ -0,0 +1,27 @@\n+from NamedUser import *\n+\n+Organization = GithubObject(\n+ \"Organization\",\n+ BaseUrl( lambda obj: \"/orgs/\" + obj.login ),\n+ Identity( lambda obj: obj.login ),\n+ InternalSimpleAttributes(\n+ \"login\", \"id\", \"url\", \"avatar_url\", \"name\", \"company\", \"blog\",\n+ \"location\", \"email\", \"public_repos\", \"public_gists\", \"followers\",\n+ \"following\", \"html_url\", \"created_at\", \"type\", \"gravatar_id\",\n+ # Seen only by owners\n+ \"disk_usage\", \"collaborators\", \"billing_email\", \"plan\", \"private_gists\",\n+ \"total_private_repos\", \"owned_private_repos\",\n+ ),\n+ Editable( Parameters( [], [ \"billing_email\", \"blog\", \"company\", \"email\", \"location\", \"name\" ] ) ),\n+ ExternalListOfObjects( \"public_members\", \"public_member\", NamedUser,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementAddable(),\n+ ElementRemovable(),\n+ ElementHasable()\n+ ),\n+ ExternalListOfObjects( \"members\", \"member\", NamedUser,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementRemovable(),\n+ ElementHasable()\n+ ),\n+)","changes":27,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Organization_complete.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Organization_complete.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Organization_complete.py","additions":34,"status":"added","patch":"@@ -0,0 +1,34 @@\n+from Organization import *\n+\n+from Repository import *\n+from Team import *\n+from Event import *\n+\n+Organization._addAttributePolicy(\n+ ExternalListOfObjects( \"repos\", \"repo\", Repository,\n+ ListGetable( Parameters( [], [ \"type\" ] ) ),\n+ ElementGetable( Parameters( [ \"name\" ], [] ), { \"owner\" : lambda user: { \"login\": user.login } } ),\n+ ElementCreatable( Parameters( [ \"name\" ], [ \"description\", \"homepage\", \"private\", \"has_issues\", \"has_wiki\", \"has_downloads\", \"team_id\", ] ) )\n+ )\n+)\n+\n+def __createForkForOrg( org, repo ):\n+ assert isinstance( repo, Repository )\n+ return Repository( org._github, org._github._dataRequest( \"POST\", repo._baseUrl() + \"/forks\", { \"org\": org.login }, None ), lazy = True )\n+\n+Organization._addAttributePolicy(\n+ SeveralAttributePolicies( [ MethodFromCallable( \"create_fork\", Parameters( [ \"repo\" ], [] ), __createForkForOrg, ObjectTypePolicy( Repository ) ) ], \"Forking\" )\n+)\n+\n+Organization._addAttributePolicy(\n+ ExternalListOfObjects( \"teams\", \"team\", Team,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementCreatable( Parameters( [ \"name\" ], [ \"repo_names\", \"permission\" ] ) )\n+ )\n+)\n+\n+Organization._addAttributePolicy(\n+ ExternalListOfObjects( \"events\", \"event\", Event,\n+ ListGetable( Parameters( [], [] ) )\n+ ),\n+)","changes":34,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/PullRequest.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/PullRequest.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/PullRequest.py","additions":40,"status":"added","patch":"@@ -0,0 +1,40 @@\n+from NamedUser import *\n+from Commit import *\n+from PullRequestFile import *\n+from PullRequestComment import *\n+\n+__modifyAttributesForObjectsReferingReferedRepo = { \"_repo\": lambda obj: obj._repo }\n+\n+def __pullRequestIsMerged( r ):\n+ return r._github._statusRequest( \"GET\", r._baseUrl() + \"/merge\", None, None ) == 204\n+\n+def __mergePullRequest( r, **data ):\n+ r._github._statusRequest( \"PUT\", r._baseUrl() + \"/merge\", None, data )\n+\n+PullRequest = GithubObject(\n+ \"PullRequest\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/pulls/\" + str( obj.number ) ),\n+ InternalSimpleAttributes(\n+ \"id\", \"url\", \"html_url\", \"diff_url\", \"patch_url\", \"issue_url\", \"number\",\n+ \"state\", \"title\", \"body\", \"created_at\", \"updated_at\", \"closed_at\",\n+ \"merged_at\", \"_links\", \"merged\", \"mergeable\", \"comments\", \"commits\",\n+ \"additions\", \"deletions\", \"changed_files\", \"head\", \"base\", \"merged_by\",\n+ \"review_comments\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"user\", NamedUser ),\n+ Editable( Parameters( [], [ \"title\", \"body\", \"state\" ] ) ),\n+ ExternalListOfObjects( \"commits\", \"commit\", Commit,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ ),\n+ ExternalListOfObjects( \"files\", \"file\", PullRequestFile,\n+ ListGetable( Parameters( [], [] ) ),\n+ ),\n+ ExternalListOfObjects( \"comments\", \"comment\", PullRequestComment,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ ElementCreatable( Alternative( Parameters( [ \"body\", \"commit_id\", \"path\", \"position\" ], [] ), Parameters( [ \"body\", \"in_reply_to\" ], [] ) ), __modifyAttributesForObjectsReferingReferedRepo ),\n+ ),\n+ MethodFromCallable( \"is_merged\", Parameters( [], [] ), __pullRequestIsMerged, SimpleTypePolicy( \"bool\" ) ),\n+ MethodFromCallable( \"merge\", Parameters( [], [ \"commit_message\" ] ), __mergePullRequest, SimpleTypePolicy( None ) ),\n+)","changes":40,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/PullRequestComment.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/PullRequestComment.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/PullRequestComment.py","additions":14,"status":"added","patch":"@@ -0,0 +1,14 @@\n+from NamedUser import *\n+\n+PullRequestComment = GithubObject(\n+ \"PullRequestComment\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/pulls/comments/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"id\", \"body\", \"path\", \"position\", \"commit_id\",\n+ \"created_at\", \"updated_at\", \"html_url\", \"line\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"user\", NamedUser ),\n+ Editable( Parameters( [ \"body\" ], [] ) ),\n+ Deletable(),\n+)","changes":14,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/PullRequestFile.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/PullRequestFile.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/PullRequestFile.py","additions":9,"status":"added","patch":"@@ -0,0 +1,9 @@\n+from GithubObject import *\n+\n+PullRequestFile = GithubObject(\n+ \"PullRequestFile\",\n+ InternalSimpleAttributes(\n+ \"sha\", \"filename\", \"status\", \"additions\", \"deletions\", \"changes\",\n+ \"blob_url\", \"raw_url\", \"patch\",\n+ ),\n+)","changes":9,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Repository.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Repository.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Repository.py","additions":143,"status":"added","patch":"@@ -0,0 +1,143 @@\n+from NamedUser import *\n+from IssueEvent import *\n+from RepositoryKey import *\n+from Hook import *\n+from GitBlob import *\n+from GitCommit import *\n+from GitRef import *\n+from GitTag import *\n+from GitTree import *\n+from Label import *\n+from Milestone import *\n+from Issue import *\n+from Download import *\n+from CommitComment import *\n+from Commit import *\n+from Tag import *\n+from Branch import *\n+from PullRequest import *\n+\n+__modifyAttributesForObjectsReferingRepo = { \"_repo\": lambda repo: repo }\n+\n+def __compare( repo, base, head ):\n+ return repo._github._dataRequest( \"GET\", repo._baseUrl() + \"/compare/\" + base + \"...\" + head, None, None )\n+\n+Repository = GithubObject(\n+ \"Repository\",\n+ BaseUrl( lambda obj: \"/repos/\" + obj.owner.login + \"/\" + obj.name ),\n+ Identity( lambda obj: obj.owner.login + \"/\" + obj.name ),\n+ InternalSimpleAttributes(\n+ \"url\", \"html_url\", \"clone_url\", \"git_url\", \"ssh_url\", \"svn_url\",\n+ \"name\", \"description\", \"homepage\", \"language\", \"private\",\n+ \"fork\", \"forks\", \"watchers\", \"size\", \"master_branch\", \"open_issues\",\n+ \"pushed_at\", \"created_at\", \"organization\",\n+ \"has_issues\", \"has_wiki\", \"has_downloads\",\n+ # Not documented\n+ \"mirror_url\", \"updated_at\", \"id\",\n+ ),\n+ InternalObjectAttribute( \"owner\", NamedUser ),\n+)\n+Repository._addAttributePolicy( InternalObjectAttribute( \"parent\", Repository ) )\n+Repository._addAttributePolicy( InternalObjectAttribute( \"source\", Repository ) )\n+Repository._addAttributePolicy(\n+ ExternalListOfObjects( \"issues/events\", \"issues_event\", IssueEvent,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ )\n+)\n+Repository._addAttributePolicy(\n+ ExternalListOfObjects( \"forks\", \"fork\", Repository,\n+ ListGetable( Parameters( [], [] ) )\n+ )\n+)\n+Repository._addAttributePolicy(\n+ Editable( Parameters( [ \"name\" ], [ \"description\", \"homepage\", \"public\", \"has_issues\", \"has_wiki\", \"has_downloads\" ] ) )\n+)\n+Repository._addAttributePolicy(\n+ SeveralAttributePolicies( [ ExternalSimpleAttribute( \"languages\", \"dictionary of strings to integers\" ) ], \"Languages\" )\n+)\n+Repository._addAttributePolicy( SeveralAttributePolicies( [\n+ ExternalListOfObjects( \"hooks\", \"hook\", Hook,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"name\", \"config\" ], [ \"events\", \"active\" ] ), __modifyAttributesForObjectsReferingRepo ),\n+ ),\n+ ExternalListOfObjects( \"keys\", \"key\", RepositoryKey,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"title\", \"key\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ),\n+ ExternalListOfObjects( \"collaborators\", \"collaborator\", NamedUser,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementAddable(),\n+ ElementRemovable(),\n+ ElementHasable()\n+ ),\n+ ExternalListOfObjects( \"contributors\", \"contributor\", NamedUser,\n+ ListGetable( Parameters( [], [] ) )\n+ ),\n+ ExternalListOfObjects( \"watchers\", \"watcher\", NamedUser,\n+ ListGetable( Parameters( [], [] ) )\n+ ),\n+ ExternalListOfObjects( \"git/refs\", \"git_ref\", GitRef,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"ref\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"ref\", \"sha\" ], [] ), __modifyAttributesForObjectsReferingRepo )\n+ ),\n+ ExternalListOfObjects( \"git/commits\", \"git_commit\", GitCommit,\n+ ElementGetable( Parameters( [ \"sha\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"message\", \"tree\", \"parents\" ], [ \"author\", \"committer\" ] ), __modifyAttributesForObjectsReferingRepo )\n+ ),\n+ ExternalListOfObjects( \"git/trees\", \"git_tree\", GitTree,\n+ ElementGetable( Parameters( [ \"sha\" ], [ \"recursive\" ] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"tree\" ], [ \"base_tree\" ] ), __modifyAttributesForObjectsReferingRepo )\n+ ),\n+ ExternalListOfObjects( \"git/blobs\", \"git_blob\", GitBlob,\n+ ElementGetable( Parameters( [ \"sha\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"content\", \"encoding\" ], [] ), __modifyAttributesForObjectsReferingRepo )\n+ ),\n+ ExternalListOfObjects( \"git/tags\", \"git_tag\", GitTag,\n+ ElementGetable( Parameters( [ \"sha\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"tag\", \"message\", \"object\", \"type\" ], [ \"tagger\" ] ), __modifyAttributesForObjectsReferingRepo )\n+ ),\n+ ExternalListOfObjects( \"labels\", \"label\", Label,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"name\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"name\", \"color\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ),\n+ ExternalListOfObjects( \"milestones\", \"milestone\", Milestone,\n+ ListGetable( Parameters( [], [ \"state\", \"sort\", \"direction\" ] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"number\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"title\" ], [ \"state\", \"description\", \"due_on\" ] ), __modifyAttributesForObjectsReferingRepo )\n+ ),\n+ ExternalListOfObjects( \"issues\", \"issue\", Issue,\n+ ListGetable( Parameters( [], [ \"milestone\", \"state\", \"assignee\", \"mentioned\", \"labels\", \"sort\", \"direction\", \"since\" ] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"number\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"title\" ], [ \"body\", \"assignee\", \"milestone\", \"labels\", ] ), __modifyAttributesForObjectsReferingRepo )\n+ ),\n+ ExternalListOfObjects( \"downloads\", \"download\", Download,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Parameters( [ \"name\", \"size\" ], [ \"description\", \"content_type\" ] ), __modifyAttributesForObjectsReferingRepo ),\n+ ),\n+ ExternalListOfObjects( \"comments\", \"comment\", CommitComment,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"id\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ),\n+ ExternalListOfObjects( \"commits\", \"commit\", Commit,\n+ ListGetable( Parameters( [], [ \"sha\", \"path\" ] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"sha\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ),\n+ ExternalListOfObjects( \"tags\", \"tag\", Tag,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ),\n+ ExternalListOfObjects( \"branches\", \"branch\", Branch,\n+ ListGetable( Parameters( [], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ),\n+ ExternalListOfObjects( \"pulls\", \"pull\", PullRequest,\n+ ListGetable( Parameters( [], [ \"state\" ] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementGetable( Parameters( [ \"number\" ], [] ), __modifyAttributesForObjectsReferingRepo ),\n+ ElementCreatable( Alternative( Parameters( [ \"title\", \"body\", \"base\", \"head\" ], [] ), Parameters( [ \"issue\", \"base\", \"head\" ], [] ) ), __modifyAttributesForObjectsReferingRepo ),\n+ ),\n+ MethodFromCallable( \"compare\", Parameters( [ \"base\", \"head\" ], [] ), __compare, SimpleTypePolicy( None ) ),\n+] ) )","changes":143,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/RepositoryKey.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/RepositoryKey.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/RepositoryKey.py","additions":12,"status":"added","patch":"@@ -0,0 +1,12 @@\n+from GithubObject import *\n+\n+RepositoryKey = GithubObject(\n+ \"RepositoryKey\",\n+ BaseUrl( lambda obj: obj._repo._baseUrl() + \"/keys/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"id\", \"title\", \"key\",\n+ \"_repo\",\n+ ),\n+ Editable( Parameters( [ \"title\", \"key\" ], [] ) ),\n+ Deletable()\n+)","changes":12,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Repository_complete.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Repository_complete.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Repository_complete.py","additions":27,"status":"added","patch":"@@ -0,0 +1,27 @@\n+from Repository import *\n+\n+from Team import *\n+from Event import *\n+\n+Repository._addAttributePolicy(\n+ ExternalListOfObjects( \"teams\", \"team\", Team,\n+ ListGetable( Parameters( [], [] ) )\n+ )\n+)\n+\n+Repository._addAttributePolicy(\n+ ExternalListOfObjects( \"events\", \"event\", Event,\n+ ListGetable( Parameters( [], [] ) )\n+ ),\n+)\n+\n+def __getNetworkEvents( repo ):\n+ return [\n+ Event( repo._github, attributes, lazy = True )\n+ for attributes\n+ in repo._github._dataRequest( \"GET\", \"/networks/\" + repo.owner.login + \"/\" + repo.name + \"/events\", None, None )\n+ ]\n+\n+Repository._addAttributePolicy(\n+ MethodFromCallable( \"get_network_events\", Parameters( [], [] ), __getNetworkEvents, SimpleTypePolicy( \"list of `Event`\" ) )\n+)","changes":27,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Tag.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Tag.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Tag.py","additions":10,"status":"added","patch":"@@ -0,0 +1,10 @@\n+from Commit import *\n+\n+Tag = GithubObject(\n+ \"Tag\",\n+ InternalSimpleAttributes(\n+ \"name\", \"zipball_url\", \"tarball_url\",\n+ \"_repo\",\n+ ),\n+ InternalObjectAttribute( \"commit\", Commit )\n+)","changes":10,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/Team.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Team.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/Team.py","additions":25,"status":"added","patch":"@@ -0,0 +1,25 @@\n+from NamedUser import *\n+from Repository import *\n+\n+Team = GithubObject(\n+ \"Team\",\n+ BaseUrl( lambda obj: \"/teams/\" + str( obj.id ) ),\n+ Identity( lambda obj: str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"name\", \"id\", \"permission\", \"members_count\", \"repos_count\",\n+ ),\n+ Editable( Parameters( [ \"name\" ], [ \"permission\" ] ) ),\n+ Deletable(),\n+ ExternalListOfObjects( \"members\", \"member\", NamedUser,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementAddable(),\n+ ElementRemovable(),\n+ ElementHasable()\n+ ),\n+ ExternalListOfObjects( \"repos\", \"repo\", Repository,\n+ ListGetable( Parameters( [], [] ) ),\n+ ElementAddable(),\n+ ElementRemovable(),\n+ ElementHasable()\n+ ),\n+)","changes":25,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/UserKey.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/UserKey.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/UserKey.py","additions":11,"status":"added","patch":"@@ -0,0 +1,11 @@\n+from GithubObject import *\n+\n+UserKey = GithubObject(\n+ \"UserKey\",\n+ BaseUrl( lambda obj: \"/user/keys/\" + str( obj.id ) ),\n+ InternalSimpleAttributes(\n+ \"url\", \"id\", \"title\", \"key\",\n+ ),\n+ Editable( Parameters( [], [ \"title\", \"key\" ] ) ),\n+ Deletable(),\n+)","changes":11,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/GithubObjects/__init__.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/__init__.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/GithubObjects/__init__.py","additions":13,"status":"added","patch":"@@ -0,0 +1,13 @@\n+from AuthenticatedUser import *\n+\n+# This strange import pattern works around cyclic dependencies\n+from NamedUser import *\n+from NamedUser_complete import *\n+\n+from Organization import *\n+from Organization_complete import *\n+\n+from Repository import *\n+from Repository_complete import *\n+\n+from Gist import *","changes":13,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/ObjectCapacities/__init__.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a3be28756101370fbc689eec3a7825c4c385a6c9/github/ObjectCapacities/__init__.py","deletions":0,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a3be28756101370fbc689eec3a7825c4c385a6c9/github/ObjectCapacities/__init__.py","additions":0,"status":"removed","changes":0,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"},{"filename":"github/Requester.py","blob_url":"https://github.com/jacquev6/PyGithub/blob/a0cc821c1beada4aa9ca0d5218664c5372720936/github/Requester.py","deletions":3,"raw_url":"https://github.com/jacquev6/PyGithub/raw/a0cc821c1beada4aa9ca0d5218664c5372720936/github/Requester.py","additions":0,"status":"modified","patch":"@@ -1,5 +1,3 @@\n-### @todo Add a copyright and license notice in all files\n-\n import httplib\n import json\n import base64\n@@ -36,7 +34,6 @@ def dataRequest( self, verb, url, parameters, input ):\n def __statusCheckedRequest( self, verb, url, parameters, input ):\n status, headers, output = self.__rawRequest( verb, url, parameters, input )\n if status < 200 or status >= 300:\n- ### @todo Be specific (403 is not the same thing as 404!)\n raise UnknownGithubObject()\n return headers, output\n ","changes":3,"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"}],"patch_url":"https://github.com/jacquev6/PyGithub/compare/master...develop.patch","url":"https://api.github.com/repos/jacquev6/PyGithub/compare/master...develop","commits":[{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a3be28756101370fbc689eec3a7825c4c385a6c9","sha":"a3be28756101370fbc689eec3a7825c4c385a6c9"}],"committer":{"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/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T23:30:43-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/202a101db80163b980fff6ae1ccebd8e985778e1","sha":"202a101db80163b980fff6ae1ccebd8e985778e1"},"message":"Remove todos, add them as github.com issues","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-12T23:30:43-07:00"}},"sha":"58b4396aa0e7cb72911b75cb035798143a06e0ee"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","sha":"58b4396aa0e7cb72911b75cb035798143a06e0ee"}],"committer":{"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/commits/378558f6cac6183b4a7100c0ce5eaad1cfff6717","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:14:56-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/980bf3f66b3cbeec03a37db5263cbbc883b54681","sha":"980bf3f66b3cbeec03a37db5263cbbc883b54681"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/378558f6cac6183b4a7100c0ce5eaad1cfff6717","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:14:56-07:00"}},"sha":"378558f6cac6183b4a7100c0ce5eaad1cfff6717"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/378558f6cac6183b4a7100c0ce5eaad1cfff6717","sha":"378558f6cac6183b4a7100c0ce5eaad1cfff6717"}],"committer":{"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/commits/3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:18:28-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e9bced97139773dcfbbefc6a4091e4458ee1fe23","sha":"e9bced97139773dcfbbefc6a4091e4458ee1fe23"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:18:28-07:00"}},"sha":"3e8169c0a98ce1e2c6a32ae1256ae0f735065df5"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/3e8169c0a98ce1e2c6a32ae1256ae0f735065df5","sha":"3e8169c0a98ce1e2c6a32ae1256ae0f735065df5"}],"committer":{"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/commits/b56aa09011378b014221f86dffb8304957a9e6bd","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:26:13-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5683cd9759e70f12141fb579a729e1c5d72256ad","sha":"5683cd9759e70f12141fb579a729e1c5d72256ad"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/b56aa09011378b014221f86dffb8304957a9e6bd","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:26:13-07:00"}},"sha":"b56aa09011378b014221f86dffb8304957a9e6bd"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/b56aa09011378b014221f86dffb8304957a9e6bd","sha":"b56aa09011378b014221f86dffb8304957a9e6bd"}],"committer":{"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/commits/0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:35:28-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/df0cf9d9d9db0389f96d0448baaea45528983486","sha":"df0cf9d9d9db0389f96d0448baaea45528983486"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:35:28-07:00"}},"sha":"0d9fc99a4b5d1ec6473c9c81c888917c132ffa65"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0d9fc99a4b5d1ec6473c9c81c888917c132ffa65","sha":"0d9fc99a4b5d1ec6473c9c81c888917c132ffa65"}],"committer":{"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/commits/5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:36:15-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/c220b5fe6708feed4646e08f66cbd191d3074318","sha":"c220b5fe6708feed4646e08f66cbd191d3074318"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:36:15-07:00"}},"sha":"5d1add448e0b0b1dadb8c6094a9e5e19b255f67e"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/5d1add448e0b0b1dadb8c6094a9e5e19b255f67e","sha":"5d1add448e0b0b1dadb8c6094a9e5e19b255f67e"}],"committer":{"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/commits/4a5cf98e7f959f1b5d9af484760c25cd27d9180d","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:37:23-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/27c76f8754af9bfc0bd2f285a9034a2a267f3f6b","sha":"27c76f8754af9bfc0bd2f285a9034a2a267f3f6b"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/4a5cf98e7f959f1b5d9af484760c25cd27d9180d","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:37:23-07:00"}},"sha":"4a5cf98e7f959f1b5d9af484760c25cd27d9180d"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/4a5cf98e7f959f1b5d9af484760c25cd27d9180d","sha":"4a5cf98e7f959f1b5d9af484760c25cd27d9180d"}],"committer":{"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/commits/e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:40:44-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/860a56be6edc3335b3f1d7c05163ce6c88d86d97","sha":"860a56be6edc3335b3f1d7c05163ce6c88d86d97"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:40:44-07:00"}},"sha":"e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a","sha":"e648e5aeb5edc1fbf83e9d37d2a3cb57c005019a"}],"committer":{"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/commits/cab9d71603e127bdd1f600a759dccea1781fa1ab","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:42:20-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/3a4160a7930e855165662640ab9ac0b284930602","sha":"3a4160a7930e855165662640ab9ac0b284930602"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/cab9d71603e127bdd1f600a759dccea1781fa1ab","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:42:20-07:00"}},"sha":"cab9d71603e127bdd1f600a759dccea1781fa1ab"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/cab9d71603e127bdd1f600a759dccea1781fa1ab","sha":"cab9d71603e127bdd1f600a759dccea1781fa1ab"}],"committer":{"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/commits/fb722625dddb9a32f75190723f7da12683b7c4b2","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:59:48-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/bd492ae3de0943fa17cf91c3840361855b38814d","sha":"bd492ae3de0943fa17cf91c3840361855b38814d"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/fb722625dddb9a32f75190723f7da12683b7c4b2","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T11:59:48-07:00"}},"sha":"fb722625dddb9a32f75190723f7da12683b7c4b2"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/fb722625dddb9a32f75190723f7da12683b7c4b2","sha":"fb722625dddb9a32f75190723f7da12683b7c4b2"}],"committer":{"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/commits/231926207709ceaa61e87b64e34e17d85adecd9c","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:01:07-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/54f99bd97e9223673a5947bdb8bd8dcafd9878d8","sha":"54f99bd97e9223673a5947bdb8bd8dcafd9878d8"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/231926207709ceaa61e87b64e34e17d85adecd9c","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:01:07-07:00"}},"sha":"231926207709ceaa61e87b64e34e17d85adecd9c"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/231926207709ceaa61e87b64e34e17d85adecd9c","sha":"231926207709ceaa61e87b64e34e17d85adecd9c"}],"committer":{"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/commits/99564c1cab139d1e4678f5f83f60d26f1210db7e","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:04:42-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/2824e5fdbb2811bb05eab1a225a9e64d4974b880","sha":"2824e5fdbb2811bb05eab1a225a9e64d4974b880"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/99564c1cab139d1e4678f5f83f60d26f1210db7e","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:04:42-07:00"}},"sha":"99564c1cab139d1e4678f5f83f60d26f1210db7e"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/99564c1cab139d1e4678f5f83f60d26f1210db7e","sha":"99564c1cab139d1e4678f5f83f60d26f1210db7e"}],"committer":{"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/commits/1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:11:37-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/26e23b86645628acb3f1764e8d81a213b9f3443f","sha":"26e23b86645628acb3f1764e8d81a213b9f3443f"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:11:37-07:00"}},"sha":"1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e","sha":"1c95ddfa09ec0aa1f07ee9ad50a77be1dd74b55e"}],"committer":{"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/commits/877dde23e140bbf038f9a2d8f0f07b4e3a965c61","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:13:04-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/307d8dc221f2a6097a520636f60238621e966f58","sha":"307d8dc221f2a6097a520636f60238621e966f58"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/877dde23e140bbf038f9a2d8f0f07b4e3a965c61","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:13:04-07:00"}},"sha":"877dde23e140bbf038f9a2d8f0f07b4e3a965c61"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/877dde23e140bbf038f9a2d8f0f07b4e3a965c61","sha":"877dde23e140bbf038f9a2d8f0f07b4e3a965c61"}],"committer":{"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/commits/960db1d5c9853e9f5fbbc9237c2c166ceef1f080","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:18:02-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b16b7a597ab3aa1876b1797426367114d4421642","sha":"b16b7a597ab3aa1876b1797426367114d4421642"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/960db1d5c9853e9f5fbbc9237c2c166ceef1f080","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:18:02-07:00"}},"sha":"960db1d5c9853e9f5fbbc9237c2c166ceef1f080"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/960db1d5c9853e9f5fbbc9237c2c166ceef1f080","sha":"960db1d5c9853e9f5fbbc9237c2c166ceef1f080"}],"committer":{"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/commits/504047e218e6b34a3828ccc408431634f17b9504","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:19:54-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/64a98d6a5045debec1ab928d49989c7f0f666be2","sha":"64a98d6a5045debec1ab928d49989c7f0f666be2"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/504047e218e6b34a3828ccc408431634f17b9504","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:19:54-07:00"}},"sha":"504047e218e6b34a3828ccc408431634f17b9504"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/504047e218e6b34a3828ccc408431634f17b9504","sha":"504047e218e6b34a3828ccc408431634f17b9504"}],"committer":{"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/commits/75e72ffa3066693291f7da03070666e8f885097a","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:23:47-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/ef565463ba492225543f538ddc2ac31d93301a3e","sha":"ef565463ba492225543f538ddc2ac31d93301a3e"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/75e72ffa3066693291f7da03070666e8f885097a","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:23:47-07:00"}},"sha":"75e72ffa3066693291f7da03070666e8f885097a"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/75e72ffa3066693291f7da03070666e8f885097a","sha":"75e72ffa3066693291f7da03070666e8f885097a"}],"committer":{"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/commits/767d75a580279e457f9bc52bc308a17ff8ea0509","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:24:39-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0","sha":"9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0"},"message":"Spliting GithubObjects.py","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/767d75a580279e457f9bc52bc308a17ff8ea0509","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:24:39-07:00"}},"sha":"767d75a580279e457f9bc52bc308a17ff8ea0509"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/58b4396aa0e7cb72911b75cb035798143a06e0ee","sha":"58b4396aa0e7cb72911b75cb035798143a06e0ee"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/767d75a580279e457f9bc52bc308a17ff8ea0509","sha":"767d75a580279e457f9bc52bc308a17ff8ea0509"}],"committer":{"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/commits/50ac55b25ceba555b84709839f80447552450697","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:26:20-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0","sha":"9541dc30b6f7eb32a0eeb99661974efc2bc2b2e0"},"message":"Merge branch 'topic/SplitGithubObjects' into develop","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/50ac55b25ceba555b84709839f80447552450697","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-13T12:26:20-07:00"}},"sha":"50ac55b25ceba555b84709839f80447552450697"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/50ac55b25ceba555b84709839f80447552450697","sha":"50ac55b25ceba555b84709839f80447552450697"}],"committer":{"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/commits/85eef756353e13efcb24c726320cd2617c2a7bd8","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:31:32-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/b0eadbf0e94e5098c5e4324f92e1546b3fe97ae2","sha":"b0eadbf0e94e5098c5e4324f92e1546b3fe97ae2"},"message":"Move classes around","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/85eef756353e13efcb24c726320cd2617c2a7bd8","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:56:08-07:00"}},"sha":"85eef756353e13efcb24c726320cd2617c2a7bd8"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/85eef756353e13efcb24c726320cd2617c2a7bd8","sha":"85eef756353e13efcb24c726320cd2617c2a7bd8"}],"committer":{"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/commits/69cc298fd159f19eb204dd09f17d31dc4abc3d41","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:55:06-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a1d3e1193b5eeb668b0a9e4ec0286adeee2bfc98","sha":"a1d3e1193b5eeb668b0a9e4ec0286adeee2bfc98"},"message":"Make sure only three class definitions are distributed","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/69cc298fd159f19eb204dd09f17d31dc4abc3d41","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T14:56:12-07:00"}},"sha":"69cc298fd159f19eb204dd09f17d31dc4abc3d41"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/69cc298fd159f19eb204dd09f17d31dc4abc3d41","sha":"69cc298fd159f19eb204dd09f17d31dc4abc3d41"}],"committer":{"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/commits/8213df1d744f251aa8e52229643a9f6ce352f3c0","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:07:21-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e2cd74e9c3cf6ff69da96f8fad7e1e4120db56fb","sha":"e2cd74e9c3cf6ff69da96f8fad7e1e4120db56fb"},"message":"Simplify internal imports","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/8213df1d744f251aa8e52229643a9f6ce352f3c0","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:07:21-07:00"}},"sha":"8213df1d744f251aa8e52229643a9f6ce352f3c0"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/8213df1d744f251aa8e52229643a9f6ce352f3c0","sha":"8213df1d744f251aa8e52229643a9f6ce352f3c0"}],"committer":{"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/commits/32ed0ebc377efbed5b482b3d49ff54bf1715d55a","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:13:37-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/4836c31ec1b75e4b0145bae29cda338318b583a0","sha":"4836c31ec1b75e4b0145bae29cda338318b583a0"},"message":"Move GithubObject","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/32ed0ebc377efbed5b482b3d49ff54bf1715d55a","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:13:37-07:00"}},"sha":"32ed0ebc377efbed5b482b3d49ff54bf1715d55a"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/32ed0ebc377efbed5b482b3d49ff54bf1715d55a","sha":"32ed0ebc377efbed5b482b3d49ff54bf1715d55a"}],"committer":{"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/commits/6e421e9e85e12008758870bc046bc2c6120af72a","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:24:49-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5e1db9b1002e45cbcde2f17253233b3cf50496ad","sha":"5e1db9b1002e45cbcde2f17253233b3cf50496ad"},"message":"Separate the three distributed classes","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6e421e9e85e12008758870bc046bc2c6120af72a","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:24:49-07:00"}},"sha":"6e421e9e85e12008758870bc046bc2c6120af72a"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/50ac55b25ceba555b84709839f80447552450697","sha":"50ac55b25ceba555b84709839f80447552450697"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6e421e9e85e12008758870bc046bc2c6120af72a","sha":"6e421e9e85e12008758870bc046bc2c6120af72a"}],"committer":{"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/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:26:35-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/5e1db9b1002e45cbcde2f17253233b3cf50496ad","sha":"5e1db9b1002e45cbcde2f17253233b3cf50496ad"},"message":"Merge branch 'topic/MoveGithubObjects' into develop","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-14T15:26:35-07:00"}},"sha":"0909fec395bb1f97e2580d6a029cfc64b352aff9"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","sha":"0909fec395bb1f97e2580d6a029cfc64b352aff9"}],"committer":{"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/commits/d24cf209ddd1758188c5f35344f76df818d09a46","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:53:33-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/1737a3881dfa9524447b8841f441efa4d57b2e57","sha":"1737a3881dfa9524447b8841f441efa4d57b2e57"},"message":"Be explicit about argumentChecker object","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/d24cf209ddd1758188c5f35344f76df818d09a46","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:53:33-07:00"}},"sha":"d24cf209ddd1758188c5f35344f76df818d09a46"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/d24cf209ddd1758188c5f35344f76df818d09a46","sha":"d24cf209ddd1758188c5f35344f76df818d09a46"}],"committer":{"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/commits/a85de99ea5b5e7b38bd68e076d09c49207b8687e","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:54:19-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/45ab612f324d934efd24d37ec8a1a829ae9c819c","sha":"45ab612f324d934efd24d37ec8a1a829ae9c819c"},"message":"dos2unix","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a85de99ea5b5e7b38bd68e076d09c49207b8687e","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-15T23:54:19-07:00"}},"sha":"a85de99ea5b5e7b38bd68e076d09c49207b8687e"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a85de99ea5b5e7b38bd68e076d09c49207b8687e","sha":"a85de99ea5b5e7b38bd68e076d09c49207b8687e"}],"committer":{"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/commits/a475d685d8ae709095d09094ea0962ac182d33f0","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T00:11:07-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/929c7826e4116ccc48860420e96448c0b2dba912","sha":"929c7826e4116ccc48860420e96448c0b2dba912"},"message":"On the way to alternative inputs. Still needs unit and integration testing","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a475d685d8ae709095d09094ea0962ac182d33f0","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T00:11:07-07:00"}},"sha":"a475d685d8ae709095d09094ea0962ac182d33f0"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/a475d685d8ae709095d09094ea0962ac182d33f0","sha":"a475d685d8ae709095d09094ea0962ac182d33f0"}],"committer":{"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/commits/6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T23:42:54-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/a07df55d4e61292bfd4d344221a744bdeb837cef","sha":"a07df55d4e61292bfd4d344221a744bdeb837cef"},"message":"Optional parameter for Repository.create_git_tree","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-16T23:42:54-07:00"}},"sha":"6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297","sha":"6af2bfd0d46bc0eeb8c37b85c7b3003e0e4ae297"}],"committer":{"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/commits/1d2b27824d20612066d84be42d6691c66bb18ef4","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:32:34-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/eece2904086e172c103a3f6c72d72577947d69af","sha":"eece2904086e172c103a3f6c72d72577947d69af"},"message":"Repository.get_git_tree with 'recursive'","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1d2b27824d20612066d84be42d6691c66bb18ef4","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:32:34-07:00"}},"sha":"1d2b27824d20612066d84be42d6691c66bb18ef4"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1d2b27824d20612066d84be42d6691c66bb18ef4","sha":"1d2b27824d20612066d84be42d6691c66bb18ef4"}],"committer":{"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/commits/bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:40:52-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/e0cf809423855e97a1c418cd0574aceaea673e7c","sha":"e0cf809423855e97a1c418cd0574aceaea673e7c"},"message":"AuthenticatedUser.get_issues","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-18T23:40:52-07:00"}},"sha":"bd39726f7cf86ea7ffb33b5718241fdab5fc8f53"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/bd39726f7cf86ea7ffb33b5718241fdab5fc8f53","sha":"bd39726f7cf86ea7ffb33b5718241fdab5fc8f53"}],"committer":{"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/commits/1095d304b7fab3818dcb4c42093c8c56d3ac05e4","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:28:03-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/62acfc5826055bea7623e35982768674fb672bff","sha":"62acfc5826055bea7623e35982768674fb672bff"},"message":"Repository.compare","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/1095d304b7fab3818dcb4c42093c8c56d3ac05e4","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:28:03-07:00"}},"sha":"1095d304b7fab3818dcb4c42093c8c56d3ac05e4"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/0909fec395bb1f97e2580d6a029cfc64b352aff9","sha":"0909fec395bb1f97e2580d6a029cfc64b352aff9"},{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/1095d304b7fab3818dcb4c42093c8c56d3ac05e4","sha":"1095d304b7fab3818dcb4c42093c8c56d3ac05e4"}],"committer":{"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/commits/c1440bdf20bfeb62684c6d1779448719dce9d2df","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:36:28-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/62acfc5826055bea7623e35982768674fb672bff","sha":"62acfc5826055bea7623e35982768674fb672bff"},"message":"Merge branch 'topic/CompleteImplementation' into develop","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/c1440bdf20bfeb62684c6d1779448719dce9d2df","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:36:28-07:00"}},"sha":"c1440bdf20bfeb62684c6d1779448719dce9d2df"},{"author":{"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"},"parents":[{"url":"https://api.github.com/repos/jacquev6/PyGithub/commits/c1440bdf20bfeb62684c6d1779448719dce9d2df","sha":"c1440bdf20bfeb62684c6d1779448719dce9d2df"}],"committer":{"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/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","commit":{"author":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:45:20-07:00"},"tree":{"url":"https://api.github.com/repos/jacquev6/PyGithub/git/trees/df309b8e8b9359740688f6ecdec4e16a946eedac","sha":"df309b8e8b9359740688f6ecdec4e16a946eedac"},"message":"Fix documentation","url":"https://api.github.com/repos/jacquev6/PyGithub/git/commits/a0cc821c1beada4aa9ca0d5218664c5372720936","committer":{"email":"vincent@vincent-jacques.net","name":"Vincent Jacques","date":"2012-03-19T09:45:20-07:00"}},"sha":"a0cc821c1beada4aa9ca0d5218664c5372720936"}]}