# we keep this as a raw string as order matters for hmac signing PUSH_EVENT_EXAMPLE_INSTALLATION = r"""{ "ref": "refs/heads/changes", "installation" : { "id": 12345 }, "before": "9049f1265b7d61be4a8904a9a27120d2064dab3b", "after": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "created": false, "deleted": false, "forced": false, "base_ref": null, "compare": "https://github.com/baxterthehacker/public-repo/compare/9049f1265b7d...0d1a26e67d8f", "commits": [ { "id": "133d60480286590a610a0eb7352ff6e02b9674c4", "tree_id": "f9d2a07e9488b91af2641b26b9407fe22a451433", "distinct": true, "message": "Update hello.py", "timestamp": "2015-05-05T19:45:15-04:00", "url": "https://github.com/baxterthehacker/public-repo/commit/133d60480286590a610a0eb7352ff6e02b9674c4", "author": { "name": "bàxterthehacker", "email": "baxterthehacker@users.noreply.github.com", "username": "baxterthehacker" }, "committer": { "name": "baxterthehacker", "email": "baxterthehacker@users.noreply.github.com", "username": "baxterthehacker" }, "added": [ ], "removed": [ ], "modified": [ "hello.py" ] }, { "id": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "tree_id": "f9d2a07e9488b91af2641b26b9407fe22a451433", "distinct": true, "message": "Update README.md", "timestamp": "2015-05-05T19:40:15-04:00", "url": "https://github.com/baxterthehacker/public-repo/commit/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "author": { "name": "bàxterthehacker", "email": "baxterthehacker@users.noreply.github.com", "username": "baxterthehacker" }, "committer": { "name": "baxterthehacker", "email": "baxterthehacker@users.noreply.github.com", "username": "baxterthehacker" }, "added": [ ], "removed": [ ], "modified": [ "README.md" ] }, { "id": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "tree_id": "f9d2a07e9488b91af2641b26b9407fe22a451433", "distinct": true, "message": "fix widget #skipsentry", "timestamp": "2015-05-05T19:40:15-04:00", "url": "https://github.com/baxterthehacker/public-repo/commit/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "author": { "name": "bàxterthehacker", "email": "baxterthehacker@users.noreply.github.com", "username": "baxterthehacker" }, "committer": { "name": "baxterthehacker", "email": "baxterthehacker@users.noreply.github.com", "username": "baxterthehacker" }, "added": [ ], "removed": [ ], "modified": [ "README.md" ] } ], "head_commit": { "id": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "tree_id": "f9d2a07e9488b91af2641b26b9407fe22a451433", "distinct": true, "message": "Update hello.py", "timestamp": "2015-05-05T19:40:15-04:00", "url": "https://github.com/baxterthehacker/public-repo/commit/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "author": { "name": "baxterthehacker", "email": "baxterthehacker@users.noreply.github.com", "username": "baxterthehacker" }, "committer": { "name": "baxterthehacker", "email": "baxterthehacker@users.noreply.github.com", "username": "baxterthehacker" }, "added": [ ], "removed": [ ], "modified": [ "hello.py" ] }, "repository": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "name": "baxterthehacker", "email": "baxterthehacker@users.noreply.github.com" }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://github.com/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": 1430869212, "updated_at": "2015-05-05T23:40:12Z", "pushed_at": 1430869217, "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 0, "forks": 0, "open_issues": 0, "watchers": 0, "default_branch": "master", "stargazers": 0, "master_branch": "master" }, "pusher": { "name": "baxterthehacker", "email": "baxterthehacker@users.noreply.github.com" }, "sender": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false } }""" LATER_COMMIT_SHA = "6dcb09b5b57875f334f61aebed695e2e4193db5e" EARLIER_COMMIT_SHA = "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39" # Example taken from github documentation https://docs.github.com/en/rest/commits/commits#compare-two-commits COMPARE_COMMITS_EXAMPLE = """{ "url": "https://api.github.com/repos/octocat/Hello-World/compare/master...topic", "html_url": "https://github.com/octocat/Hello-World/compare/master...topic", "permalink_url": "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17", "diff_url": "https://github.com/octocat/Hello-World/compare/master...topic.diff", "patch_url": "https://github.com/octocat/Hello-World/compare/master...topic.patch", "base_commit": { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 6dcb09b5b57875f334f61aebed695e2e4193db5e..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } ] }, "merge_base_commit": { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 6dcb09b5b57875f334f61aebed695e2e4193db5e..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } ] }, "status": "behind", "ahead_by": 1, "behind_by": 2, "total_commits": 1, "commits": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 6dcb09b5b57875f334f61aebed695e2e4193db5e..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } ] } ], "files": [ { "sha": "bbcd538c8e72b8c175046e27cc8f907076331401", "filename": "file1.txt", "status": "added", "additions": 103, "deletions": 21, "changes": 124, "blob_url": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", "raw_url": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e", "patch": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" } ] }""" # Example taken from github example https://docs.github.com/en/rest/commits/commits#list-commits GET_LAST_COMMITS_EXAMPLE = """[ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 6dcb09b5b57875f334f61aebed695e2e4193db5e..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } ] } ]""" INSTALLATION_EVENT_EXAMPLE = """{ "action": "created", "installation": { "id": 2, "account": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "access_tokens_url": "https://api.github.com/installations/2/access_tokens", "repositories_url": "https://api.github.com/installation/repositories" }, "sender": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false } }""" INSTALLATION_REPO_EVENT = """{ "action": "added", "installation": { "id": 2, "account": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "access_tokens_url": "https://api.github.com/installations/2/access_tokens", "repositories_url": "https://api.github.com/installation/repositories", "html_url": "https://github.com/settings/installations/2" }, "repository_selection": "selected", "repositories_added": [ { "id": 1296269, "name": "Hello-World", "full_name": "octocat/Hello-World" } ], "repositories_removed": [ ], "sender": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false } }""" INTSTALLATION_REPOSITORIES_API_RESPONSE = """{ "total_count": 1, "repositories": [ { "id": 1296269, "owner": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "name": "Hello-World", "full_name": "octocat/Hello-World", "description": "This your first repo!", "private": false, "fork": false, "url": "https://api.github.com/repos/octocat/Hello-World", "html_url": "https://github.com/octocat/Hello-World", "archive_url": "http://api.github.com/repos/octocat/Hello-World/{archive_format}{/ref}", "assignees_url": "http://api.github.com/repos/octocat/Hello-World/assignees{/user}", "blobs_url": "http://api.github.com/repos/octocat/Hello-World/git/blobs{/sha}", "branches_url": "http://api.github.com/repos/octocat/Hello-World/branches{/branch}", "clone_url": "https://github.com/octocat/Hello-World.git", "collaborators_url": "http://api.github.com/repos/octocat/Hello-World/collaborators{/collaborator}", "comments_url": "http://api.github.com/repos/octocat/Hello-World/comments{/number}", "commits_url": "http://api.github.com/repos/octocat/Hello-World/commits{/sha}", "compare_url": "http://api.github.com/repos/octocat/Hello-World/compare/{base}...{head}", "contents_url": "http://api.github.com/repos/octocat/Hello-World/contents/{+path}", "contributors_url": "http://api.github.com/repos/octocat/Hello-World/contributors", "deployments_url": "http://api.github.com/repos/octocat/Hello-World/deployments", "downloads_url": "http://api.github.com/repos/octocat/Hello-World/downloads", "events_url": "http://api.github.com/repos/octocat/Hello-World/events", "forks_url": "http://api.github.com/repos/octocat/Hello-World/forks", "git_commits_url": "http://api.github.com/repos/octocat/Hello-World/git/commits{/sha}", "git_refs_url": "http://api.github.com/repos/octocat/Hello-World/git/refs{/sha}", "git_tags_url": "http://api.github.com/repos/octocat/Hello-World/git/tags{/sha}", "git_url": "git:github.com/octocat/Hello-World.git", "hooks_url": "http://api.github.com/repos/octocat/Hello-World/hooks", "issue_comment_url": "http://api.github.com/repos/octocat/Hello-World/issues/comments{/number}", "issue_events_url": "http://api.github.com/repos/octocat/Hello-World/issues/events{/number}", "issues_url": "http://api.github.com/repos/octocat/Hello-World/issues{/number}", "keys_url": "http://api.github.com/repos/octocat/Hello-World/keys{/key_id}", "labels_url": "http://api.github.com/repos/octocat/Hello-World/labels{/name}", "languages_url": "http://api.github.com/repos/octocat/Hello-World/languages", "merges_url": "http://api.github.com/repos/octocat/Hello-World/merges", "milestones_url": "http://api.github.com/repos/octocat/Hello-World/milestones{/number}", "mirror_url": "git:git.example.com/octocat/Hello-World", "notifications_url": "http://api.github.com/repos/octocat/Hello-World/notifications{?since, all, participating}", "pulls_url": "http://api.github.com/repos/octocat/Hello-World/pulls{/number}", "releases_url": "http://api.github.com/repos/octocat/Hello-World/releases{/id}", "ssh_url": "git@github.com:octocat/Hello-World.git", "stargazers_url": "http://api.github.com/repos/octocat/Hello-World/stargazers", "statuses_url": "http://api.github.com/repos/octocat/Hello-World/statuses/{sha}", "subscribers_url": "http://api.github.com/repos/octocat/Hello-World/subscribers", "subscription_url": "http://api.github.com/repos/octocat/Hello-World/subscription", "svn_url": "https://svn.github.com/octocat/Hello-World", "tags_url": "http://api.github.com/repos/octocat/Hello-World/tags", "teams_url": "http://api.github.com/repos/octocat/Hello-World/teams", "trees_url": "http://api.github.com/repos/octocat/Hello-World/git/trees{/sha}", "homepage": "https://github.com", "language": null, "forks_count": 9, "stargazers_count": 80, "watchers_count": 80, "size": 108, "default_branch": "master", "open_issues_count": 0, "topics": [ "octocat", "atom", "electron", "API" ], "has_issues": true, "has_wiki": true, "has_pages": false, "has_downloads": true, "pushed_at": "2011-01-26T19:06:43Z", "created_at": "2011-01-26T19:01:12Z", "updated_at": "2011-01-26T19:14:43Z", "allow_rebase_merge": true, "allow_squash_merge": true, "allow_merge_commit": true, "subscribers_count": 42, "network_count": 0 } ] }""" LIST_INSTALLATION_API_RESPONSE = """{ "total_count": 2, "installations": [ { "id": 1, "account": { "login": "github", "id": 1, "url": "https://api.github.com/orgs/github", "repos_url": "https://api.github.com/orgs/github/repos", "events_url": "https://api.github.com/orgs/github/events", "hooks_url": "https://api.github.com/orgs/github/hooks", "issues_url": "https://api.github.com/orgs/github/issues", "members_url": "https://api.github.com/orgs/github/members{/member}", "public_members_url": "https://api.github.com/orgs/github/public_members{/member}", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "description": "A great organization" }, "access_tokens_url": "https://api.github.com/installations/1/access_tokens", "repositories_url": "https://api.github.com/installation/repositories", "html_url": "https://github.com/organizations/github/settings/installations/1", "app_id": 1, "target_id": 1, "target_type": "Organization", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ], "single_file_name": "config.yml" }, { "id": 3, "account": { "login": "octocat", "id": 2, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "access_tokens_url": "https://api.github.com/installations/1/access_tokens", "repositories_url": "https://api.github.com/installation/repositories", "html_url": "https://github.com/organizations/github/settings/installations/1", "app_id": 1, "target_id": 1, "target_type": "Organization", "permissions": { "metadata": "read", "contents": "read", "issues": "write", "single_file": "write" }, "events": [ "push", "pull_request" ], "single_file_name": "config.yml" } ] }""" PULL_REQUEST_OPENED_EVENT_EXAMPLE = b"""{ "installation" : { "id": 12345 }, "action": "opened", "number": 1, "pull_request": { "url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1", "id": 34778301, "html_url": "https://github.com/baxterthehacker/public-repo/pull/1", "diff_url": "https://github.com/baxterthehacker/public-repo/pull/1.diff", "patch_url": "https://github.com/baxterthehacker/public-repo/pull/1.patch", "issue_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1", "number": 1, "state": "open", "locked": false, "title": "Update the README with new information", "user": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "body": "This is a pretty simple change that we need to pull into master. Fixes BAR-7", "created_at": "2015-05-05T23:40:27Z", "updated_at": "2015-05-05T23:40:27Z", "closed_at": null, "merged_at": null, "merge_commit_sha": null, "assignee": null, "milestone": null, "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits", "review_comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments", "review_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "head": { "label": "baxterthehacker:changes", "ref": "changes", "sha": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "user": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "repo": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://api.github.com/repos/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": "2015-05-05T23:40:12Z", "updated_at": "2015-05-05T23:40:12Z", "pushed_at": "2015-05-05T23:40:26Z", "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 1, "forks": 0, "open_issues": 1, "watchers": 0, "default_branch": "master" } }, "base": { "label": "baxterthehacker:master", "ref": "master", "sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b", "user": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "repo": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://api.github.com/repos/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": "2015-05-05T23:40:12Z", "updated_at": "2015-05-05T23:40:12Z", "pushed_at": "2015-05-05T23:40:26Z", "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 1, "forks": 0, "open_issues": 1, "watchers": 0, "default_branch": "master" } }, "_links": { "self": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1" }, "html": { "href": "https://github.com/baxterthehacker/public-repo/pull/1" }, "issue": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1" }, "comments": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments" }, "review_comments": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments" }, "review_comment": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}" }, "commits": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits" }, "statuses": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c" } }, "merged": false, "mergeable": null, "mergeable_state": "unknown", "merged_by": null, "comments": 0, "review_comments": 0, "commits": 1, "additions": 1, "deletions": 1, "changed_files": 1 }, "repository": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://api.github.com/repos/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": "2015-05-05T23:40:12Z", "updated_at": "2015-05-05T23:40:12Z", "pushed_at": "2015-05-05T23:40:26Z", "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 1, "forks": 0, "open_issues": 1, "watchers": 0, "default_branch": "master" }, "sender": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false } }""" PULL_REQUEST_EDITED_EVENT_EXAMPLE = b"""{ "installation" : { "id": 12345 }, "action": "edited", "number": 1, "pull_request": { "url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1", "id": 34778301, "html_url": "https://github.com/baxterthehacker/public-repo/pull/1", "diff_url": "https://github.com/baxterthehacker/public-repo/pull/1.diff", "patch_url": "https://github.com/baxterthehacker/public-repo/pull/1.patch", "issue_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1", "number": 1, "state": "open", "locked": false, "title": "new edited title", "user": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "body": "new edited body. Fixes BAR-7", "created_at": "2015-05-05T23:40:27Z", "updated_at": "2015-05-05T23:40:27Z", "closed_at": null, "merged_at": null, "merge_commit_sha": null, "assignee": null, "milestone": null, "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits", "review_comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments", "review_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "head": { "label": "baxterthehacker:changes", "ref": "changes", "sha": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "user": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "repo": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://api.github.com/repos/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": "2015-05-05T23:40:12Z", "updated_at": "2015-05-05T23:40:12Z", "pushed_at": "2015-05-05T23:40:26Z", "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 1, "forks": 0, "open_issues": 1, "watchers": 0, "default_branch": "master" } }, "base": { "label": "baxterthehacker:master", "ref": "master", "sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b", "user": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "repo": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://api.github.com/repos/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": "2015-05-05T23:40:12Z", "updated_at": "2015-05-05T23:40:12Z", "pushed_at": "2015-05-05T23:40:26Z", "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 1, "forks": 0, "open_issues": 1, "watchers": 0, "default_branch": "master" } }, "_links": { "self": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1" }, "html": { "href": "https://github.com/baxterthehacker/public-repo/pull/1" }, "issue": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1" }, "comments": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments" }, "review_comments": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments" }, "review_comment": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}" }, "commits": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits" }, "statuses": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c" } }, "merged": false, "mergeable": null, "mergeable_state": "unknown", "merged_by": null, "comments": 0, "review_comments": 0, "commits": 1, "additions": 1, "deletions": 1, "changed_files": 1 }, "repository": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://api.github.com/repos/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": "2015-05-05T23:40:12Z", "updated_at": "2015-05-05T23:40:12Z", "pushed_at": "2015-05-05T23:40:26Z", "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 1, "forks": 0, "open_issues": 1, "watchers": 0, "default_branch": "master" }, "sender": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false } }""" PULL_REQUEST_CLOSED_EVENT_EXAMPLE = b"""{ "installation" : { "id": 12345 }, "action": "closed", "number": 1, "pull_request": { "url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1", "id": 34778301, "html_url": "https://github.com/baxterthehacker/public-repo/pull/1", "diff_url": "https://github.com/baxterthehacker/public-repo/pull/1.diff", "patch_url": "https://github.com/baxterthehacker/public-repo/pull/1.patch", "issue_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1", "number": 1, "state": "open", "locked": false, "title": "new closed title", "user": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "body": "new closed body", "created_at": "2015-05-05T23:40:27Z", "updated_at": "2015-05-05T23:40:27Z", "closed_at": "2015-05-05T23:40:27Z", "merged_at": "2015-05-05T23:40:27Z", "merge_commit_sha": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "assignee": null, "milestone": null, "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits", "review_comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments", "review_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "head": { "label": "baxterthehacker:changes", "ref": "changes", "sha": "0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c", "user": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "repo": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://api.github.com/repos/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": "2015-05-05T23:40:12Z", "updated_at": "2015-05-05T23:40:12Z", "pushed_at": "2015-05-05T23:40:26Z", "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 1, "forks": 0, "open_issues": 1, "watchers": 0, "default_branch": "master" } }, "base": { "label": "baxterthehacker:master", "ref": "master", "sha": "9049f1265b7d61be4a8904a9a27120d2064dab3b", "user": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "repo": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://api.github.com/repos/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": "2015-05-05T23:40:12Z", "updated_at": "2015-05-05T23:40:12Z", "pushed_at": "2015-05-05T23:40:26Z", "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 1, "forks": 0, "open_issues": 1, "watchers": 0, "default_branch": "master" } }, "_links": { "self": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1" }, "html": { "href": "https://github.com/baxterthehacker/public-repo/pull/1" }, "issue": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1" }, "comments": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/issues/1/comments" }, "review_comments": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/comments" }, "review_comment": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/comments{/number}" }, "commits": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/pulls/1/commits" }, "statuses": { "href": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/0d1a26e67d8f5eaf1f6ba5c57fc3c7d91ac0fd1c" } }, "merged": true, "mergeable": null, "mergeable_state": "unknown", "merged_by": null, "comments": 0, "review_comments": 0, "commits": 1, "additions": 1, "deletions": 1, "changed_files": 1 }, "repository": { "id": 35129377, "name": "public-repo", "full_name": "baxterthehacker/public-repo", "owner": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false }, "private": false, "html_url": "https://github.com/baxterthehacker/public-repo", "description": "", "fork": false, "url": "https://api.github.com/repos/baxterthehacker/public-repo", "forks_url": "https://api.github.com/repos/baxterthehacker/public-repo/forks", "keys_url": "https://api.github.com/repos/baxterthehacker/public-repo/keys{/key_id}", "collaborators_url": "https://api.github.com/repos/baxterthehacker/public-repo/collaborators{/collaborator}", "teams_url": "https://api.github.com/repos/baxterthehacker/public-repo/teams", "hooks_url": "https://api.github.com/repos/baxterthehacker/public-repo/hooks", "issue_events_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/events{/number}", "events_url": "https://api.github.com/repos/baxterthehacker/public-repo/events", "assignees_url": "https://api.github.com/repos/baxterthehacker/public-repo/assignees{/user}", "branches_url": "https://api.github.com/repos/baxterthehacker/public-repo/branches{/branch}", "tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/tags", "blobs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/blobs{/sha}", "git_tags_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/tags{/sha}", "git_refs_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/refs{/sha}", "trees_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/trees{/sha}", "statuses_url": "https://api.github.com/repos/baxterthehacker/public-repo/statuses/{sha}", "languages_url": "https://api.github.com/repos/baxterthehacker/public-repo/languages", "stargazers_url": "https://api.github.com/repos/baxterthehacker/public-repo/stargazers", "contributors_url": "https://api.github.com/repos/baxterthehacker/public-repo/contributors", "subscribers_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscribers", "subscription_url": "https://api.github.com/repos/baxterthehacker/public-repo/subscription", "commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/commits{/sha}", "git_commits_url": "https://api.github.com/repos/baxterthehacker/public-repo/git/commits{/sha}", "comments_url": "https://api.github.com/repos/baxterthehacker/public-repo/comments{/number}", "issue_comment_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues/comments{/number}", "contents_url": "https://api.github.com/repos/baxterthehacker/public-repo/contents/{+path}", "compare_url": "https://api.github.com/repos/baxterthehacker/public-repo/compare/{base}...{head}", "merges_url": "https://api.github.com/repos/baxterthehacker/public-repo/merges", "archive_url": "https://api.github.com/repos/baxterthehacker/public-repo/{archive_format}{/ref}", "downloads_url": "https://api.github.com/repos/baxterthehacker/public-repo/downloads", "issues_url": "https://api.github.com/repos/baxterthehacker/public-repo/issues{/number}", "pulls_url": "https://api.github.com/repos/baxterthehacker/public-repo/pulls{/number}", "milestones_url": "https://api.github.com/repos/baxterthehacker/public-repo/milestones{/number}", "notifications_url": "https://api.github.com/repos/baxterthehacker/public-repo/notifications{?since,all,participating}", "labels_url": "https://api.github.com/repos/baxterthehacker/public-repo/labels{/name}", "releases_url": "https://api.github.com/repos/baxterthehacker/public-repo/releases{/id}", "created_at": "2015-05-05T23:40:12Z", "updated_at": "2015-05-05T23:40:12Z", "pushed_at": "2015-05-05T23:40:26Z", "git_url": "git://github.com/baxterthehacker/public-repo.git", "ssh_url": "git@github.com:baxterthehacker/public-repo.git", "clone_url": "https://github.com/baxterthehacker/public-repo.git", "svn_url": "https://github.com/baxterthehacker/public-repo", "homepage": null, "size": 0, "stargazers_count": 0, "watchers_count": 0, "language": null, "has_issues": true, "has_downloads": true, "has_wiki": true, "has_pages": true, "forks_count": 0, "mirror_url": null, "open_issues_count": 1, "forks": 0, "open_issues": 1, "watchers": 0, "default_branch": "master" }, "sender": { "login": "baxterthehacker", "id": 6752317, "avatar_url": "https://avatars.githubusercontent.com/u/6752317?v=3", "gravatar_id": "", "url": "https://api.github.com/users/baxterthehacker", "html_url": "https://github.com/baxterthehacker", "followers_url": "https://api.github.com/users/baxterthehacker/followers", "following_url": "https://api.github.com/users/baxterthehacker/following{/other_user}", "gists_url": "https://api.github.com/users/baxterthehacker/gists{/gist_id}", "starred_url": "https://api.github.com/users/baxterthehacker/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/baxterthehacker/subscriptions", "organizations_url": "https://api.github.com/users/baxterthehacker/orgs", "repos_url": "https://api.github.com/users/baxterthehacker/repos", "events_url": "https://api.github.com/users/baxterthehacker/events{/privacy}", "received_events_url": "https://api.github.com/users/baxterthehacker/received_events", "type": "User", "site_admin": false } }""" # Example taken from github with additional example commit added https://docs.github.com/en/rest/commits/commits#compare-two-commits COMPARE_COMMITS_EXAMPLE_WITH_INTERMEDIATE = """{ "url": "https://api.github.com/repos/octocat/Hello-World/compare/master...topic", "html_url": "https://github.com/octocat/Hello-World/compare/master...topic", "permalink_url": "https://github.com/octocat/Hello-World/compare/octocat:bbcd538c8e72b8c175046e27cc8f907076331401...octocat:0328041d1152db8ae77652d1618a02e57f745f17", "diff_url": "https://github.com/octocat/Hello-World/compare/master...topic.diff", "patch_url": "https://github.com/octocat/Hello-World/compare/master...topic.patch", "base_commit": { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 6dcb09b5b57875f334f61aebed695e2e4193db5e..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } ] }, "merge_base_commit": { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 6dcb09b5b57875f334f61aebed695e2e4193db5e..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } ] }, "status": "ahead", "ahead_by": 2, "behind_by": 0, "total_commits": 2, "commits": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "sha": "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "html_url": "https://github.com/octocat/Hello-World/commit/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "sha": "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 2edc6bc02366b2b9b0e8fa2ace3f93502e324b39..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "sha": "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39" } ] }, { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 6dcb09b5b57875f334f61aebed695e2e4193db5e..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } ] } ], "files": [ { "sha": "bbcd538c8e72b8c175046e27cc8f907076331401", "filename": "file1.txt", "status": "added", "additions": 103, "deletions": 21, "changes": 124, "blob_url": "https://github.com/octocat/Hello-World/blob/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", "raw_url": "https://github.com/octocat/Hello-World/raw/6dcb09b5b57875f334f61aebed695e2e4193db5e/file1.txt", "contents_url": "https://api.github.com/repos/octocat/Hello-World/contents/file1.txt?ref=6dcb09b5b57875f334f61aebed695e2e4193db5e", "patch": "@@ -132,7 +132,7 @@ module Test @@ -1000,7 +1000,7 @@ module Test" } ] }""" # Example taken from github https://docs.github.com/en/rest/commits/commits#get-a-commit GET_COMMIT_EXAMPLE = r""" { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==", "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comment_count": 0, "verification": { "verified": false, "reason": "unsigned", "signature": null, "payload": null } }, "author": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } ], "stats": { "additions": 104, "deletions": 4, "total": 108 }, "files": [ { "filename": "file1.txt", "additions": 10, "deletions": 2, "changes": 12, "status": "modified", "raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt", "blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt", "patch": "@@ -29,7 +29,7 @@\n....." }, { "filename": "added.txt", "additions": 10, "deletions": 0, "changes": 0, "status": "added", "raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "patch": "@@ -29,7 +29,7 @@\n....." }, { "filename": "removed.txt", "additions": 0, "deletions": 10, "changes": 0, "status": "removed", "raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "patch": "@@ -29,7 +29,7 @@\n....." }, { "filename": "renamed.txt", "previous_filename": "old_name.txt", "additions": 0, "deletions": 0, "changes": 0, "status": "renamed", "raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "patch": "@@ -29,7 +29,7 @@\n....." } ] } """ # Example taken from github https://docs.github.com/en/rest/commits/commits#get-a-commit GET_PRIOR_COMMIT_EXAMPLE = r""" { "url": "https://api.github.com/repos/octocat/Hello-World/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "sha": "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "node_id": "MDY6Q29tbWl0NmRjYjA5YjViNTc4NzVmMzM0ZjYxYWViZWQ2OTVlMmU0MTkzZGI1ZQ==", "html_url": "https://github.com/octocat/Hello-World/commit/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "sha": "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39" }, "comment_count": 0, "verification": { "verified": false, "reason": "unsigned", "signature": null, "payload": null } }, "author": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "node_id": "MDQ6VXNlcjE=", "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "sha": "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39" } ], "stats": { "additions": 104, "deletions": 4, "total": 108 }, "files": [ { "filename": "file1.txt", "additions": 10, "deletions": 2, "changes": 12, "status": "modified", "raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt", "blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/file1.txt", "patch": "@@ -29,7 +29,7 @@\n....." }, { "filename": "added.txt", "additions": 10, "deletions": 0, "changes": 0, "status": "added", "raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "patch": "@@ -29,7 +29,7 @@\n....." }, { "filename": "removed.txt", "additions": 0, "deletions": 10, "changes": 0, "status": "removed", "raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "patch": "@@ -29,7 +29,7 @@\n....." }, { "filename": "renamed.txt", "previous_filename": "old_name.txt", "additions": 0, "deletions": 0, "changes": 0, "status": "renamed", "raw_url": "https://github.com/octocat/Hello-World/raw/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "blob_url": "https://github.com/octocat/Hello-World/blob/7ca483543807a51b6079e54ac4cc392bc29ae284/added.txt", "patch": "@@ -29,7 +29,7 @@\n....." } ] } """ # Example taken from github with extra commit added https://docs.github.com/en/rest/commits/commits#list-commits GET_LAST_2_COMMITS_EXAMPLE = """[ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "sha": "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "html_url": "https://github.com/octocat/Hello-World/commit/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "sha": "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 2edc6bc02366b2b9b0e8fa2ace3f93502e324b39..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/2edc6bc02366b2b9b0e8fa2ace3f93502e324b39", "sha": "2edc6bc02366b2b9b0e8fa2ace3f93502e324b39" } ] }, { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e", "html_url": "https://github.com/octocat/Hello-World/commit/6dcb09b5b57875f334f61aebed695e2e4193db5e", "comments_url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e/comments", "commit": { "url": "https://api.github.com/repos/octocat/Hello-World/git/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "author": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "committer": { "name": "Monalisa Octocat", "email": "support@github.com", "date": "2011-04-14T16:00:49Z" }, "message": "Fix all the bugs", "tree": { "url": "https://api.github.com/repos/octocat/Hello-World/tree/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" }, "comment_count": 0, "verification": { "verified": true, "reason": "valid", "signature": "-----BEGIN PGP MESSAGE----------END PGP MESSAGE-----", "payload": "tree 6dcb09b5b57875f334f61aebed695e2e4193db5e..." } }, "author": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "committer": { "login": "octocat", "id": 1, "avatar_url": "https://github.com/images/error/octocat_happy.gif", "gravatar_id": "", "url": "https://api.github.com/users/octocat", "html_url": "https://github.com/octocat", "followers_url": "https://api.github.com/users/octocat/followers", "following_url": "https://api.github.com/users/octocat/following{/other_user}", "gists_url": "https://api.github.com/users/octocat/gists{/gist_id}", "starred_url": "https://api.github.com/users/octocat/starred{/owner}{/repo}", "subscriptions_url": "https://api.github.com/users/octocat/subscriptions", "organizations_url": "https://api.github.com/users/octocat/orgs", "repos_url": "https://api.github.com/users/octocat/repos", "events_url": "https://api.github.com/users/octocat/events{/privacy}", "received_events_url": "https://api.github.com/users/octocat/received_events", "type": "User", "site_admin": false }, "parents": [ { "url": "https://api.github.com/repos/octocat/Hello-World/commits/6dcb09b5b57875f334f61aebed695e2e4193db5e", "sha": "6dcb09b5b57875f334f61aebed695e2e4193db5e" } ] } ]"""