Repository: PyGithub/PyGithub

Issue:
List pull requests based on commit
There's a functionality on the Github API that is apparently not supported on PyGithub -- https://developer.github.com/v3/repos/commits/#list-pull-requests-associated-with-commit

## Motivation

I'm doing an auto-versioning type of thing on my repo, and I need to walk through all the pull requests searching for labels. I can get all the commits since the last release using `<repo>.get_commits(since=date_from_last_release)`. It would be incredibly useful if those commits came with their associated pull requests - that way I could simply check for each label on those.

I couldn't find this functionality on the documentation or reading the code, and I couldn't find another decent way to do this on the current PyGithub implementation.

## Caveats

This feature seems to be in preview period and the API might change, so it's probably not worth doing this right now (if ever).


Discussion:
I can probably try to submit a pull request for this if there's interest. On my project I prefer not to rely on a preview API with a reasonable chance of having to re-do this.
I think it's probably fine, we currently support a fair amount of preview endpoints anyway. I look forward to reviewing your PR.

Resolving patch:
diff --git a/github/Commit.py b/github/Commit.py
--- a/github/Commit.py
+++ b/github/Commit.py
@@ -245,6 +245,19 @@ def get_combined_status(self):
             self._requester, headers, data, completed=True
         )
 
+    def get_pulls(self):
+        """
+        :calls: `GET /repos/:owner/:repo/commits/:sha/pulls <https://developer.github.com/v3/repos/commits/#list-pull-requests-associated-with-commit>`_
+        :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.PullRequest.PullRequest`
+        """
+        return github.PaginatedList.PaginatedList(
+            github.PullRequest.PullRequest,
+            self._requester,
+            self.url + "/pulls",
+            None,
+            headers={"Accept": "application/vnd.github.groot-preview+json"},
+        )
+
     @property
     def _identity(self):
         return self.sha


Test patch:
diff --git a/tests/Commit.py b/tests/Commit.py
--- a/tests/Commit.py
+++ b/tests/Commit.py
@@ -150,3 +150,11 @@ def testCreateStatusWithAllParameters(self):
             status.target_url, "https://github.com/jacquev6/PyGithub/issues/67"
         )
         self.assertEqual(status.description, "Status successfuly created by PyGithub")
