{"action":"created","comment":{"url":"https://api.github.com/repos/divmain/GitSavvy/pulls/comments/79980511","id":79980511,"diff_hunk":"@@ -6,169 +6,74 @@\n from ...common import util\n \n \n-class GsLogCommand(WindowCommand, GitCommand):\n-    cherry_branch = None\n-\n-    def run(self, filename=None, limit=6000, author=None, log_current_file=False, target_hash=None, branch=None):\n-        self._pagination = 0\n-        self._filename = filename\n-        self._limit = limit\n-        self._author = author\n-        self._log_current_file = log_current_file\n-        self._target_hash = target_hash\n-        self._branch = branch\n+class GsLogBase(WindowCommand, GitCommand):\n+    _limit = 6000\n+\n+    def run(self, file_path=None):\n+        self._skip = 0\n+        self._file_path = file_path\n         sublime.set_timeout_async(self.run_async)\n \n     def run_async(self):\n-        log_output = self.git(\n-            \"log\",\n-            \"-{}\".format(self._limit) if self._limit else None,\n-            \"--skip={}\".format(self._pagination) if self._pagination else None,\n-            \"--author={}\".format(self._author) if self._author else None,\n-            '--format=%h%n%H%n%s%n%an%n%at%x00',\n-            '--cherry' if self.cherry_branch else None,\n-            '..{}'.format(self.cherry_branch) if self.cherry_branch else None,\n-            \"--\" if self._filename else None,\n-            self._filename,\n-            self._branch if self._branch else None\n-        ).strip(\"\\x00\")\n+        logs = self.log(file_path=self._file_path, limit=self._limit, skip=self._skip)\n+        self._hashes = [l.long_hash for l in logs]\n+        self.display_commits(self.render_commits(logs))\n+\n+    def render_commits(self, logs):\n+        commit_list = []\n+        for l in logs:\n+            commit_list.append([\n+                l.short_hash + \" \" + l.summary,\n+                l.author + \", \" + util.dates.fuzzy(l.datetime)\n+            ])\n+        return commit_list\n \n-        self._entries = []\n-        self._hashes = []\n-        for entry in log_output.split(\"\\x00\"):\n-            try:\n-                short_hash, long_hash, summary, author, datetime = entry.strip(\"\\n\").split(\"\\n\")\n-                self._entries.append([\n-                    short_hash + \" \" + summary,\n-                    author + \", \" + util.dates.fuzzy(datetime)\n-                ])\n-                self._hashes.append(long_hash)\n-\n-            except ValueError:\n-                # Empty line - less expensive to catch the exception once than\n-                # to check truthiness of entry.strip() each time.\n-                pass\n-\n-        if not len(self._entries) < self._limit:\n-            self._entries.append([\n+    def display_commits(self, commit_list):\n+        if len(commit_list) >= self._limit:\n+            commit_list.append([\n                 \">>> NEXT {} COMMITS >>>\".format(self._limit),\n                 \"Skip this set of commits and choose from the next-oldest batch.\"\n             ])\n-\n-        try:\n-            pre_selected_index = self._hashes.index(self._selected_hash) if hasattr(self, '_selected_hash') else 0\n-        except ValueError:\n-            pre_selected_index = 0\n-\n-        # _on_hash_selection has to be called by set_timeout_async\n-        # otherwise, on_highlight_commit_async will be called after\n-        # _on_hash_selection is executed.\n         self.window.show_quick_panel(\n-            self._entries,\n-            lambda index: sublime.set_timeout_async(lambda: self._on_hash_selection(index), 10),\n+            commit_list,\n+            lambda index: sublime.set_timeout_async(lambda: self.on_commit_selection(index), 10),\n             flags=sublime.MONOSPACE_FONT | sublime.KEEP_OPEN_ON_FOCUS_LOST,\n-            selected_index=pre_selected_index,\n-            on_highlight=self.on_highlight_commit\n+            on_highlight=self.on_commit_highlight\n         )\n \n-    def on_highlight_commit(self, index):\n-        sublime.set_timeout_async(lambda: self.on_highlight_commit_async(index))\n+    def on_commit_highlight(self, index):\n+        sublime.set_timeout_async(lambda: self.on_commit_highlight_async(index))\n \n-    def on_highlight_commit_async(self, index):\n+    def on_commit_highlight_async(self, index):\n         savvy_settings = sublime.load_settings(\"GitSavvy.sublime-settings\")\n         show_more = savvy_settings.get(\"log_show_more_commit_info\")\n-        show_full = savvy_settings.get(\"show_full_commit_info\")\n         if not show_more:\n             return\n-        commit_hash = \"%s\" % self._hashes[index]\n-        text = self.git(\"show\", commit_hash, \"--no-color\", \"--format=fuller\", \"--quiet\" if not show_full else None)\n-        output_view = self.window.create_output_panel(\"show_commit_info\")\n-        output_view.set_read_only(False)\n-        output_view.run_command(\"gs_replace_view_text\", {\"text\": text, \"nuke_cursors\": True})\n-        output_view.set_syntax_file(\"Packages/GitSavvy/syntax/show_commit.sublime-syntax\")\n-        output_view.set_read_only(True)\n-        self.window.run_command(\"show_panel\", {\"panel\": \"output.show_commit_info\"})\n-\n-    def _on_hash_selection(self, index):\n-        self.window.run_command(\"hide_panel\", {\"panel\": \"output.show_commit_info\"})\n-        self.on_hash_selection(index)\n-\n-    def on_hash_selection(self, index):\n-        options_array = [\n-                \"Show commit\",\n-                \"Checkout commit\",\n-                \"Compare commit against ...\",\n-                \"Copy the full SHA\",\n-                \"Diff commit\",\n-                \"Diff commit (cached)\"\n-        ]\n-\n-        if self._log_current_file:\n-            options_array.append(\"Show file at commit\")\n+        self.window.run_command(\"gs_show_commit_info\", {\"commit_hash\": self._hashes[index]})\n \n+    def on_commit_selection(self, index):\n+        self.window.run_command(\"hide_panel\", {\"panel\": \"output.show_commit_info\"})\n         if index == -1:\n             return\n         if index == self._limit:\n-            self._pagination += self._limit\n+            self._skip += self._limit\n             sublime.set_timeout_async(self.run_async, 1)\n             return\n+        self._selected_commit = self._hashes[index]\n+        self.do_action(self._selected_commit)\n \n-        self._selected_hash = self._hashes[index]\n-\n-        self.window.show_quick_panel(\n-            options_array,\n-            self.on_output_selection,\n-            flags=sublime.MONOSPACE_FONT,\n-            selected_index=self.quick_panel_log_idx\n-        )\n-\n-    def on_output_selection(self, index):\n-        if index == -1:\n-            sublime.set_timeout_async(self.run_async, 1)\n-            return\n-\n-        self.quick_panel_log_idx = index\n-\n-        if index == 0:\n-            self.window.run_command(\"gs_show_commit\", {\"commit_hash\": self._selected_hash})\n-\n-        if index == 1:\n-            self.checkout_ref(self._selected_hash)\n-            util.view.refresh_gitsavvy(self.view)\n-\n-        if index == 2:\n-            self.window.run_command(\"gs_compare_against\", {\n-                \"target_commit\": self._selected_hash,\n-                \"file_path\": self._filename\n-            })\n-\n-        if index == 3:\n-            sublime.set_clipboard(self._selected_hash)\n-\n-        if index in [4, 5]:\n-            in_cached_mode = index == 5\n-            self.window.run_command(\"gs_diff\", {\n-                \"in_cached_mode\": in_cached_mode,\n-                \"file_path\": self._filename,\n-                \"current_file\": bool(self._filename),\n-                \"base_commit\": self._selected_hash,\n-                \"disable_stage\": True\n-            })\n-\n-        if index == 6:\n-            lang = self.window.active_view().settings().get('syntax')\n-            self.window.run_command(\n-                \"gs_show_file_at_commit\",\n-                {\"commit_hash\": self._selected_hash, \"filepath\": self._filename, \"lang\": lang})\n+    def do_action(self, commit_hash):\n+        self.window.run_command(\"gs_log_action\", {\n+            \"commit_hash\": commit_hash,\n+            \"file_path\": self._file_path\n+        })\n \n \n-class GsLogCurrentFileCommand(WindowCommand, GitCommand):\n+class GsLogCurrentBranchCommand(GsLogBase):\n+    pass","path":"core/commands/log.py","position":200,"original_position":200,"commit_id":"c89c9433a21679e97d45d9b29f18e19d14849ccd","original_commit_id":"c89c9433a21679e97d45d9b29f18e19d14849ccd","user":{"login":"divmain","id":5016978,"avatar_url":"https://avatars.githubusercontent.com/u/5016978?v=3","gravatar_id":"","url":"https://api.github.com/users/divmain","html_url":"https://github.com/divmain","followers_url":"https://api.github.com/users/divmain/followers","following_url":"https://api.github.com/users/divmain/following{/other_user}","gists_url":"https://api.github.com/users/divmain/gists{/gist_id}","starred_url":"https://api.github.com/users/divmain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/divmain/subscriptions","organizations_url":"https://api.github.com/users/divmain/orgs","repos_url":"https://api.github.com/users/divmain/repos","events_url":"https://api.github.com/users/divmain/events{/privacy}","received_events_url":"https://api.github.com/users/divmain/received_events","type":"User","site_admin":false},"body":"Why is this still here?","created_at":"2016-09-22T06:17:20Z","updated_at":"2016-09-22T06:20:59Z","html_url":"https://github.com/divmain/GitSavvy/pull/505#discussion_r79980511","pull_request_url":"https://api.github.com/repos/divmain/GitSavvy/pulls/505","_links":{"self":{"href":"https://api.github.com/repos/divmain/GitSavvy/pulls/comments/79980511"},"html":{"href":"https://github.com/divmain/GitSavvy/pull/505#discussion_r79980511"},"pull_request":{"href":"https://api.github.com/repos/divmain/GitSavvy/pulls/505"}}},"pull_request":{"url":"https://api.github.com/repos/divmain/GitSavvy/pulls/505","id":86095532,"html_url":"https://github.com/divmain/GitSavvy/pull/505","diff_url":"https://github.com/divmain/GitSavvy/pull/505.diff","patch_url":"https://github.com/divmain/GitSavvy/pull/505.patch","issue_url":"https://api.github.com/repos/divmain/GitSavvy/issues/505","number":505,"state":"open","locked":false,"title":"Improve log, log graph and compare against","user":{"login":"randy3k","id":1690993,"avatar_url":"https://avatars.githubusercontent.com/u/1690993?v=3","gravatar_id":"","url":"https://api.github.com/users/randy3k","html_url":"https://github.com/randy3k","followers_url":"https://api.github.com/users/randy3k/followers","following_url":"https://api.github.com/users/randy3k/following{/other_user}","gists_url":"https://api.github.com/users/randy3k/gists{/gist_id}","starred_url":"https://api.github.com/users/randy3k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/randy3k/subscriptions","organizations_url":"https://api.github.com/users/randy3k/orgs","repos_url":"https://api.github.com/users/randy3k/repos","events_url":"https://api.github.com/users/randy3k/events{/privacy}","received_events_url":"https://api.github.com/users/randy3k/received_events","type":"User","site_admin":false},"body":"It is to follow up #486 \r\n\r\nI haven't implemented the `all branches`, `Filtered by commit message regexp` and `Filtered by diff contents` features. However, all other functionalities should be there.\r\n\r\n![untitled](https://cloud.githubusercontent.com/assets/1690993/18697642/2717f97e-7f91-11e6-9d5d-956fec23f03e.gif)\r\n","created_at":"2016-09-21T04:15:21Z","updated_at":"2016-09-22T06:20:59Z","closed_at":null,"merged_at":null,"merge_commit_sha":"99a66b9eded8d4310afd7d0ae8006685fa9d5f06","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/divmain/GitSavvy/pulls/505/commits","review_comments_url":"https://api.github.com/repos/divmain/GitSavvy/pulls/505/comments","review_comment_url":"https://api.github.com/repos/divmain/GitSavvy/pulls/comments{/number}","comments_url":"https://api.github.com/repos/divmain/GitSavvy/issues/505/comments","statuses_url":"https://api.github.com/repos/divmain/GitSavvy/statuses/c89c9433a21679e97d45d9b29f18e19d14849ccd","head":{"label":"randy3k:log","ref":"log","sha":"c89c9433a21679e97d45d9b29f18e19d14849ccd","user":{"login":"randy3k","id":1690993,"avatar_url":"https://avatars.githubusercontent.com/u/1690993?v=3","gravatar_id":"","url":"https://api.github.com/users/randy3k","html_url":"https://github.com/randy3k","followers_url":"https://api.github.com/users/randy3k/followers","following_url":"https://api.github.com/users/randy3k/following{/other_user}","gists_url":"https://api.github.com/users/randy3k/gists{/gist_id}","starred_url":"https://api.github.com/users/randy3k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/randy3k/subscriptions","organizations_url":"https://api.github.com/users/randy3k/orgs","repos_url":"https://api.github.com/users/randy3k/repos","events_url":"https://api.github.com/users/randy3k/events{/privacy}","received_events_url":"https://api.github.com/users/randy3k/received_events","type":"User","site_admin":false},"repo":{"id":63663420,"name":"GitSavvy","full_name":"randy3k/GitSavvy","owner":{"login":"randy3k","id":1690993,"avatar_url":"https://avatars.githubusercontent.com/u/1690993?v=3","gravatar_id":"","url":"https://api.github.com/users/randy3k","html_url":"https://github.com/randy3k","followers_url":"https://api.github.com/users/randy3k/followers","following_url":"https://api.github.com/users/randy3k/following{/other_user}","gists_url":"https://api.github.com/users/randy3k/gists{/gist_id}","starred_url":"https://api.github.com/users/randy3k/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/randy3k/subscriptions","organizations_url":"https://api.github.com/users/randy3k/orgs","repos_url":"https://api.github.com/users/randy3k/repos","events_url":"https://api.github.com/users/randy3k/events{/privacy}","received_events_url":"https://api.github.com/users/randy3k/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/randy3k/GitSavvy","description":"Full git and GitHub integration with Sublime Text 3.","fork":true,"url":"https://api.github.com/repos/randy3k/GitSavvy","forks_url":"https://api.github.com/repos/randy3k/GitSavvy/forks","keys_url":"https://api.github.com/repos/randy3k/GitSavvy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/randy3k/GitSavvy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/randy3k/GitSavvy/teams","hooks_url":"https://api.github.com/repos/randy3k/GitSavvy/hooks","issue_events_url":"https://api.github.com/repos/randy3k/GitSavvy/issues/events{/number}","events_url":"https://api.github.com/repos/randy3k/GitSavvy/events","assignees_url":"https://api.github.com/repos/randy3k/GitSavvy/assignees{/user}","branches_url":"https://api.github.com/repos/randy3k/GitSavvy/branches{/branch}","tags_url":"https://api.github.com/repos/randy3k/GitSavvy/tags","blobs_url":"https://api.github.com/repos/randy3k/GitSavvy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/randy3k/GitSavvy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/randy3k/GitSavvy/git/refs{/sha}","trees_url":"https://api.github.com/repos/randy3k/GitSavvy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/randy3k/GitSavvy/statuses/{sha}","languages_url":"https://api.github.com/repos/randy3k/GitSavvy/languages","stargazers_url":"https://api.github.com/repos/randy3k/GitSavvy/stargazers","contributors_url":"https://api.github.com/repos/randy3k/GitSavvy/contributors","subscribers_url":"https://api.github.com/repos/randy3k/GitSavvy/subscribers","subscription_url":"https://api.github.com/repos/randy3k/GitSavvy/subscription","commits_url":"https://api.github.com/repos/randy3k/GitSavvy/commits{/sha}","git_commits_url":"https://api.github.com/repos/randy3k/GitSavvy/git/commits{/sha}","comments_url":"https://api.github.com/repos/randy3k/GitSavvy/comments{/number}","issue_comment_url":"https://api.github.com/repos/randy3k/GitSavvy/issues/comments{/number}","contents_url":"https://api.github.com/repos/randy3k/GitSavvy/contents/{+path}","compare_url":"https://api.github.com/repos/randy3k/GitSavvy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/randy3k/GitSavvy/merges","archive_url":"https://api.github.com/repos/randy3k/GitSavvy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/randy3k/GitSavvy/downloads","issues_url":"https://api.github.com/repos/randy3k/GitSavvy/issues{/number}","pulls_url":"https://api.github.com/repos/randy3k/GitSavvy/pulls{/number}","milestones_url":"https://api.github.com/repos/randy3k/GitSavvy/milestones{/number}","notifications_url":"https://api.github.com/repos/randy3k/GitSavvy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/randy3k/GitSavvy/labels{/name}","releases_url":"https://api.github.com/repos/randy3k/GitSavvy/releases{/id}","deployments_url":"https://api.github.com/repos/randy3k/GitSavvy/deployments","created_at":"2016-07-19T05:26:09Z","updated_at":"2016-07-19T22:54:10Z","pushed_at":"2016-09-22T05:44:23Z","git_url":"git://github.com/randy3k/GitSavvy.git","ssh_url":"git@github.com:randy3k/GitSavvy.git","clone_url":"https://github.com/randy3k/GitSavvy.git","svn_url":"https://github.com/randy3k/GitSavvy","homepage":"","size":1110,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"divmain:master","ref":"master","sha":"bee6b548b5e66bb85b3bde7f7d740f7be318c5f2","user":{"login":"divmain","id":5016978,"avatar_url":"https://avatars.githubusercontent.com/u/5016978?v=3","gravatar_id":"","url":"https://api.github.com/users/divmain","html_url":"https://github.com/divmain","followers_url":"https://api.github.com/users/divmain/followers","following_url":"https://api.github.com/users/divmain/following{/other_user}","gists_url":"https://api.github.com/users/divmain/gists{/gist_id}","starred_url":"https://api.github.com/users/divmain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/divmain/subscriptions","organizations_url":"https://api.github.com/users/divmain/orgs","repos_url":"https://api.github.com/users/divmain/repos","events_url":"https://api.github.com/users/divmain/events{/privacy}","received_events_url":"https://api.github.com/users/divmain/received_events","type":"User","site_admin":false},"repo":{"id":29417074,"name":"GitSavvy","full_name":"divmain/GitSavvy","owner":{"login":"divmain","id":5016978,"avatar_url":"https://avatars.githubusercontent.com/u/5016978?v=3","gravatar_id":"","url":"https://api.github.com/users/divmain","html_url":"https://github.com/divmain","followers_url":"https://api.github.com/users/divmain/followers","following_url":"https://api.github.com/users/divmain/following{/other_user}","gists_url":"https://api.github.com/users/divmain/gists{/gist_id}","starred_url":"https://api.github.com/users/divmain/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/divmain/subscriptions","organizations_url":"https://api.github.com/users/divmain/orgs","repos_url":"https://api.github.com/users/divmain/repos","events_url":"https://api.github.com/users/divmain/events{/privacy}","received_events_url":"https://api.github.com/users/divmain/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/divmain/GitSavvy","description":"Full git and GitHub integration with Sublime Text 3.","fork":false,"url":"https://api.github.com/repos/divmain/GitSavvy","forks_url":"https://api.github.com/repos/divmain/GitSavvy/forks","keys_url":"https://api.github.com/repos/divmain/GitSavvy/keys{/key_id}","collaborators_url":"https://api.github.com/repos/divmain/GitSavvy/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/divmain/GitSavvy/teams","hooks_url":"https://api.github.com/repos/divmain/GitSavvy/hooks","issue_events_url":"https://api.github.com/repos/divmain/GitSavvy/issues/events{/number}","events_url":"https://api.github.com/repos/divmain/GitSavvy/events","assignees_url":"https://api.github.com/repos/divmain/GitSavvy/assignees{/user}","branches_url":"https://api.github.com/repos/divmain/GitSavvy/branches{/branch}","tags_url":"https://api.github.com/repos/divmain/GitSavvy/tags","blobs_url":"https://api.github.com/repos/divmain/GitSavvy/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/divmain/GitSavvy/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/divmain/GitSavvy/git/refs{/sha}","trees_url":"https://api.github.com/repos/divmain/GitSavvy/git/trees{/sha}","statuses_url":"https://api.github.com/repos/divmain/GitSavvy/statuses/{sha}","languages_url":"https://api.github.com/repos/divmain/GitSavvy/languages","stargazers_url":"https://api.github.com/repos/divmain/GitSavvy/stargazers","contributors_url":"https://api.github.com/repos/divmain/GitSavvy/contributors","subscribers_url":"https://api.github.com/repos/divmain/GitSavvy/subscribers","subscription_url":"https://api.github.com/repos/divmain/GitSavvy/subscription","commits_url":"https://api.github.com/repos/divmain/GitSavvy/commits{/sha}","git_commits_url":"https://api.github.com/repos/divmain/GitSavvy/git/commits{/sha}","comments_url":"https://api.github.com/repos/divmain/GitSavvy/comments{/number}","issue_comment_url":"https://api.github.com/repos/divmain/GitSavvy/issues/comments{/number}","contents_url":"https://api.github.com/repos/divmain/GitSavvy/contents/{+path}","compare_url":"https://api.github.com/repos/divmain/GitSavvy/compare/{base}...{head}","merges_url":"https://api.github.com/repos/divmain/GitSavvy/merges","archive_url":"https://api.github.com/repos/divmain/GitSavvy/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/divmain/GitSavvy/downloads","issues_url":"https://api.github.com/repos/divmain/GitSavvy/issues{/number}","pulls_url":"https://api.github.com/repos/divmain/GitSavvy/pulls{/number}","milestones_url":"https://api.github.com/repos/divmain/GitSavvy/milestones{/number}","notifications_url":"https://api.github.com/repos/divmain/GitSavvy/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/divmain/GitSavvy/labels{/name}","releases_url":"https://api.github.com/repos/divmain/GitSavvy/releases{/id}","deployments_url":"https://api.github.com/repos/divmain/GitSavvy/deployments","created_at":"2015-01-18T05:40:08Z","updated_at":"2016-09-20T19:12:56Z","pushed_at":"2016-09-22T05:44:24Z","git_url":"git://github.com/divmain/GitSavvy.git","ssh_url":"git@github.com:divmain/GitSavvy.git","clone_url":"https://github.com/divmain/GitSavvy.git","svn_url":"https://github.com/divmain/GitSavvy","homepage":"","size":1205,"stargazers_count":1408,"watchers_count":1408,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":90,"mirror_url":null,"open_issues_count":62,"forks":90,"open_issues":62,"watchers":1408,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/divmain/GitSavvy/pulls/505"},"html":{"href":"https://github.com/divmain/GitSavvy/pull/505"},"issue":{"href":"https://api.github.com/repos/divmain/GitSavvy/issues/505"},"comments":{"href":"https://api.github.com/repos/divmain/GitSavvy/issues/505/comments"},"review_comments":{"href":"https://api.github.com/repos/divmain/GitSavvy/pulls/505/comments"},"review_comment":{"href":"https://api.github.com/repos/divmain/GitSavvy/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/divmain/GitSavvy/pulls/505/commits"},"statuses":{"href":"https://api.github.com/repos/divmain/GitSavvy/statuses/c89c9433a21679e97d45d9b29f18e19d14849ccd"}}}}
{"actor":{"display_login":"divmain"}}