{"action":"created","comment":{"url":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/comments/70475515","id":70475515,"diff_hunk":"@@ -0,0 +1,351 @@\n+import os\n+import sys\n+import time\n+import stat\n+import shutil\n+\n+import king_phisher.client.plugins as plugins\n+\n+from gi.repository import Gtk\n+from gi.repository.GdkPixbuf import Pixbuf\n+\n+import boltons.strutils\n+import boltons.timeutils\n+\n+class Plugin(plugins.ClientPlugin):\n+\tauthors = ['Josh Jacob']\n+\ttitle = 'SFTP Client GUI'\n+\tdescription = \"\"\"\n+\tHow many foos could fu foo is fu fooed fu foos on foo.\n+\t\"\"\"\n+\thomepage = 'https://github.com/securestate/king-phisher'\n+\n+\tdef initialize(self):\n+\t\tmodule = sys.modules['king_phisher.client.application']\n+\t\tself.temp = module.KingPhisherClientApplication.do_sftp_client_start\n+\t\tmodule.KingPhisherClientApplication.do_sftp_client_start = self.new_SFTP_signal\n+\t\tsys.modules['king_phisher.client.application'] = module\n+\t\treturn True\n+\n+\tdef _cleanup(self):\n+\t\tmodule = sys.modules['king_phisher.client.application']\n+\t\tmodule.KingPhisherClientApplication.do_sftp_client_start = self.temp\n+\t\tsys.modules['king_phisher.client.application'] = module\n+\n+\tdef new_SFTP_signal(self):\n+\t\tif not self.application._ssh_forwarder:\n+\t\t\tconfig = self.application.config\n+\t\t\tserver = config['server']\n+\t\t\tserver = server.split(':')\n+\t\t\tusername = config['server_username']\n+\t\t\tpassword = config['server_password']\n+\t\t\tself.application._create_ssh_forwarder(server, username, password)\n+\t\tconnection = self.application._ssh_forwarder\n+\t\tssh = connection.client\n+\t\tftp = ssh.open_sftp()\n+\n+\t\ttarget_file = os.path.splitext(__file__)[0]\n+\t\tbuilder = Gtk.Builder()\n+\t\tbuilder.add_from_file(target_file + '.ui')\n+\t\tself.window = builder.get_object('SFTPClientGUI.window')\n+\t\tmanager = FileManager(builder, self.application, ftp)  #pylint: disable=unused-variable\n+\t\tself.window.show_all()\n+\n+class Logger(object):\n+\tdef __init__(self, builder, *args, **kwargs):\n+\t\tself.builder = builder\n+\t\tself.scroll = self.builder.get_object('scrolledwindow2')\n+\t\tself.treeview_transfer = self.builder.get_object('SFTPClientGUI.treeview_transfer')\n+\t\tself.progress_bar = self.builder.get_object('SFTPClientGUI.progressbar')\n+\t\tself.label_file = self.builder.get_object('SFTPClientGUI.label')\n+\t\tcol = Gtk.TreeViewColumn('Transfer')\n+\t\tcolText = Gtk.CellRendererText()\n+\t\tcol.pack_start(colText, True)\n+\t\tcol.add_attribute(colText, \"text\", 0)\n+\t\tself.treeview_transfer.append_column(col)\n+\t\tself._tvmodel = Gtk.ListStore(str)\n+\t\tself.treeview_transfer.connect('size-allocate', self._treeview_changed)\n+\t\tself.treeview_transfer.set_model(self._tvmodel)\n+\t\tself.treeview_transfer.connect('button_press_event', self._signal_treeview_button_pressed)\n+\n+\t\tself.popup_menu = Gtk.Menu.new()\n+\t\tmenu_item = Gtk.MenuItem.new_with_label('Clear')\n+\t\tmenu_item.connect('activate', self.clear_log)\n+\t\tself.popup_menu.append(menu_item)\n+\t\tself.popup_menu.show_all()\n+\n+\tdef _signal_treeview_button_pressed(self, _, event):\n+\t\tif event.button == 3:\n+\t\t\tself.popup_menu.popup(None, None, None, None, event.button, Gtk.get_current_event_time())\n+\t\t\treturn True\n+\t\treturn\n+\n+\tdef log_generic(self, string):\n+\t\tself._tvmodel.prepend((string,))\n+\n+\tdef clear_log(self, _):\n+\t\tself._tvmodel.clear()\n+\n+\tdef _treeview_changed(self, widget, event, data=None):\n+\t\tadj = self.scroll.get_vadjustment()\n+\t\tadj.set_value(0)\n+\n+\tdef log_transfer_upload(self, path, size, isFolder, error=False):\n+\t\tif error:\n+\t\t\tstring = 'Error uploading ' + path\n+\t\t\tself._tvmodel.prepend((string,))\n+\t\telif isFolder:\n+\t\t\tstring = 'Uploading folder ' + path + ' and all its children...'\n+\t\t\tself._tvmodel.prepend((string,))\n+\t\telse:\n+\t\t\tstring = 'Uploading ' + path\n+\t\t\tself._tvmodel.prepend((string,))\n+\n+class DirectoryBase(object):\n+\tdef __init__(self, treeview, logger):\n+\t\tcol = Gtk.TreeViewColumn(\"Files\")\n+\t\tself.logger = logger\n+\t\tself.treeview_local = treeview\n+\t\tcolText = Gtk.CellRendererText()\n+\t\tcolImg = Gtk.CellRendererPixbuf()\n+\t\tcol.pack_start(colImg, False)\n+\t\tcol.pack_start(colText, True)\n+\t\tcol.add_attribute(colText, \"text\", 0)\n+\t\tcol.add_attribute(colImg, \"pixbuf\", 1)\n+\t\tcol.set_sort_column_id(0)\n+\t\tcol_perm = Gtk.TreeViewColumn(\"Permissions\")\n+\t\tcol_perm.pack_start(colText, True)\n+\t\tcol_perm.add_attribute(colText, \"text\", 3)\n+\t\tcol_size = Gtk.TreeViewColumn(\"Size\")\n+\t\tcol_size.pack_start(colText, True)\n+\t\tcol_size.add_attribute(colText, \"text\", 4)\n+\t\tcol_size.set_sort_column_id(5)\n+\t\tcol_date = Gtk.TreeViewColumn(\"Date Modified\")\n+\t\tcol_date.pack_start(colText, True)\n+\t\tcol_date.add_attribute(colText, \"text\", 6)\n+\t\tcol_date.set_sort_column_id(6)\n+\t\tself.treeview_local.append_column(col)\n+\t\tself.treeview_local.append_column(col_perm)\n+\t\tself.treeview_local.append_column(col_size)\n+\t\tself.treeview_local.append_column(col_date)\n+\n+\t\tself.treeview_local.connect('row-expanded', self.expand_row)\n+\t\tself.treeview_local.connect('row-collapsed', self.collapse_row)\n+\t\tself._tvmodel = Gtk.TreeStore(str, Pixbuf, str, str, str, int, str)\n+\n+\t\tself.local_hidden = True\n+\t\tself.treeview_local.connect('button_press_event', self._signal_treeview_button_pressed)\n+\n+\t\tself.popup_menu = Gtk.Menu.new()\n+\t\tmenu_item = Gtk.CheckMenuItem.new_with_label('Show Hidden Files')\n+\t\tmenu_item.connect('toggled', self.hidden_files)\n+\t\tself.hidden_files = menu_item\n+\t\tself.popup_menu.append(menu_item)\n+\n+\t\tmenu_item = Gtk.MenuItem.new_with_label('Delete')\n+\t\tmenu_item.connect('activate', self.delete_prompt)\n+\t\tself.popup_menu.append(menu_item)\n+\t\tself.popup_menu.show_all()\n+\n+\tdef _signal_treeview_button_pressed(self, _, event):\n+\t\tif event.button == 3:","path":"client/SFTPClientGUI/SFTPClientGUI.py","position":78,"original_position":151,"commit_id":"759159e3efe3173029b18d6ae772f43d7f9b0a1a","original_commit_id":"759159e3efe3173029b18d6ae772f43d7f9b0a1a","user":{"login":"zeroSteiner","id":2058303,"avatar_url":"https://avatars.githubusercontent.com/u/2058303?v=3","gravatar_id":"","url":"https://api.github.com/users/zeroSteiner","html_url":"https://github.com/zeroSteiner","followers_url":"https://api.github.com/users/zeroSteiner/followers","following_url":"https://api.github.com/users/zeroSteiner/following{/other_user}","gists_url":"https://api.github.com/users/zeroSteiner/gists{/gist_id}","starred_url":"https://api.github.com/users/zeroSteiner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zeroSteiner/subscriptions","organizations_url":"https://api.github.com/users/zeroSteiner/orgs","repos_url":"https://api.github.com/users/zeroSteiner/repos","events_url":"https://api.github.com/users/zeroSteiner/events{/privacy}","received_events_url":"https://api.github.com/users/zeroSteiner/received_events","type":"User","site_admin":false},"body":"This should be a Gdk constant instead of 3.","created_at":"2016-07-12T16:48:15Z","updated_at":"2016-07-12T16:48:15Z","html_url":"https://github.com/securestate/king-phisher-plugins/pull/2#discussion_r70475515","pull_request_url":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/2","_links":{"self":{"href":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/comments/70475515"},"html":{"href":"https://github.com/securestate/king-phisher-plugins/pull/2#discussion_r70475515"},"pull_request":{"href":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/2"}}},"pull_request":{"url":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/2","id":76990668,"html_url":"https://github.com/securestate/king-phisher-plugins/pull/2","diff_url":"https://github.com/securestate/king-phisher-plugins/pull/2.diff","patch_url":"https://github.com/securestate/king-phisher-plugins/pull/2.patch","issue_url":"https://api.github.com/repos/securestate/king-phisher-plugins/issues/2","number":2,"state":"open","locked":false,"title":"SFTP Client GUI Milestone #1","user":{"login":"jacobj10","id":14262055,"avatar_url":"https://avatars.githubusercontent.com/u/14262055?v=3","gravatar_id":"","url":"https://api.github.com/users/jacobj10","html_url":"https://github.com/jacobj10","followers_url":"https://api.github.com/users/jacobj10/followers","following_url":"https://api.github.com/users/jacobj10/following{/other_user}","gists_url":"https://api.github.com/users/jacobj10/gists{/gist_id}","starred_url":"https://api.github.com/users/jacobj10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacobj10/subscriptions","organizations_url":"https://api.github.com/users/jacobj10/orgs","repos_url":"https://api.github.com/users/jacobj10/repos","events_url":"https://api.github.com/users/jacobj10/events{/privacy}","received_events_url":"https://api.github.com/users/jacobj10/received_events","type":"User","site_admin":false},"body":"Features:\r\nLoad and render local filesystem\r\nLoad and render remote filesystem\r\nBoth filesystems can be sorted\r\nError handling for restricted folders/files\r\nHide and show hidden files on both\r\nLogger the documents mock \"uploads\"\r\nPlugin can be unselected and FileZilla will take its place *This feature is very volatile*\r\n","created_at":"2016-07-11T17:18:51Z","updated_at":"2016-07-12T16:48:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"93a73a7021248a246fb094843d9adc674f72b442","assignee":{"login":"zeroSteiner","id":2058303,"avatar_url":"https://avatars.githubusercontent.com/u/2058303?v=3","gravatar_id":"","url":"https://api.github.com/users/zeroSteiner","html_url":"https://github.com/zeroSteiner","followers_url":"https://api.github.com/users/zeroSteiner/followers","following_url":"https://api.github.com/users/zeroSteiner/following{/other_user}","gists_url":"https://api.github.com/users/zeroSteiner/gists{/gist_id}","starred_url":"https://api.github.com/users/zeroSteiner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zeroSteiner/subscriptions","organizations_url":"https://api.github.com/users/zeroSteiner/orgs","repos_url":"https://api.github.com/users/zeroSteiner/repos","events_url":"https://api.github.com/users/zeroSteiner/events{/privacy}","received_events_url":"https://api.github.com/users/zeroSteiner/received_events","type":"User","site_admin":false},"assignees":[{"login":"zeroSteiner","id":2058303,"avatar_url":"https://avatars.githubusercontent.com/u/2058303?v=3","gravatar_id":"","url":"https://api.github.com/users/zeroSteiner","html_url":"https://github.com/zeroSteiner","followers_url":"https://api.github.com/users/zeroSteiner/followers","following_url":"https://api.github.com/users/zeroSteiner/following{/other_user}","gists_url":"https://api.github.com/users/zeroSteiner/gists{/gist_id}","starred_url":"https://api.github.com/users/zeroSteiner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/zeroSteiner/subscriptions","organizations_url":"https://api.github.com/users/zeroSteiner/orgs","repos_url":"https://api.github.com/users/zeroSteiner/repos","events_url":"https://api.github.com/users/zeroSteiner/events{/privacy}","received_events_url":"https://api.github.com/users/zeroSteiner/received_events","type":"User","site_admin":false}],"milestone":null,"commits_url":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/2/commits","review_comments_url":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/2/comments","review_comment_url":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/comments{/number}","comments_url":"https://api.github.com/repos/securestate/king-phisher-plugins/issues/2/comments","statuses_url":"https://api.github.com/repos/securestate/king-phisher-plugins/statuses/759159e3efe3173029b18d6ae772f43d7f9b0a1a","head":{"label":"jacobj10:master","ref":"master","sha":"759159e3efe3173029b18d6ae772f43d7f9b0a1a","user":{"login":"jacobj10","id":14262055,"avatar_url":"https://avatars.githubusercontent.com/u/14262055?v=3","gravatar_id":"","url":"https://api.github.com/users/jacobj10","html_url":"https://github.com/jacobj10","followers_url":"https://api.github.com/users/jacobj10/followers","following_url":"https://api.github.com/users/jacobj10/following{/other_user}","gists_url":"https://api.github.com/users/jacobj10/gists{/gist_id}","starred_url":"https://api.github.com/users/jacobj10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacobj10/subscriptions","organizations_url":"https://api.github.com/users/jacobj10/orgs","repos_url":"https://api.github.com/users/jacobj10/repos","events_url":"https://api.github.com/users/jacobj10/events{/privacy}","received_events_url":"https://api.github.com/users/jacobj10/received_events","type":"User","site_admin":false},"repo":{"id":62893918,"name":"king-phisher-plugins","full_name":"jacobj10/king-phisher-plugins","owner":{"login":"jacobj10","id":14262055,"avatar_url":"https://avatars.githubusercontent.com/u/14262055?v=3","gravatar_id":"","url":"https://api.github.com/users/jacobj10","html_url":"https://github.com/jacobj10","followers_url":"https://api.github.com/users/jacobj10/followers","following_url":"https://api.github.com/users/jacobj10/following{/other_user}","gists_url":"https://api.github.com/users/jacobj10/gists{/gist_id}","starred_url":"https://api.github.com/users/jacobj10/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jacobj10/subscriptions","organizations_url":"https://api.github.com/users/jacobj10/orgs","repos_url":"https://api.github.com/users/jacobj10/repos","events_url":"https://api.github.com/users/jacobj10/events{/privacy}","received_events_url":"https://api.github.com/users/jacobj10/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/jacobj10/king-phisher-plugins","description":"Plugins for the King Phisher open source phishing campaign toolkit.","fork":true,"url":"https://api.github.com/repos/jacobj10/king-phisher-plugins","forks_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/forks","keys_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/teams","hooks_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/hooks","issue_events_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/issues/events{/number}","events_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/events","assignees_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/assignees{/user}","branches_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/branches{/branch}","tags_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/tags","blobs_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/git/refs{/sha}","trees_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/statuses/{sha}","languages_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/languages","stargazers_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/stargazers","contributors_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/contributors","subscribers_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/subscribers","subscription_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/subscription","commits_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/commits{/sha}","git_commits_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/git/commits{/sha}","comments_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/comments{/number}","issue_comment_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/issues/comments{/number}","contents_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/contents/{+path}","compare_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/merges","archive_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/downloads","issues_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/issues{/number}","pulls_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/pulls{/number}","milestones_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/milestones{/number}","notifications_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/labels{/name}","releases_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/releases{/id}","deployments_url":"https://api.github.com/repos/jacobj10/king-phisher-plugins/deployments","created_at":"2016-07-08T14:17:23Z","updated_at":"2016-07-08T14:17:23Z","pushed_at":"2016-07-12T15:26:30Z","git_url":"git://github.com/jacobj10/king-phisher-plugins.git","ssh_url":"git@github.com:jacobj10/king-phisher-plugins.git","clone_url":"https://github.com/jacobj10/king-phisher-plugins.git","svn_url":"https://github.com/jacobj10/king-phisher-plugins","homepage":null,"size":18,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"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":"securestate:sftp","ref":"sftp","sha":"32b31c9dd1913edc7ae86cfe4dcd31dc8183d8e9","user":{"login":"securestate","id":3228981,"avatar_url":"https://avatars.githubusercontent.com/u/3228981?v=3","gravatar_id":"","url":"https://api.github.com/users/securestate","html_url":"https://github.com/securestate","followers_url":"https://api.github.com/users/securestate/followers","following_url":"https://api.github.com/users/securestate/following{/other_user}","gists_url":"https://api.github.com/users/securestate/gists{/gist_id}","starred_url":"https://api.github.com/users/securestate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/securestate/subscriptions","organizations_url":"https://api.github.com/users/securestate/orgs","repos_url":"https://api.github.com/users/securestate/repos","events_url":"https://api.github.com/users/securestate/events{/privacy}","received_events_url":"https://api.github.com/users/securestate/received_events","type":"Organization","site_admin":false},"repo":{"id":57471284,"name":"king-phisher-plugins","full_name":"securestate/king-phisher-plugins","owner":{"login":"securestate","id":3228981,"avatar_url":"https://avatars.githubusercontent.com/u/3228981?v=3","gravatar_id":"","url":"https://api.github.com/users/securestate","html_url":"https://github.com/securestate","followers_url":"https://api.github.com/users/securestate/followers","following_url":"https://api.github.com/users/securestate/following{/other_user}","gists_url":"https://api.github.com/users/securestate/gists{/gist_id}","starred_url":"https://api.github.com/users/securestate/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/securestate/subscriptions","organizations_url":"https://api.github.com/users/securestate/orgs","repos_url":"https://api.github.com/users/securestate/repos","events_url":"https://api.github.com/users/securestate/events{/privacy}","received_events_url":"https://api.github.com/users/securestate/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/securestate/king-phisher-plugins","description":"Plugins for the King Phisher open source phishing campaign toolkit.","fork":false,"url":"https://api.github.com/repos/securestate/king-phisher-plugins","forks_url":"https://api.github.com/repos/securestate/king-phisher-plugins/forks","keys_url":"https://api.github.com/repos/securestate/king-phisher-plugins/keys{/key_id}","collaborators_url":"https://api.github.com/repos/securestate/king-phisher-plugins/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/securestate/king-phisher-plugins/teams","hooks_url":"https://api.github.com/repos/securestate/king-phisher-plugins/hooks","issue_events_url":"https://api.github.com/repos/securestate/king-phisher-plugins/issues/events{/number}","events_url":"https://api.github.com/repos/securestate/king-phisher-plugins/events","assignees_url":"https://api.github.com/repos/securestate/king-phisher-plugins/assignees{/user}","branches_url":"https://api.github.com/repos/securestate/king-phisher-plugins/branches{/branch}","tags_url":"https://api.github.com/repos/securestate/king-phisher-plugins/tags","blobs_url":"https://api.github.com/repos/securestate/king-phisher-plugins/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/securestate/king-phisher-plugins/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/securestate/king-phisher-plugins/git/refs{/sha}","trees_url":"https://api.github.com/repos/securestate/king-phisher-plugins/git/trees{/sha}","statuses_url":"https://api.github.com/repos/securestate/king-phisher-plugins/statuses/{sha}","languages_url":"https://api.github.com/repos/securestate/king-phisher-plugins/languages","stargazers_url":"https://api.github.com/repos/securestate/king-phisher-plugins/stargazers","contributors_url":"https://api.github.com/repos/securestate/king-phisher-plugins/contributors","subscribers_url":"https://api.github.com/repos/securestate/king-phisher-plugins/subscribers","subscription_url":"https://api.github.com/repos/securestate/king-phisher-plugins/subscription","commits_url":"https://api.github.com/repos/securestate/king-phisher-plugins/commits{/sha}","git_commits_url":"https://api.github.com/repos/securestate/king-phisher-plugins/git/commits{/sha}","comments_url":"https://api.github.com/repos/securestate/king-phisher-plugins/comments{/number}","issue_comment_url":"https://api.github.com/repos/securestate/king-phisher-plugins/issues/comments{/number}","contents_url":"https://api.github.com/repos/securestate/king-phisher-plugins/contents/{+path}","compare_url":"https://api.github.com/repos/securestate/king-phisher-plugins/compare/{base}...{head}","merges_url":"https://api.github.com/repos/securestate/king-phisher-plugins/merges","archive_url":"https://api.github.com/repos/securestate/king-phisher-plugins/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/securestate/king-phisher-plugins/downloads","issues_url":"https://api.github.com/repos/securestate/king-phisher-plugins/issues{/number}","pulls_url":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls{/number}","milestones_url":"https://api.github.com/repos/securestate/king-phisher-plugins/milestones{/number}","notifications_url":"https://api.github.com/repos/securestate/king-phisher-plugins/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/securestate/king-phisher-plugins/labels{/name}","releases_url":"https://api.github.com/repos/securestate/king-phisher-plugins/releases{/id}","deployments_url":"https://api.github.com/repos/securestate/king-phisher-plugins/deployments","created_at":"2016-05-01T02:59:12Z","updated_at":"2016-05-18T03:27:38Z","pushed_at":"2016-07-12T15:26:31Z","git_url":"git://github.com/securestate/king-phisher-plugins.git","ssh_url":"git@github.com:securestate/king-phisher-plugins.git","clone_url":"https://github.com/securestate/king-phisher-plugins.git","svn_url":"https://github.com/securestate/king-phisher-plugins","homepage":null,"size":15,"stargazers_count":2,"watchers_count":2,"language":"Python","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":3,"mirror_url":null,"open_issues_count":1,"forks":3,"open_issues":1,"watchers":2,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/2"},"html":{"href":"https://github.com/securestate/king-phisher-plugins/pull/2"},"issue":{"href":"https://api.github.com/repos/securestate/king-phisher-plugins/issues/2"},"comments":{"href":"https://api.github.com/repos/securestate/king-phisher-plugins/issues/2/comments"},"review_comments":{"href":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/2/comments"},"review_comment":{"href":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/securestate/king-phisher-plugins/pulls/2/commits"},"statuses":{"href":"https://api.github.com/repos/securestate/king-phisher-plugins/statuses/759159e3efe3173029b18d6ae772f43d7f9b0a1a"}}}}
{"actor":{"display_login":"zeroSteiner"}}