Repository: hub4j/github-api
Pull request #1322 (2021-11-24 01:18:21)

Implement getChanges() for GHEventPayload.GHIssueComment and GHEventPayload.PullRequestReviewComment
# Description

<!-- Describe your change here -->

# Before submitting a PR:
We love getting PRs, but we hate asking people for the same basic changes every time.

- [x] Push your changes to a branch other than `main`. Create your PR from that branch.
- [x] Add JavaDocs and other comments
- [x] Write tests that run and pass in CI. See [CONTRIBUTING.md](CONTRIBUTING.md) for details on how to capture snapshot data.
- [ ] Run `mvn -D enable-ci clean install site` locally. If this command doesn't succeed, your change will not pass CI.

# When creating a PR: 

- [x] Fill in the "Description" above.
- [x] Enable "Allow edits from maintainers".


Fixes https://github.com/hub4j/github-api/issues/1243



Patch:
diff --git a/src/main/java/org/kohsuke/github/GHEventPayload.java b/src/main/java/org/kohsuke/github/GHEventPayload.java
index 4d47264aa..78cb9868a 100644
--- a/src/main/java/org/kohsuke/github/GHEventPayload.java
+++ b/src/main/java/org/kohsuke/github/GHEventPayload.java
@@ -462,6 +462,43 @@ public abstract class GHEventPayload extends GitHubInteractiveObject {
         }
     }
 