+
+    def testGetPulls(self):
+        commit = (
+            self.g.get_user()
+            .get_repo("PyGithub")
+            .get_commit("e44d11d565c022496544dd6ed1f19a8d718c2b0c")
+        )
+        self.assertListKeyEqual(commit.get_pulls(), lambda c: c.number, [1431])
diff --git a/tests/ReplayData/Commit.testGetPulls.txt b/tests/ReplayData/Commit.testGetPulls.txt
new file mode 100644
--- /dev/null
+++ b/tests/ReplayData/Commit.testGetPulls.txt
@@ -0,0 +1,43 @@
+https
+GET
+api.github.com
+None
+/user
+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
+None
+200
+[('Date', 'Wed, 11 Mar 2020 18:31:11 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4872'), ('X-RateLimit-Reset', '1583954142'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"5ffa37053937aeabd08a1e9114bc44f9"'), ('Last-Modified', 'Wed, 04 Mar 2020 19:53:12 GMT'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E5F5:6EAF:40CC5:5C935:5E692E6F')]
+{"login":"mawkee","id":688598,"node_id":"MDQ6VXNlcjY4ODU5OA==","avatar_url":"https://avatars3.githubusercontent.com/u/688598?v=4","gravatar_id":"","url":"https://api.github.com/users/mawkee","html_url":"https://github.com/mawkee","followers_url":"https://api.github.com/users/mawkee/followers","following_url":"https://api.github.com/users/mawkee/following{/other_user}","gists_url":"https://api.github.com/users/mawkee/gists{/gist_id}","starred_url":"https://api.github.com/users/mawkee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mawkee/subscriptions","organizations_url":"https://api.github.com/users/mawkee/orgs","repos_url":"https://api.github.com/users/mawkee/repos","events_url":"https://api.github.com/users/mawkee/events{/privacy}","received_events_url":"https://api.github.com/users/mawkee/received_events","type":"User","site_admin":false,"name":"Danilo Martins","blog":"","hireable":null,"bio":null,"public_repos":24,"public_gists":5,"followers":35,"following":3,"created_at":"2011-03-24T16:07:26Z","updated_at":"2020-03-04T19:53:12Z"}
+
+https
+GET
+api.github.com
+None
+/repos/mawkee/PyGithub
+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
+None
+200
+[('Date', 'Wed, 11 Mar 2020 18:31:11 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4871'), ('X-RateLimit-Reset', '1583954142'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"2af14fe2e12d075cc59084e321c1f2b0"'), ('Last-Modified', 'Wed, 11 Mar 2020 18:21:09 GMT'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', 'repo'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E5F6:57D5:40129:5B5A2:5E692E6F')]
+{"id":246648268,"node_id":"MDEwOlJlcG9zaXRvcnkyNDY2NDgyNjg=","name":"PyGithub","full_name":"mawkee/PyGithub","private":false,"owner":{"login":"mawkee","id":688598,"node_id":"MDQ6VXNlcjY4ODU5OA==","avatar_url":"https://avatars3.githubusercontent.com/u/688598?v=4","gravatar_id":"","url":"https://api.github.com/users/mawkee","html_url":"https://github.com/mawkee","followers_url":"https://api.github.com/users/mawkee/followers","following_url":"https://api.github.com/users/mawkee/following{/other_user}","gists_url":"https://api.github.com/users/mawkee/gists{/gist_id}","starred_url":"https://api.github.com/users/mawkee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mawkee/subscriptions","organizations_url":"https://api.github.com/users/mawkee/orgs","repos_url":"https://api.github.com/users/mawkee/repos","events_url":"https://api.github.com/users/mawkee/events{/privacy}","received_events_url":"https://api.github.com/users/mawkee/received_events","type":"User","site_admin":false},"html_url":"https://github.com/mawkee/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/mawkee/PyGithub","forks_url":"https://api.github.com/repos/mawkee/PyGithub/forks","keys_url":"https://api.github.com/repos/mawkee/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/mawkee/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/mawkee/PyGithub/teams","hooks_url":"https://api.github.com/repos/mawkee/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/mawkee/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/mawkee/PyGithub/events","assignees_url":"https://api.github.com/repos/mawkee/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/mawkee/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/mawkee/PyGithub/tags","blobs_url":"https://api.github.com/repos/mawkee/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/mawkee/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/mawkee/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/mawkee/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/mawkee/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/mawkee/PyGithub/languages","stargazers_url":"https://api.github.com/repos/mawkee/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/mawkee/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/mawkee/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/mawkee/PyGithub/subscription","commits_url":"https://api.github.com/repos/mawkee/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/mawkee/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/mawkee/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/mawkee/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/mawkee/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/mawkee/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/mawkee/PyGithub/merges","archive_url":"https://api.github.com/repos/mawkee/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/mawkee/PyGithub/downloads","issues_url":"https://api.github.com/repos/mawkee/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/mawkee/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/mawkee/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/mawkee/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/mawkee/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/mawkee/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/mawkee/PyGithub/deployments","created_at":"2020-03-11T18:21:08Z","updated_at":"2020-03-11T18:21:09Z","pushed_at":"2020-03-11T01:40:27Z","git_url":"git://github.com/mawkee/PyGithub.git","ssh_url":"git@github.com:mawkee/PyGithub.git","clone_url":"https://github.com/mawkee/PyGithub.git","svn_url":"https://github.com/mawkee/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12540,"stargazers_count":0,"watchers_count":0,"language":null,"has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master","permissions":{"admin":true,"push":true,"pull":true},"temp_clone_token":"","allow_squash_merge":true,"allow_merge_commit":true,"allow_rebase_merge":true,"delete_branch_on_merge":false,"parent":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2020-03-11T14:41:36Z","pushed_at":"2020-03-11T01:40:27Z","git_url":"git://github.com/PyGithub/PyGithub.git","ssh_url":"git@github.com:PyGithub/PyGithub.git","clone_url":"https://github.com/PyGithub/PyGithub.git","svn_url":"https://github.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12540,"stargazers_count":3259,"watchers_count":3259,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1058,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":48,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"forks":1058,"open_issues":48,"watchers":3259,"default_branch":"master"},"source":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2020-03-11T14:41:36Z","pushed_at":"2020-03-11T01:40:27Z","git_url":"git://github.com/PyGithub/PyGithub.git","ssh_url":"git@github.com:PyGithub/PyGithub.git","clone_url":"https://github.com/PyGithub/PyGithub.git","svn_url":"https://github.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12540,"stargazers_count":3259,"watchers_count":3259,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1058,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":48,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"forks":1058,"open_issues":48,"watchers":3259,"default_branch":"master"},"network_count":1058,"subscribers_count":0}
+
+https
+GET
+api.github.com
+None
+/repos/mawkee/PyGithub/commits/e44d11d565c022496544dd6ed1f19a8d718c2b0c
+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
+None
+200
+[('Date', 'Wed, 11 Mar 2020 18:31:12 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4870'), ('X-RateLimit-Reset', '1583954142'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"5774e067fbbde9d666953e4441e4d4a8"'), ('Last-Modified', 'Wed, 11 Mar 2020 01:40:25 GMT'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E5F7:0C8B:4A60D:6AADF:5E692E6F')]
+{"sha":"e44d11d565c022496544dd6ed1f19a8d718c2b0c","node_id":"MDY6Q29tbWl0MjQ2NjQ4MjY4OmU0NGQxMWQ1NjVjMDIyNDk2NTQ0ZGQ2ZWQxZjE5YThkNzE4YzJiMGM=","commit":{"author":{"name":"Anuj Bansal","email":"bansalanuj1996@gmail.com","date":"2020-03-11T01:40:25Z"},"committer":{"name":"GitHub","email":"noreply@github.com","date":"2020-03-11T01:40:25Z"},"message":"Add list projects support, update tests (#1431)","tree":{"sha":"8a0046d3031e5e436484d28f62238d328626323b","url":"https://api.github.com/repos/mawkee/PyGithub/git/trees/8a0046d3031e5e436484d28f62238d328626323b"},"url":"https://api.github.com/repos/mawkee/PyGithub/git/commits/e44d11d565c022496544dd6ed1f19a8d718c2b0c","comment_count":0,"verification":{"verified":true,"reason":"valid","signature":"-----BEGIN PGP SIGNATURE-----\n\nwsBcBAABCAAQBQJeaEGJCRBK7hj4Ov3rIwAAdHIIAKRwMPF9NPpoGqyLFouFL9os\ntKiWxnS7xqLlAV0YH3DJJXB0SXthIIqqbkvzmBpWQsb8JCKJLmDnSdNXqSwKCFjp\n89ratR0H+BkffmTEAGKs2wtJT7+vYsdknbcwnwzS1z+E7ER6ntS4oeD22jzqGW3S\nM4j8qaiHDCIkeLKITpfl6ZcpEohFpS5JrOtpabRGTRhoGlQZydG2Z1Ia85KPc8WW\nZulxypX3hSuxsqPELqm1LfgkKBIY0Dm+HRZxiwzAk6FOCIrjOyNEnOXdNvKjiTEg\n0xAPYu5NFfgg5yHVGcVT6RPkRmG84+Ht0Mr5zcBsDwfueBQ4/blDLEegrwWUc4c=\n=RS+y\n-----END PGP SIGNATURE-----\n","payload":"tree 8a0046d3031e5e436484d28f62238d328626323b\nparent b1c35499f4a97e71faa142e376fbea9488362679\nauthor Anuj Bansal <bansalanuj1996@gmail.com> 1583890825 +0530\ncommitter GitHub <noreply@github.com> 1583890825 +1100\n\nAdd list projects support, update tests (#1431)\n\n"}},"url":"https://api.github.com/repos/mawkee/PyGithub/commits/e44d11d565c022496544dd6ed1f19a8d718c2b0c","html_url":"https://github.com/mawkee/PyGithub/commit/e44d11d565c022496544dd6ed1f19a8d718c2b0c","comments_url":"https://api.github.com/repos/mawkee/PyGithub/commits/e44d11d565c022496544dd6ed1f19a8d718c2b0c/comments","author":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"committer":{"login":"web-flow","id":19864447,"node_id":"MDQ6VXNlcjE5ODY0NDQ3","avatar_url":"https://avatars3.githubusercontent.com/u/19864447?v=4","gravatar_id":"","url":"https://api.github.com/users/web-flow","html_url":"https://github.com/web-flow","followers_url":"https://api.github.com/users/web-flow/followers","following_url":"https://api.github.com/users/web-flow/following{/other_user}","gists_url":"https://api.github.com/users/web-flow/gists{/gist_id}","starred_url":"https://api.github.com/users/web-flow/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/web-flow/subscriptions","organizations_url":"https://api.github.com/users/web-flow/orgs","repos_url":"https://api.github.com/users/web-flow/repos","events_url":"https://api.github.com/users/web-flow/events{/privacy}","received_events_url":"https://api.github.com/users/web-flow/received_events","type":"User","site_admin":false},"parents":[{"sha":"b1c35499f4a97e71faa142e376fbea9488362679","url":"https://api.github.com/repos/mawkee/PyGithub/commits/b1c35499f4a97e71faa142e376fbea9488362679","html_url":"https://github.com/mawkee/PyGithub/commit/b1c35499f4a97e71faa142e376fbea9488362679"}],"stats":{"total":76,"additions":76,"deletions":0},"files":[{"sha":"44d41b88ac6b7233967acf758ef56f676b9c21da","filename":"github/NamedUser.py","status":"modified","additions":18,"deletions":0,"changes":18,"blob_url":"https://github.com/mawkee/PyGithub/blob/e44d11d565c022496544dd6ed1f19a8d718c2b0c/github/NamedUser.py","raw_url":"https://github.com/mawkee/PyGithub/raw/e44d11d565c022496544dd6ed1f19a8d718c2b0c/github/NamedUser.py","contents_url":"https://api.github.com/repos/mawkee/PyGithub/contents/github/NamedUser.py?ref=e44d11d565c022496544dd6ed1f19a8d718c2b0c","patch":"@@ -49,6 +49,8 @@\n import github.Plan\n import github.Repository\n \n+from . import Consts\n+\n \n class NamedUser(github.GithubObject.CompletableGithubObject):\n     \"\"\"\n@@ -481,6 +483,22 @@ def get_orgs(self):\n             github.Organization.Organization, self._requester, self.url + \"/orgs\", None\n         )\n \n+    def get_projects(self, state=\"open\"):\n+        \"\"\"\n+        :calls: `GET /users/:user/projects <https://developer.github.com/v3/projects/#list-user-projects>`_\n+        :param state: string\n+        :rtype: :class:`github.PaginatedList.PaginatedList` of :class:`github.Project.Project`\n+        \"\"\"\n+        assert isinstance(state, str), state\n+        url_parameters = {\"state\": state}\n+        return github.PaginatedList.PaginatedList(\n+            github.Project.Project,\n+            self._requester,\n+            self.url + \"/projects\",\n+            url_parameters,\n+            headers={\"Accept\": Consts.mediaTypeProjectsPreview},\n+        )\n+\n     def get_public_events(self):\n         \"\"\"\n         :calls: `GET /users/:user/events/public <http://developer.github.com/v3/activity/events>`_"},{"sha":"33f8e833aaafdcefa45eadcc40f117fac2a7990d","filename":"tests/NamedUser1430.py","status":"added","additions":36,"deletions":0,"changes":36,"blob_url":"https://github.com/mawkee/PyGithub/blob/e44d11d565c022496544dd6ed1f19a8d718c2b0c/tests/NamedUser1430.py","raw_url":"https://github.com/mawkee/PyGithub/raw/e44d11d565c022496544dd6ed1f19a8d718c2b0c/tests/NamedUser1430.py","contents_url":"https://api.github.com/repos/mawkee/PyGithub/contents/tests/NamedUser1430.py?ref=e44d11d565c022496544dd6ed1f19a8d718c2b0c","patch":"@@ -0,0 +1,36 @@\n+# -*- coding: utf-8 -*-\n+\n+############################ Copyrights and license ############################\n+#                                                                              #\n+# Copyright 2020 Anuj Bansal <bansalanuj1996@gmail.com>                        #\n+#                                                                              #\n+# This file is part of PyGithub.                                               #\n+# http://pygithub.readthedocs.io/                                              #\n+#                                                                              #\n+# PyGithub is free software: you can redistribute it and/or modify it under    #\n+# the terms of the GNU Lesser General Public License as published by the Free  #\n+# Software Foundation, either version 3 of the License, or (at your option)    #\n+# any later version.                                                           #\n+#                                                                              #\n+# PyGithub is distributed in the hope that it will be useful, but WITHOUT ANY  #\n+# WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS    #\n+# FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public License for more #\n+# details.                                                                     #\n+#                                                                              #\n+# You should have received a copy of the GNU Lesser General Public License     #\n+# along with PyGithub. If not, see <http://www.gnu.org/licenses/>.             #\n+#                                                                              #\n+################################################################################\n+\n+from . import Framework\n+\n+\n+class NamedUser1430(Framework.TestCase):\n+    def setUp(self):\n+        super().setUp()\n+        self.user = self.g.get_user(\"ahhda\")\n+\n+    def testGetProjects(self):\n+        self.assertListKeyBegin(\n+            self.user.get_projects(state=\"all\"), lambda e: e.id, [4083095],\n+        )"},{"sha":"abf285c93baf2ac1c8caa028468e87d769debec3","filename":"tests/ReplayData/NamedUser1430.setUp.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/mawkee/PyGithub/blob/e44d11d565c022496544dd6ed1f19a8d718c2b0c/tests/ReplayData/NamedUser1430.setUp.txt","raw_url":"https://github.com/mawkee/PyGithub/raw/e44d11d565c022496544dd6ed1f19a8d718c2b0c/tests/ReplayData/NamedUser1430.setUp.txt","contents_url":"https://api.github.com/repos/mawkee/PyGithub/contents/tests/ReplayData/NamedUser1430.setUp.txt?ref=e44d11d565c022496544dd6ed1f19a8d718c2b0c","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+api.github.com\n+None\n+/users/ahhda\n+{'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n+None\n+200\n+[('Date', 'Mon, 09 Mar 2020 20:17:21 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4975'), ('X-RateLimit-Reset', '1583787082'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/\"df3f26811bc0b8e004078ee4dff56831\"'), ('Last-Modified', 'Mon, 09 Mar 2020 18:51:05 GMT'), ('X-GitHub-Media-Type', 'github.v3; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', \"default-src 'none'\"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CE65:5225:24E50A:307321:5E66A451')]\n+{\"login\":\"ahhda\",\"id\":7795956,\"node_id\":\"MDQ6VXNlcjc3OTU5NTY=\",\"avatar_url\":\"https://avatars2.githubusercontent.com/u/7795956?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/ahhda\",\"html_url\":\"https://github.com/ahhda\",\"followers_url\":\"https://api.github.com/users/ahhda/followers\",\"following_url\":\"https://api.github.com/users/ahhda/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/ahhda/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/ahhda/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/ahhda/subscriptions\",\"organizations_url\":\"https://api.github.com/users/ahhda/orgs\",\"repos_url\":\"https://api.github.com/users/ahhda/repos\",\"events_url\":\"https://api.github.com/users/ahhda/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/ahhda/received_events\",\"type\":\"User\",\"site_admin\":false,\"name\":\"Anuj Bansal\",\"company\":null,\"blog\":\"https://ahhda.github.io/\",\"location\":null,\"email\":\"bansalanuj1996@gmail.com\",\"hireable\":true,\"bio\":null,\"public_repos\":40,\"public_gists\":5,\"followers\":23,\"following\":58,\"created_at\":\"2014-06-04T15:57:45Z\",\"updated_at\":\"2020-03-09T18:51:05Z\",\"private_gists\":4,\"total_private_repos\":36,\"owned_private_repos\":31,\"disk_usage\":226412,\"collaborators\":10,\"two_factor_authentication\":false,\"plan\":{\"name\":\"pro\",\"space\":976562499,\"collaborators\":0,\"private_repos\":9999}}\n+"},{"sha":"124064632e4c370a8e486668cff33129d378115e","filename":"tests/ReplayData/NamedUser1430.testGetProjects.txt","status":"added","additions":11,"deletions":0,"changes":11,"blob_url":"https://github.com/mawkee/PyGithub/blob/e44d11d565c022496544dd6ed1f19a8d718c2b0c/tests/ReplayData/NamedUser1430.testGetProjects.txt","raw_url":"https://github.com/mawkee/PyGithub/raw/e44d11d565c022496544dd6ed1f19a8d718c2b0c/tests/ReplayData/NamedUser1430.testGetProjects.txt","contents_url":"https://api.github.com/repos/mawkee/PyGithub/contents/tests/ReplayData/NamedUser1430.testGetProjects.txt?ref=e44d11d565c022496544dd6ed1f19a8d718c2b0c","patch":"@@ -0,0 +1,11 @@\n+https\n+GET\n+api.github.com\n+None\n+/users/ahhda/projects?state=all\n+{'Accept': 'application/vnd.github.inertia-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}\n+None\n+200\n+[('Date', 'Mon, 09 Mar 2020 20:17:22 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4974'), ('X-RateLimit-Reset', '1583787083'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/\"14effeef315c8c569963ae39adc9619a\"'), ('X-GitHub-Media-Type', 'github.inertia-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', \"default-src 'none'\"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'CE66:638B:8DED89:B5F000:5E66A451')]\n+[{\"owner_url\":\"https://api.github.com/users/ahhda\",\"url\":\"https://api.github.com/projects/4083095\",\"html_url\":\"https://github.com/users/ahhda/projects/1\",\"columns_url\":\"https://api.github.com/projects/4083095/columns\",\"id\":4083095,\"node_id\":\"MDc6UHJvamVjdDQwODMwOTU=\",\"name\":\"My project 1\",\"body\":\"The body\",\"number\":1,\"state\":\"closed\",\"creator\":{\"login\":\"ahhda\",\"id\":7795956,\"node_id\":\"MDQ6VXNlcjc3OTU5NTY=\",\"avatar_url\":\"https://avatars2.githubusercontent.com/u/7795956?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/ahhda\",\"html_url\":\"https://github.com/ahhda\",\"followers_url\":\"https://api.github.com/users/ahhda/followers\",\"following_url\":\"https://api.github.com/users/ahhda/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/ahhda/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/ahhda/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/ahhda/subscriptions\",\"organizations_url\":\"https://api.github.com/users/ahhda/orgs\",\"repos_url\":\"https://api.github.com/users/ahhda/repos\",\"events_url\":\"https://api.github.com/users/ahhda/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/ahhda/received_events\",\"type\":\"User\",\"site_admin\":false},\"created_at\":\"2020-03-09T14:15:48Z\",\"updated_at\":\"2020-03-09T19:00:07Z\"},{\"owner_url\":\"https://api.github.com/users/ahhda\",\"url\":\"https://api.github.com/projects/4083137\",\"html_url\":\"https://github.com/users/ahhda/projects/2\",\"columns_url\":\"https://api.github.com/projects/4083137/columns\",\"id\":4083137,\"node_id\":\"MDc6UHJvamVjdDQwODMxMzc=\",\"name\":\"My project 12\",\"body\":\"The body\",\"number\":2,\"state\":\"closed\",\"creator\":{\"login\":\"ahhda\",\"id\":7795956,\"node_id\":\"MDQ6VXNlcjc3OTU5NTY=\",\"avatar_url\":\"https://avatars2.githubusercontent.com/u/7795956?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/ahhda\",\"html_url\":\"https://github.com/ahhda\",\"followers_url\":\"https://api.github.com/users/ahhda/followers\",\"following_url\":\"https://api.github.com/users/ahhda/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/ahhda/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/ahhda/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/ahhda/subscriptions\",\"organizations_url\":\"https://api.github.com/users/ahhda/orgs\",\"repos_url\":\"https://api.github.com/users/ahhda/repos\",\"events_url\":\"https://api.github.com/users/ahhda/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/ahhda/received_events\",\"type\":\"User\",\"site_admin\":false},\"created_at\":\"2020-03-09T14:20:51Z\",\"updated_at\":\"2020-03-09T19:00:04Z\"},{\"owner_url\":\"https://api.github.com/users/ahhda\",\"url\":\"https://api.github.com/projects/4084607\",\"html_url\":\"https://github.com/users/ahhda/projects/3\",\"columns_url\":\"https://api.github.com/projects/4084607/columns\",\"id\":4084607,\"node_id\":\"MDc6UHJvamVjdDQwODQ2MDc=\",\"name\":\"TestPyGithub\",\"body\":\"This is the body\",\"number\":3,\"state\":\"closed\",\"creator\":{\"login\":\"ahhda\",\"id\":7795956,\"node_id\":\"MDQ6VXNlcjc3OTU5NTY=\",\"avatar_url\":\"https://avatars2.githubusercontent.com/u/7795956?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/ahhda\",\"html_url\":\"https://github.com/ahhda\",\"followers_url\":\"https://api.github.com/users/ahhda/followers\",\"following_url\":\"https://api.github.com/users/ahhda/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/ahhda/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/ahhda/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/ahhda/subscriptions\",\"organizations_url\":\"https://api.github.com/users/ahhda/orgs\",\"repos_url\":\"https://api.github.com/users/ahhda/repos\",\"events_url\":\"https://api.github.com/users/ahhda/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/ahhda/received_events\",\"type\":\"User\",\"site_admin\":false},\"created_at\":\"2020-03-09T18:51:05Z\",\"updated_at\":\"2020-03-09T19:00:01Z\"},{\"owner_url\":\"https://api.github.com/users/ahhda\",\"url\":\"https://api.github.com/projects/4084610\",\"html_url\":\"https://github.com/users/ahhda/projects/4\",\"columns_url\":\"https://api.github.com/projects/4084610/columns\",\"id\":4084610,\"node_id\":\"MDc6UHJvamVjdDQwODQ2MTA=\",\"name\":\"TestPyGithub\",\"body\":\"This is the body\",\"number\":4,\"state\":\"closed\",\"creator\":{\"login\":\"ahhda\",\"id\":7795956,\"node_id\":\"MDQ6VXNlcjc3OTU5NTY=\",\"avatar_url\":\"https://avatars2.githubusercontent.com/u/7795956?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/ahhda\",\"html_url\":\"https://github.com/ahhda\",\"followers_url\":\"https://api.github.com/users/ahhda/followers\",\"following_url\":\"https://api.github.com/users/ahhda/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/ahhda/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/ahhda/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/ahhda/subscriptions\",\"organizations_url\":\"https://api.github.com/users/ahhda/orgs\",\"repos_url\":\"https://api.github.com/users/ahhda/repos\",\"events_url\":\"https://api.github.com/users/ahhda/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/ahhda/received_events\",\"type\":\"User\",\"site_admin\":false},\"created_at\":\"2020-03-09T18:51:19Z\",\"updated_at\":\"2020-03-09T18:59:57Z\"},{\"owner_url\":\"https://api.github.com/users/ahhda\",\"url\":\"https://api.github.com/projects/4084664\",\"html_url\":\"https://github.com/users/ahhda/projects/5\",\"columns_url\":\"https://api.github.com/projects/4084664/columns\",\"id\":4084664,\"node_id\":\"MDc6UHJvamVjdDQwODQ2NjQ=\",\"name\":\"My new project\",\"body\":\"This is the body\",\"number\":5,\"state\":\"open\",\"creator\":{\"login\":\"ahhda\",\"id\":7795956,\"node_id\":\"MDQ6VXNlcjc3OTU5NTY=\",\"avatar_url\":\"https://avatars2.githubusercontent.com/u/7795956?v=4\",\"gravatar_id\":\"\",\"url\":\"https://api.github.com/users/ahhda\",\"html_url\":\"https://github.com/ahhda\",\"followers_url\":\"https://api.github.com/users/ahhda/followers\",\"following_url\":\"https://api.github.com/users/ahhda/following{/other_user}\",\"gists_url\":\"https://api.github.com/users/ahhda/gists{/gist_id}\",\"starred_url\":\"https://api.github.com/users/ahhda/starred{/owner}{/repo}\",\"subscriptions_url\":\"https://api.github.com/users/ahhda/subscriptions\",\"organizations_url\":\"https://api.github.com/users/ahhda/orgs\",\"repos_url\":\"https://api.github.com/users/ahhda/repos\",\"events_url\":\"https://api.github.com/users/ahhda/events{/privacy}\",\"received_events_url\":\"https://api.github.com/users/ahhda/received_events\",\"type\":\"User\",\"site_admin\":false},\"created_at\":\"2020-03-09T19:00:36Z\",\"updated_at\":\"2020-03-09T19:00:36Z\"}]\n+"}]}
+
+https
+GET
+api.github.com
+None
+/repos/mawkee/PyGithub/commits/e44d11d565c022496544dd6ed1f19a8d718c2b0c/pulls
+{'Accept': 'application/vnd.github.groot-preview+json', 'Authorization': 'Basic login_and_password_removed', 'User-Agent': 'PyGithub/Python'}
+None
+200
+[('Date', 'Wed, 11 Mar 2020 18:31:12 GMT'), ('Content-Type', 'application/json; charset=utf-8'), ('Transfer-Encoding', 'chunked'), ('Server', 'GitHub.com'), ('Status', '200 OK'), ('X-RateLimit-Limit', '5000'), ('X-RateLimit-Remaining', '4869'), ('X-RateLimit-Reset', '1583954142'), ('Cache-Control', 'private, max-age=60, s-maxage=60'), ('Vary', 'Accept, Authorization, Cookie, X-GitHub-OTP, Accept-Encoding, Accept, X-Requested-With'), ('ETag', 'W/"161af680a1b955e594d6b87eaa77a1c5"'), ('X-OAuth-Scopes', 'repo'), ('X-Accepted-OAuth-Scopes', ''), ('X-GitHub-Media-Type', 'github.groot-preview; format=json'), ('Access-Control-Expose-Headers', 'ETag, Link, Location, Retry-After, X-GitHub-OTP, X-RateLimit-Limit, X-RateLimit-Remaining, X-RateLimit-Reset, X-OAuth-Scopes, X-Accepted-OAuth-Scopes, X-Poll-Interval, X-GitHub-Media-Type, Deprecation, Sunset'), ('Access-Control-Allow-Origin', '*'), ('Strict-Transport-Security', 'max-age=31536000; includeSubdomains; preload'), ('X-Frame-Options', 'deny'), ('X-Content-Type-Options', 'nosniff'), ('X-XSS-Protection', '1; mode=block'), ('Referrer-Policy', 'origin-when-cross-origin, strict-origin-when-cross-origin'), ('Content-Security-Policy', "default-src 'none'"), ('Content-Encoding', 'gzip'), ('X-GitHub-Request-Id', 'E5F8:57D5:4013D:5B5C0:5E692E70')]
+[{"url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1431","id":385799287,"node_id":"MDExOlB1bGxSZXF1ZXN0Mzg1Nzk5Mjg3","html_url":"https://github.com/PyGithub/PyGithub/pull/1431","diff_url":"https://github.com/PyGithub/PyGithub/pull/1431.diff","patch_url":"https://github.com/PyGithub/PyGithub/pull/1431.patch","issue_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/1431","number":1431,"state":"closed","locked":false,"title":"Add support for list user projects","user":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"body":"Implements list user project part of https://github.com/PyGithub/PyGithub/issues/606#issuecomment-595864374\r\n\r\n### Manual testing:\r\n![Screenshot 2020-03-10 at 1 52 53 AM](https://user-images.githubusercontent.com/7795956/76254103-e1f55680-6271-11ea-9f08-6bb1964c4fa3.png)\r\n","created_at":"2020-03-09T20:23:21Z","updated_at":"2020-03-11T01:40:27Z","closed_at":"2020-03-11T01:40:26Z","merged_at":"2020-03-11T01:40:26Z","merge_commit_sha":"e44d11d565c022496544dd6ed1f19a8d718c2b0c","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"draft":false,"commits_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1431/commits","review_comments_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1431/comments","review_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/1431/comments","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/21a6dfef170b2bdcf33dda731ad3a3e9681cffbe","head":{"label":"ahhda:list_user_projects","ref":"list_user_projects","sha":"21a6dfef170b2bdcf33dda731ad3a3e9681cffbe","user":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"repo":{"id":245464332,"node_id":"MDEwOlJlcG9zaXRvcnkyNDU0NjQzMzI=","name":"PyGithub","full_name":"ahhda/PyGithub","private":false,"owner":{"login":"ahhda","id":7795956,"node_id":"MDQ6VXNlcjc3OTU5NTY=","avatar_url":"https://avatars2.githubusercontent.com/u/7795956?v=4","gravatar_id":"","url":"https://api.github.com/users/ahhda","html_url":"https://github.com/ahhda","followers_url":"https://api.github.com/users/ahhda/followers","following_url":"https://api.github.com/users/ahhda/following{/other_user}","gists_url":"https://api.github.com/users/ahhda/gists{/gist_id}","starred_url":"https://api.github.com/users/ahhda/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ahhda/subscriptions","organizations_url":"https://api.github.com/users/ahhda/orgs","repos_url":"https://api.github.com/users/ahhda/repos","events_url":"https://api.github.com/users/ahhda/events{/privacy}","received_events_url":"https://api.github.com/users/ahhda/received_events","type":"User","site_admin":false},"html_url":"https://github.com/ahhda/PyGithub","description":"Typed interactions with the GitHub API v3","fork":true,"url":"https://api.github.com/repos/ahhda/PyGithub","forks_url":"https://api.github.com/repos/ahhda/PyGithub/forks","keys_url":"https://api.github.com/repos/ahhda/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ahhda/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ahhda/PyGithub/teams","hooks_url":"https://api.github.com/repos/ahhda/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/ahhda/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/ahhda/PyGithub/events","assignees_url":"https://api.github.com/repos/ahhda/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/ahhda/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/ahhda/PyGithub/tags","blobs_url":"https://api.github.com/repos/ahhda/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ahhda/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ahhda/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/ahhda/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ahhda/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/ahhda/PyGithub/languages","stargazers_url":"https://api.github.com/repos/ahhda/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/ahhda/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/ahhda/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/ahhda/PyGithub/subscription","commits_url":"https://api.github.com/repos/ahhda/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/ahhda/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/ahhda/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/ahhda/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/ahhda/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/ahhda/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ahhda/PyGithub/merges","archive_url":"https://api.github.com/repos/ahhda/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ahhda/PyGithub/downloads","issues_url":"https://api.github.com/repos/ahhda/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/ahhda/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/ahhda/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/ahhda/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ahhda/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/ahhda/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/ahhda/PyGithub/deployments","created_at":"2020-03-06T16:12:46Z","updated_at":"2020-03-09T10:31:46Z","pushed_at":"2020-03-10T14:55:35Z","git_url":"git://github.com/ahhda/PyGithub.git","ssh_url":"git@github.com:ahhda/PyGithub.git","clone_url":"https://github.com/ahhda/PyGithub.git","svn_url":"https://github.com/ahhda/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12540,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":0,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"PyGithub:master","ref":"master","sha":"b1c35499f4a97e71faa142e376fbea9488362679","user":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"repo":{"id":3544490,"node_id":"MDEwOlJlcG9zaXRvcnkzNTQ0NDkw","name":"PyGithub","full_name":"PyGithub/PyGithub","private":false,"owner":{"login":"PyGithub","id":11288996,"node_id":"MDEyOk9yZ2FuaXphdGlvbjExMjg4OTk2","avatar_url":"https://avatars0.githubusercontent.com/u/11288996?v=4","gravatar_id":"","url":"https://api.github.com/users/PyGithub","html_url":"https://github.com/PyGithub","followers_url":"https://api.github.com/users/PyGithub/followers","following_url":"https://api.github.com/users/PyGithub/following{/other_user}","gists_url":"https://api.github.com/users/PyGithub/gists{/gist_id}","starred_url":"https://api.github.com/users/PyGithub/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/PyGithub/subscriptions","organizations_url":"https://api.github.com/users/PyGithub/orgs","repos_url":"https://api.github.com/users/PyGithub/repos","events_url":"https://api.github.com/users/PyGithub/events{/privacy}","received_events_url":"https://api.github.com/users/PyGithub/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/PyGithub/PyGithub","description":"Typed interactions with the GitHub API v3","fork":false,"url":"https://api.github.com/repos/PyGithub/PyGithub","forks_url":"https://api.github.com/repos/PyGithub/PyGithub/forks","keys_url":"https://api.github.com/repos/PyGithub/PyGithub/keys{/key_id}","collaborators_url":"https://api.github.com/repos/PyGithub/PyGithub/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/PyGithub/PyGithub/teams","hooks_url":"https://api.github.com/repos/PyGithub/PyGithub/hooks","issue_events_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/events{/number}","events_url":"https://api.github.com/repos/PyGithub/PyGithub/events","assignees_url":"https://api.github.com/repos/PyGithub/PyGithub/assignees{/user}","branches_url":"https://api.github.com/repos/PyGithub/PyGithub/branches{/branch}","tags_url":"https://api.github.com/repos/PyGithub/PyGithub/tags","blobs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/PyGithub/PyGithub/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/PyGithub/PyGithub/git/refs{/sha}","trees_url":"https://api.github.com/repos/PyGithub/PyGithub/git/trees{/sha}","statuses_url":"https://api.github.com/repos/PyGithub/PyGithub/statuses/{sha}","languages_url":"https://api.github.com/repos/PyGithub/PyGithub/languages","stargazers_url":"https://api.github.com/repos/PyGithub/PyGithub/stargazers","contributors_url":"https://api.github.com/repos/PyGithub/PyGithub/contributors","subscribers_url":"https://api.github.com/repos/PyGithub/PyGithub/subscribers","subscription_url":"https://api.github.com/repos/PyGithub/PyGithub/subscription","commits_url":"https://api.github.com/repos/PyGithub/PyGithub/commits{/sha}","git_commits_url":"https://api.github.com/repos/PyGithub/PyGithub/git/commits{/sha}","comments_url":"https://api.github.com/repos/PyGithub/PyGithub/comments{/number}","issue_comment_url":"https://api.github.com/repos/PyGithub/PyGithub/issues/comments{/number}","contents_url":"https://api.github.com/repos/PyGithub/PyGithub/contents/{+path}","compare_url":"https://api.github.com/repos/PyGithub/PyGithub/compare/{base}...{head}","merges_url":"https://api.github.com/repos/PyGithub/PyGithub/merges","archive_url":"https://api.github.com/repos/PyGithub/PyGithub/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/PyGithub/PyGithub/downloads","issues_url":"https://api.github.com/repos/PyGithub/PyGithub/issues{/number}","pulls_url":"https://api.github.com/repos/PyGithub/PyGithub/pulls{/number}","milestones_url":"https://api.github.com/repos/PyGithub/PyGithub/milestones{/number}","notifications_url":"https://api.github.com/repos/PyGithub/PyGithub/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/PyGithub/PyGithub/labels{/name}","releases_url":"https://api.github.com/repos/PyGithub/PyGithub/releases{/id}","deployments_url":"https://api.github.com/repos/PyGithub/PyGithub/deployments","created_at":"2012-02-25T12:53:47Z","updated_at":"2020-03-11T14:41:36Z","pushed_at":"2020-03-11T01:40:27Z","git_url":"git://github.com/PyGithub/PyGithub.git","ssh_url":"git@github.com:PyGithub/PyGithub.git","clone_url":"https://github.com/PyGithub/PyGithub.git","svn_url":"https://github.com/PyGithub/PyGithub","homepage":"https://pygithub.readthedocs.io/","size":12540,"stargazers_count":3259,"watchers_count":3259,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":1058,"mirror_url":null,"archived":false,"disabled":false,"open_issues_count":48,"license":{"key":"lgpl-3.0","name":"GNU Lesser General Public License v3.0","spdx_id":"LGPL-3.0","url":"https://api.github.com/licenses/lgpl-3.0","node_id":"MDc6TGljZW5zZTEy"},"forks":1058,"open_issues":48,"watchers":3259,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1431"},"html":{"href":"https://github.com/PyGithub/PyGithub/pull/1431"},"issue":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/1431"},"comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/issues/1431/comments"},"review_comments":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1431/comments"},"review_comment":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/PyGithub/PyGithub/pulls/1431/commits"},"statuses":{"href":"https://api.github.com/repos/PyGithub/PyGithub/statuses/21a6dfef170b2bdcf33dda731ad3a3e9681cffbe"}},"author_association":"CONTRIBUTOR"}]