+    /**
+     * Wrapper for changes on issue and pull request review comments action="edited"
+     *
+     * @see GHEventPayload.IssueComment
+     * @see GHEventPayload.PullRequestReviewComment
+     */
+    @SuppressFBWarnings(value = "UWF_UNWRITTEN_FIELD", justification = "JSON API")
+    public static class CommentChanges {
+
+        private GHFrom body;
+
+        /**
+         * Gets the previous comment body.
+         *
+         * @return previous comment body (or null if not changed)
+         */
+        public GHFrom getBody() {
+            return body;
+        }
+
+        /**
+         * Wrapper for changed values.
+         */
+        public static class GHFrom {
+            private String from;
+
+            /**
+             * Previous comment value that was changed.
+             *
+             * @return previous value
+             */
+            public String getFrom() {
+                return from;
+            }
+        }
+    }
+
     /**
      * A review comment was added to a pull request
      *
@@ -473,6 +510,7 @@ public abstract class GHEventPayload extends GitHubInteractiveObject {
     public static class PullRequestReviewComment extends GHEventPayload {
         private GHPullRequestReviewComment comment;
         private GHPullRequest pullRequest;
+        private CommentChanges changes;
 
         /**
          * Gets comment.
@@ -484,6 +522,15 @@ public abstract class GHEventPayload extends GitHubInteractiveObject {
             return comment;
         }
 
+        /**
+         * Get changes (for action="edited")
+         *
+         * @return changes
+         */
+        public CommentChanges getChanges() {
+            return changes;
+        }
+
         /**
          * Gets pull request.
          *
@@ -587,6 +634,7 @@ public abstract class GHEventPayload extends GitHubInteractiveObject {
     public static class IssueComment extends GHEventPayload {
         private GHIssueComment comment;
         private GHIssue issue;
+        private CommentChanges changes;
 
         /**
          * Gets comment.
@@ -598,6 +646,15 @@ public abstract class GHEventPayload extends GitHubInteractiveObject {
             return comment;
         }
 
+        /**
+         * Get changes (for action="edited")
+         *
+         * @return changes
+         */
+        public CommentChanges getChanges() {
+            return changes;
+        }
+
         /**
          * Sets comment.
          *


Test patch:
diff --git a/src/test/java/org/kohsuke/github/GHEventPayloadTest.java b/src/test/java/org/kohsuke/github/GHEventPayloadTest.java
index ffc1c6bcd..b9d0b7c43 100644
--- a/src/test/java/org/kohsuke/github/GHEventPayloadTest.java
+++ b/src/test/java/org/kohsuke/github/GHEventPayloadTest.java
@@ -156,6 +156,15 @@ public class GHEventPayloadTest extends AbstractGitHubWireMockTest {
         assertThrows(RuntimeException.class, () -> event.setIssue(null));
     }
 
+    @Test
+    public void issue_comment_edited() throws Exception {
+        final GHEventPayload.IssueComment event = GitHub.offline()
+                .parseEventPayload(payload.asReader(), GHEventPayload.IssueComment.class);
+        assertThat(event.getAction(), is("edited"));
+        assertThat(event.getComment().getBody(), is("This is the issue comment AFTER edit."));
+        assertThat(event.getChanges().getBody().getFrom(), is("This is the issue comment BEFORE edit."));
+    }
+
     @Test
     public void issues() throws Exception {
         final GHEventPayload.Issue event = GitHub.offline()
@@ -426,6 +435,16 @@ public class GHEventPayloadTest extends AbstractGitHubWireMockTest {
         assertThat(event.getComment().getParent(), sameInstance(event.getPullRequest()));
     }
 
+    @Test
+    public void pull_request_review_comment_edited() throws Exception {
+        final GHEventPayload.PullRequestReviewComment event = GitHub.offline()
+                .parseEventPayload(payload.asReader(), GHEventPayload.PullRequestReviewComment.class);
+        assertThat(event.getAction(), is("edited"));
+        assertThat(event.getPullRequest().getNumber(), is(4));
+        assertThat(event.getComment().getBody(), is("This is the pull request review comment AFTER edit."));
+        assertThat(event.getChanges().getBody().getFrom(), is("This is the pull request review comment BEFORE edit."));
+    }
+
     @Test
     public void push() throws Exception {
         final GHEventPayload.Push event = GitHub.offline()
diff --git a/src/test/resources/org/kohsuke/github/GHEventPayloadTest/issue_comment_edited.json b/src/test/resources/org/kohsuke/github/GHEventPayloadTest/issue_comment_edited.json
new file mode 100644
index 000000000..6fce75d27
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHEventPayloadTest/issue_comment_edited.json
@@ -0,0 +1,235 @@
+{
+  "action": "edited",
+  "changes": {
+    "body": {
+      "from": "This is the issue comment BEFORE edit."
+    }
+  },
+  "issue": {
+    "url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/1",
+    "repository_url": "https://api.github.com/repos/willtsai/githubapi-testrepo",
+    "labels_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/1/labels{/name}",
+    "comments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/1/comments",
+    "events_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/1/events",
+    "html_url": "https://github.com/willtsai/githubapi-testrepo/issues/1",
+    "id": 1058100040,
+    "node_id": "I_kwDOGZwfHs4_EVNI",
+    "number": 1,
+    "title": "Test Issue 1",
+    "user": {
+      "login": "willtsai",
+      "id": 28876888,
+      "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+      "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/willtsai",
+      "html_url": "https://github.com/willtsai",
+      "followers_url": "https://api.github.com/users/willtsai/followers",
+      "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+      "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+      "organizations_url": "https://api.github.com/users/willtsai/orgs",
+      "repos_url": "https://api.github.com/users/willtsai/repos",
+      "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/willtsai/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "labels": [
+
+    ],
+    "state": "open",
+    "locked": false,
+    "assignee": null,
+    "assignees": [
+
+    ],
+    "milestone": null,
+    "comments": 1,
+    "created_at": "2021-11-19T03:49:50Z",
+    "updated_at": "2021-11-22T18:22:45Z",
+    "closed_at": null,
+    "author_association": "OWNER",
+    "active_lock_reason": null,
+    "body": "Test issue for solving https://github.com/hub4j/github-api/issues/1243",
+    "reactions": {
+      "url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/1/reactions",
+      "total_count": 0,
+      "+1": 0,
+      "-1": 0,
+      "laugh": 0,
+      "hooray": 0,
+      "confused": 0,
+      "heart": 0,
+      "rocket": 0,
+      "eyes": 0
+    },
+    "timeline_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/1/timeline",
+    "performed_via_github_app": null
+  },
+  "comment": {
+    "url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/comments/973709263",
+    "html_url": "https://github.com/willtsai/githubapi-testrepo/issues/1#issuecomment-973709263",
+    "issue_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/1",
+    "id": 973709263,
+    "node_id": "IC_kwDOGZwfHs46CZ_P",
+    "user": {
+      "login": "willtsai",
+      "id": 28876888,
+      "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+      "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/willtsai",
+      "html_url": "https://github.com/willtsai",
+      "followers_url": "https://api.github.com/users/willtsai/followers",
+      "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+      "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+      "organizations_url": "https://api.github.com/users/willtsai/orgs",
+      "repos_url": "https://api.github.com/users/willtsai/repos",
+      "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/willtsai/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "created_at": "2021-11-19T03:50:11Z",
+    "updated_at": "2021-11-22T18:22:45Z",
+    "author_association": "OWNER",
+    "body": "This is the issue comment AFTER edit.",
+    "reactions": {
+      "url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/comments/973709263/reactions",
+      "total_count": 0,
+      "+1": 0,
+      "-1": 0,
+      "laugh": 0,
+      "hooray": 0,
+      "confused": 0,
+      "heart": 0,
+      "rocket": 0,
+      "eyes": 0
+    },
+    "performed_via_github_app": null
+  },
+  "repository": {
+    "id": 429661982,
+    "node_id": "R_kgDOGZwfHg",
+    "name": "githubapi-testrepo",
+    "full_name": "willtsai/githubapi-testrepo",
+    "private": false,
+    "owner": {
+      "login": "willtsai",
+      "id": 28876888,
+      "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+      "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/willtsai",
+      "html_url": "https://github.com/willtsai",
+      "followers_url": "https://api.github.com/users/willtsai/followers",
+      "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+      "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+      "organizations_url": "https://api.github.com/users/willtsai/orgs",
+      "repos_url": "https://api.github.com/users/willtsai/repos",
+      "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/willtsai/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/willtsai/githubapi-testrepo",
+    "description": null,
+    "fork": false,
+    "url": "https://api.github.com/repos/willtsai/githubapi-testrepo",
+    "forks_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/forks",
+    "keys_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/teams",
+    "hooks_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/hooks",
+    "issue_events_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/events",
+    "assignees_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/tags",
+    "blobs_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/languages",
+    "stargazers_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/stargazers",
+    "contributors_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/contributors",
+    "subscribers_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/subscribers",
+    "subscription_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/subscription",
+    "commits_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/merges",
+    "archive_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/downloads",
+    "issues_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/labels{/name}",
+    "releases_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/deployments",
+    "created_at": "2021-11-19T03:48:57Z",
+    "updated_at": "2021-11-19T03:48:57Z",
+    "pushed_at": "2021-11-19T03:48:58Z",
+    "git_url": "git://github.com/willtsai/githubapi-testrepo.git",
+    "ssh_url": "git@github.com:willtsai/githubapi-testrepo.git",
+    "clone_url": "https://github.com/willtsai/githubapi-testrepo.git",
+    "svn_url": "https://github.com/willtsai/githubapi-testrepo",
+    "homepage": null,
+    "size": 0,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": null,
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 2,
+    "license": null,
+    "allow_forking": true,
+    "is_template": false,
+    "topics": [
+
+    ],
+    "visibility": "public",
+    "forks": 0,
+    "open_issues": 2,
+    "watchers": 0,
+    "default_branch": "main"
+  },
+  "sender": {
+    "login": "willtsai",
+    "id": 28876888,
+    "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+    "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+    "gravatar_id": "",
+    "url": "https://api.github.com/users/willtsai",
+    "html_url": "https://github.com/willtsai",
+    "followers_url": "https://api.github.com/users/willtsai/followers",
+    "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+    "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+    "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+    "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+    "organizations_url": "https://api.github.com/users/willtsai/orgs",
+    "repos_url": "https://api.github.com/users/willtsai/repos",
+    "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+    "received_events_url": "https://api.github.com/users/willtsai/received_events",
+    "type": "User",
+    "site_admin": false
+  }
+}
\ No newline at end of file
diff --git a/src/test/resources/org/kohsuke/github/GHEventPayloadTest/pull_request_review_comment_edited.json b/src/test/resources/org/kohsuke/github/GHEventPayloadTest/pull_request_review_comment_edited.json
new file mode 100644
index 000000000..34e0e9879
--- /dev/null
+++ b/src/test/resources/org/kohsuke/github/GHEventPayloadTest/pull_request_review_comment_edited.json
@@ -0,0 +1,545 @@
+{
+  "action": "edited",
+  "changes": {
+    "body": {
+      "from": "This is the pull request review comment BEFORE edit."
+    }
+  },
+  "comment": {
+    "url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/comments/754839483",
+    "pull_request_review_id": 813274752,
+    "id": 754839483,
+    "node_id": "PRRC_kwDOGZwfHs4s_e-7",
+    "diff_hunk": "@@ -1,3 +1,5 @@\n #This repo is for testing\n \n Adding this README file to create a commit for testing.\n+\n+Adding this edit to create PR for testing.",
+    "path": "README.md",
+    "position": 5,
+    "original_position": 5,
+    "commit_id": "7bad8248fbee68d7967bdc5315bfdd9d60cfbed4",
+    "original_commit_id": "7bad8248fbee68d7967bdc5315bfdd9d60cfbed4",
+    "user": {
+      "login": "willtsai",
+      "id": 28876888,
+      "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+      "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/willtsai",
+      "html_url": "https://github.com/willtsai",
+      "followers_url": "https://api.github.com/users/willtsai/followers",
+      "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+      "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+      "organizations_url": "https://api.github.com/users/willtsai/orgs",
+      "repos_url": "https://api.github.com/users/willtsai/repos",
+      "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/willtsai/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "body": "This is the pull request review comment AFTER edit.",
+    "created_at": "2021-11-23T06:55:01Z",
+    "updated_at": "2021-11-23T06:55:42Z",
+    "html_url": "https://github.com/willtsai/githubapi-testrepo/pull/4#discussion_r754839483",
+    "pull_request_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/4",
+    "author_association": "OWNER",
+    "_links": {
+      "self": {
+        "href": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/comments/754839483"
+      },
+      "html": {
+        "href": "https://github.com/willtsai/githubapi-testrepo/pull/4#discussion_r754839483"
+      },
+      "pull_request": {
+        "href": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/4"
+      }
+    },
+    "reactions": {
+      "url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/comments/754839483/reactions",
+      "total_count": 0,
+      "+1": 0,
+      "-1": 0,
+      "laugh": 0,
+      "hooray": 0,
+      "confused": 0,
+      "heart": 0,
+      "rocket": 0,
+      "eyes": 0
+    },
+    "start_line": null,
+    "original_start_line": null,
+    "start_side": null,
+    "line": 5,
+    "original_line": 5,
+    "side": "RIGHT"
+  },
+  "pull_request": {
+    "url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/4",
+    "id": 786680055,
+    "node_id": "PR_kwDOGZwfHs4u48j3",
+    "html_url": "https://github.com/willtsai/githubapi-testrepo/pull/4",
+    "diff_url": "https://github.com/willtsai/githubapi-testrepo/pull/4.diff",
+    "patch_url": "https://github.com/willtsai/githubapi-testrepo/pull/4.patch",
+    "issue_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/4",
+    "number": 4,
+    "state": "open",
+    "locked": false,
+    "title": "Update README.md",
+    "user": {
+      "login": "willtsai",
+      "id": 28876888,
+      "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+      "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/willtsai",
+      "html_url": "https://github.com/willtsai",
+      "followers_url": "https://api.github.com/users/willtsai/followers",
+      "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+      "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+      "organizations_url": "https://api.github.com/users/willtsai/orgs",
+      "repos_url": "https://api.github.com/users/willtsai/repos",
+      "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/willtsai/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "body": "This is a pull request.",
+    "created_at": "2021-11-23T06:54:15Z",
+    "updated_at": "2021-11-23T06:55:42Z",
+    "closed_at": null,
+    "merged_at": null,
+    "merge_commit_sha": "25a372dc0e2bd77d2d1eb2fa4187acd9f08cf8c1",
+    "assignee": null,
+    "assignees": [
+
+    ],
+    "requested_reviewers": [
+
+    ],
+    "requested_teams": [
+
+    ],
+    "labels": [
+
+    ],
+    "milestone": null,
+    "draft": false,
+    "commits_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/4/commits",
+    "review_comments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/4/comments",
+    "review_comment_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/comments{/number}",
+    "comments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/4/comments",
+    "statuses_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/statuses/7bad8248fbee68d7967bdc5315bfdd9d60cfbed4",
+    "head": {
+      "label": "willtsai:willtsai-patch-2",
+      "ref": "willtsai-patch-2",
+      "sha": "7bad8248fbee68d7967bdc5315bfdd9d60cfbed4",
+      "user": {
+        "login": "willtsai",
+        "id": 28876888,
+        "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+        "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+        "gravatar_id": "",
+        "url": "https://api.github.com/users/willtsai",
+        "html_url": "https://github.com/willtsai",
+        "followers_url": "https://api.github.com/users/willtsai/followers",
+        "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+        "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+        "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+        "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+        "organizations_url": "https://api.github.com/users/willtsai/orgs",
+        "repos_url": "https://api.github.com/users/willtsai/repos",
+        "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+        "received_events_url": "https://api.github.com/users/willtsai/received_events",
+        "type": "User",
+        "site_admin": false
+      },
+      "repo": {
+        "id": 429661982,
+        "node_id": "R_kgDOGZwfHg",
+        "name": "githubapi-testrepo",
+        "full_name": "willtsai/githubapi-testrepo",
+        "private": false,
+        "owner": {
+          "login": "willtsai",
+          "id": 28876888,
+          "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+          "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+          "gravatar_id": "",
+          "url": "https://api.github.com/users/willtsai",
+          "html_url": "https://github.com/willtsai",
+          "followers_url": "https://api.github.com/users/willtsai/followers",
+          "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+          "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+          "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+          "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+          "organizations_url": "https://api.github.com/users/willtsai/orgs",
+          "repos_url": "https://api.github.com/users/willtsai/repos",
+          "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+          "received_events_url": "https://api.github.com/users/willtsai/received_events",
+          "type": "User",
+          "site_admin": false
+        },
+        "html_url": "https://github.com/willtsai/githubapi-testrepo",
+        "description": null,
+        "fork": false,
+        "url": "https://api.github.com/repos/willtsai/githubapi-testrepo",
+        "forks_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/forks",
+        "keys_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/keys{/key_id}",
+        "collaborators_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/collaborators{/collaborator}",
+        "teams_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/teams",
+        "hooks_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/hooks",
+        "issue_events_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/events{/number}",
+        "events_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/events",
+        "assignees_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/assignees{/user}",
+        "branches_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/branches{/branch}",
+        "tags_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/tags",
+        "blobs_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/blobs{/sha}",
+        "git_tags_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/tags{/sha}",
+        "git_refs_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/refs{/sha}",
+        "trees_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/trees{/sha}",
+        "statuses_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/statuses/{sha}",
+        "languages_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/languages",
+        "stargazers_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/stargazers",
+        "contributors_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/contributors",
+        "subscribers_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/subscribers",
+        "subscription_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/subscription",
+        "commits_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/commits{/sha}",
+        "git_commits_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/commits{/sha}",
+        "comments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/comments{/number}",
+        "issue_comment_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/comments{/number}",
+        "contents_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/contents/{+path}",
+        "compare_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/compare/{base}...{head}",
+        "merges_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/merges",
+        "archive_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/{archive_format}{/ref}",
+        "downloads_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/downloads",
+        "issues_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues{/number}",
+        "pulls_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls{/number}",
+        "milestones_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/milestones{/number}",
+        "notifications_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/notifications{?since,all,participating}",
+        "labels_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/labels{/name}",
+        "releases_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/releases{/id}",
+        "deployments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/deployments",
+        "created_at": "2021-11-19T03:48:57Z",
+        "updated_at": "2021-11-23T01:30:52Z",
+        "pushed_at": "2021-11-23T06:54:16Z",
+        "git_url": "git://github.com/willtsai/githubapi-testrepo.git",
+        "ssh_url": "git@github.com:willtsai/githubapi-testrepo.git",
+        "clone_url": "https://github.com/willtsai/githubapi-testrepo.git",
+        "svn_url": "https://github.com/willtsai/githubapi-testrepo",
+        "homepage": null,
+        "size": 1,
+        "stargazers_count": 0,
+        "watchers_count": 0,
+        "language": null,
+        "has_issues": true,
+        "has_projects": true,
+        "has_downloads": true,
+        "has_wiki": true,
+        "has_pages": false,
+        "forks_count": 0,
+        "mirror_url": null,
+        "archived": false,
+        "disabled": false,
+        "open_issues_count": 4,
+        "license": null,
+        "allow_forking": true,
+        "is_template": false,
+        "topics": [
+
+        ],
+        "visibility": "public",
+        "forks": 0,
+        "open_issues": 4,
+        "watchers": 0,
+        "default_branch": "main",
+        "allow_squash_merge": true,
+        "allow_merge_commit": true,
+        "allow_rebase_merge": true,
+        "allow_auto_merge": false,
+        "delete_branch_on_merge": false,
+        "allow_update_branch": false
+      }
+    },
+    "base": {
+      "label": "willtsai:main",
+      "ref": "main",
+      "sha": "0c45d7bc2984b7ab07d978e8a120f1df49d1bc4f",
+      "user": {
+        "login": "willtsai",
+        "id": 28876888,
+        "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+        "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+        "gravatar_id": "",
+        "url": "https://api.github.com/users/willtsai",
+        "html_url": "https://github.com/willtsai",
+        "followers_url": "https://api.github.com/users/willtsai/followers",
+        "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+        "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+        "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+        "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+        "organizations_url": "https://api.github.com/users/willtsai/orgs",
+        "repos_url": "https://api.github.com/users/willtsai/repos",
+        "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+        "received_events_url": "https://api.github.com/users/willtsai/received_events",
+        "type": "User",
+        "site_admin": false
+      },
+      "repo": {
+        "id": 429661982,
+        "node_id": "R_kgDOGZwfHg",
+        "name": "githubapi-testrepo",
+        "full_name": "willtsai/githubapi-testrepo",
+        "private": false,
+        "owner": {
+          "login": "willtsai",
+          "id": 28876888,
+          "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+          "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+          "gravatar_id": "",
+          "url": "https://api.github.com/users/willtsai",
+          "html_url": "https://github.com/willtsai",
+          "followers_url": "https://api.github.com/users/willtsai/followers",
+          "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+          "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+          "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+          "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+          "organizations_url": "https://api.github.com/users/willtsai/orgs",
+          "repos_url": "https://api.github.com/users/willtsai/repos",
+          "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+          "received_events_url": "https://api.github.com/users/willtsai/received_events",
+          "type": "User",
+          "site_admin": false
+        },
+        "html_url": "https://github.com/willtsai/githubapi-testrepo",
+        "description": null,
+        "fork": false,
+        "url": "https://api.github.com/repos/willtsai/githubapi-testrepo",
+        "forks_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/forks",
+        "keys_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/keys{/key_id}",
+        "collaborators_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/collaborators{/collaborator}",
+        "teams_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/teams",
+        "hooks_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/hooks",
+        "issue_events_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/events{/number}",
+        "events_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/events",
+        "assignees_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/assignees{/user}",
+        "branches_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/branches{/branch}",
+        "tags_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/tags",
+        "blobs_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/blobs{/sha}",
+        "git_tags_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/tags{/sha}",
+        "git_refs_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/refs{/sha}",
+        "trees_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/trees{/sha}",
+        "statuses_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/statuses/{sha}",
+        "languages_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/languages",
+        "stargazers_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/stargazers",
+        "contributors_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/contributors",
+        "subscribers_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/subscribers",
+        "subscription_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/subscription",
+        "commits_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/commits{/sha}",
+        "git_commits_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/commits{/sha}",
+        "comments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/comments{/number}",
+        "issue_comment_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/comments{/number}",
+        "contents_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/contents/{+path}",
+        "compare_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/compare/{base}...{head}",
+        "merges_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/merges",
+        "archive_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/{archive_format}{/ref}",
+        "downloads_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/downloads",
+        "issues_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues{/number}",
+        "pulls_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls{/number}",
+        "milestones_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/milestones{/number}",
+        "notifications_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/notifications{?since,all,participating}",
+        "labels_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/labels{/name}",
+        "releases_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/releases{/id}",
+        "deployments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/deployments",
+        "created_at": "2021-11-19T03:48:57Z",
+        "updated_at": "2021-11-23T01:30:52Z",
+        "pushed_at": "2021-11-23T06:54:16Z",
+        "git_url": "git://github.com/willtsai/githubapi-testrepo.git",
+        "ssh_url": "git@github.com:willtsai/githubapi-testrepo.git",
+        "clone_url": "https://github.com/willtsai/githubapi-testrepo.git",
+        "svn_url": "https://github.com/willtsai/githubapi-testrepo",
+        "homepage": null,
+        "size": 1,
+        "stargazers_count": 0,
+        "watchers_count": 0,
+        "language": null,
+        "has_issues": true,
+        "has_projects": true,
+        "has_downloads": true,
+        "has_wiki": true,
+        "has_pages": false,
+        "forks_count": 0,
+        "mirror_url": null,
+        "archived": false,
+        "disabled": false,
+        "open_issues_count": 4,
+        "license": null,
+        "allow_forking": true,
+        "is_template": false,
+        "topics": [
+
+        ],
+        "visibility": "public",
+        "forks": 0,
+        "open_issues": 4,
+        "watchers": 0,
+        "default_branch": "main",
+        "allow_squash_merge": true,
+        "allow_merge_commit": true,
+        "allow_rebase_merge": true,
+        "allow_auto_merge": false,
+        "delete_branch_on_merge": false,
+        "allow_update_branch": false
+      }
+    },
+    "_links": {
+      "self": {
+        "href": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/4"
+      },
+      "html": {
+        "href": "https://github.com/willtsai/githubapi-testrepo/pull/4"
+      },
+      "issue": {
+        "href": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/4"
+      },
+      "comments": {
+        "href": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/4/comments"
+      },
+      "review_comments": {
+        "href": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/4/comments"
+      },
+      "review_comment": {
+        "href": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/comments{/number}"
+      },
+      "commits": {
+        "href": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls/4/commits"
+      },
+      "statuses": {
+        "href": "https://api.github.com/repos/willtsai/githubapi-testrepo/statuses/7bad8248fbee68d7967bdc5315bfdd9d60cfbed4"
+      }
+    },
+    "author_association": "OWNER",
+    "auto_merge": null,
+    "active_lock_reason": null
+  },
+  "repository": {
+    "id": 429661982,
+    "node_id": "R_kgDOGZwfHg",
+    "name": "githubapi-testrepo",
+    "full_name": "willtsai/githubapi-testrepo",
+    "private": false,
+    "owner": {
+      "login": "willtsai",
+      "id": 28876888,
+      "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+      "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+      "gravatar_id": "",
+      "url": "https://api.github.com/users/willtsai",
+      "html_url": "https://github.com/willtsai",
+      "followers_url": "https://api.github.com/users/willtsai/followers",
+      "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+      "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+      "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+      "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+      "organizations_url": "https://api.github.com/users/willtsai/orgs",
+      "repos_url": "https://api.github.com/users/willtsai/repos",
+      "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+      "received_events_url": "https://api.github.com/users/willtsai/received_events",
+      "type": "User",
+      "site_admin": false
+    },
+    "html_url": "https://github.com/willtsai/githubapi-testrepo",
+    "description": null,
+    "fork": false,
+    "url": "https://api.github.com/repos/willtsai/githubapi-testrepo",
+    "forks_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/forks",
+    "keys_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/keys{/key_id}",
+    "collaborators_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/collaborators{/collaborator}",
+    "teams_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/teams",
+    "hooks_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/hooks",
+    "issue_events_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/events{/number}",
+    "events_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/events",
+    "assignees_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/assignees{/user}",
+    "branches_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/branches{/branch}",
+    "tags_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/tags",
+    "blobs_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/blobs{/sha}",
+    "git_tags_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/tags{/sha}",
+    "git_refs_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/refs{/sha}",
+    "trees_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/trees{/sha}",
+    "statuses_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/statuses/{sha}",
+    "languages_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/languages",
+    "stargazers_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/stargazers",
+    "contributors_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/contributors",
+    "subscribers_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/subscribers",
+    "subscription_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/subscription",
+    "commits_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/commits{/sha}",
+    "git_commits_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/git/commits{/sha}",
+    "comments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/comments{/number}",
+    "issue_comment_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues/comments{/number}",
+    "contents_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/contents/{+path}",
+    "compare_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/compare/{base}...{head}",
+    "merges_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/merges",
+    "archive_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/{archive_format}{/ref}",
+    "downloads_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/downloads",
+    "issues_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/issues{/number}",
+    "pulls_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/pulls{/number}",
+    "milestones_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/milestones{/number}",
+    "notifications_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/notifications{?since,all,participating}",
+    "labels_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/labels{/name}",
+    "releases_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/releases{/id}",
+    "deployments_url": "https://api.github.com/repos/willtsai/githubapi-testrepo/deployments",
+    "created_at": "2021-11-19T03:48:57Z",
+    "updated_at": "2021-11-23T01:30:52Z",
+    "pushed_at": "2021-11-23T06:54:16Z",
+    "git_url": "git://github.com/willtsai/githubapi-testrepo.git",
+    "ssh_url": "git@github.com:willtsai/githubapi-testrepo.git",
+    "clone_url": "https://github.com/willtsai/githubapi-testrepo.git",
+    "svn_url": "https://github.com/willtsai/githubapi-testrepo",
+    "homepage": null,
+    "size": 1,
+    "stargazers_count": 0,
+    "watchers_count": 0,
+    "language": null,
+    "has_issues": true,
+    "has_projects": true,
+    "has_downloads": true,
+    "has_wiki": true,
+    "has_pages": false,
+    "forks_count": 0,
+    "mirror_url": null,
+    "archived": false,
+    "disabled": false,
+    "open_issues_count": 4,
+    "license": null,
+    "allow_forking": true,
+    "is_template": false,
+    "topics": [
+
+    ],
+    "visibility": "public",
+    "forks": 0,
+    "open_issues": 4,
+    "watchers": 0,
+    "default_branch": "main"
+  },
+  "sender": {
+    "login": "willtsai",
+    "id": 28876888,
+    "node_id": "MDQ6VXNlcjI4ODc2ODg4",
+    "avatar_url": "https://avatars.githubusercontent.com/u/28876888?v=4",
+    "gravatar_id": "",
+    "url": "https://api.github.com/users/willtsai",
+    "html_url": "https://github.com/willtsai",
+    "followers_url": "https://api.github.com/users/willtsai/followers",
+    "following_url": "https://api.github.com/users/willtsai/following{/other_user}",
+    "gists_url": "https://api.github.com/users/willtsai/gists{/gist_id}",
+    "starred_url": "https://api.github.com/users/willtsai/starred{/owner}{/repo}",
+    "subscriptions_url": "https://api.github.com/users/willtsai/subscriptions",
+    "organizations_url": "https://api.github.com/users/willtsai/orgs",
+    "repos_url": "https://api.github.com/users/willtsai/repos",
+    "events_url": "https://api.github.com/users/willtsai/events{/privacy}",
+    "received_events_url": "https://api.github.com/users/willtsai/received_events",
+    "type": "User",
+    "site_admin": false
+  }
+}
\ No newline at end of file