{"action":"created","comment":{"url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/comments/206614861","pull_request_review_id":142061241,"id":206614861,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNjYxNDg2MQ==","diff_hunk":"@@ -0,0 +1,373 @@\n+from dxlvtapiclient import VirusTotalApiClient\n+from tests.test_base import BaseClientTest\n+from tests.test_value_constants import *\n+from tests.mock_vtservice import MockVtService\n+\n+\n+class TestRunCommand(BaseClientTest):\n+\n+    def test_invoke_service(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+\n+                result = vt_client._invoke_service(\n+                    req_dict={'serve': 'ping'},\n+                    topic=MockVtService.mockvt_basic_test_topic\n+                )\n+\n+                self.assertDictEqual(result, BASIC_SERVICE_RESPONSE)\n+\n+            dxl_client.disconnect()\n+\n+\n+    def test_domainreport(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+\n+                result = vt_client.domain_report(SAMPLE_DOMAIN)\n+\n+                self.assertDictEqual(result, SAMPLE_DOMAIN_REPORT)\n+\n+            dxl_client.disconnect()\n+\n+\n+    def test_filereport(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+\n+                result = vt_client.file_report(SAMPLE_FILE)\n+\n+                self.assertDictEqual(result, SAMPLE_FILE_REPORT)\n+\n+            dxl_client.disconnect()\n+\n+\n+    def test_filereport_params(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+\n+                result = vt_client.file_report(\n+                    SAMPLE_FILE,\n+                    all_info=\"Anything\"\n+                )\n+\n+                self.assertTrue(\n+                    result[RECEIVED_PARAMS_KEY][VirusTotalApiClient._PARAM_ALLINFO]\n+                )\n+\n+                self.assertDictEqual(result, SAMPLE_FILE_REPORT)\n+\n+            dxl_client.disconnect()\n+\n+\n+    def test_filerescan(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+\n+                result = vt_client.file_rescan(SAMPLE_FILE)\n+\n+                self.assertDictEqual(result, SAMPLE_FILE_RESCAN)\n+\n+            dxl_client.disconnect()\n+\n+\n+    def test_filerescan_params(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+\n+                sample_period = \"Sample Period\"\n+                sample_repeat = \"Sample Repeat\"\n+                sample_notifyurl = \"http://www.notifyurl.com\"\n+\n+                result = vt_client.file_rescan(\n+                    SAMPLE_FILE,\n+                    date=SAMPLE_DATE,\n+                    period=sample_period,\n+                    repeat=sample_repeat,\n+                    notify_url=sample_notifyurl,\n+                    notify_changes_only=\"Anything\"\n+                )\n+\n+                self.assertEqual(\n+                    result[RECEIVED_PARAMS_KEY][VirusTotalApiClient._PARAM_DATE],\n+                    SAMPLE_DATE.strftime(\"%Y%m%d%H%M%S\")\n+                )\n+                self.assertEqual(\n+                    result[RECEIVED_PARAMS_KEY][VirusTotalApiClient._PARAM_PERIOD],\n+                    sample_period\n+                )\n+                self.assertEqual(\n+                    result[RECEIVED_PARAMS_KEY][VirusTotalApiClient._PARAM_REPEAT],\n+                    sample_repeat\n+                )\n+                self.assertEqual(\n+                    result[RECEIVED_PARAMS_KEY][VirusTotalApiClient._PARAM_NOTIFY_URL],\n+                    sample_notifyurl\n+                )\n+                self.assertTrue(\n+                    result[RECEIVED_PARAMS_KEY][VirusTotalApiClient._PARAM_NOTIFY_CHANGES_ONLY]\n+                )\n+\n+                self.assertDictEqual(result, SAMPLE_FILE_RESCAN)\n+\n+\n+            dxl_client.disconnect()\n+\n+\n+    def test_ipreport(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+\n+                result = vt_client.ip_report(SAMPLE_IP)\n+\n+                self.assertDictEqual(result, SAMPLE_IP_ADDRESS_REPORT)\n+\n+            dxl_client.disconnect()\n+\n+\n+    def test_urlreport(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+                result = vt_client.url_report(SAMPLE_URL)\n+\n+                self.assertDictEqual(result, SAMPLE_URL_REPORT)\n+\n+            dxl_client.disconnect()\n+\n+\n+    def test_urlreport_params(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+                result = vt_client.url_report(\n+                    SAMPLE_URL,\n+                    scan=\"Anything\",\n+                    all_info=\"Anything\"\n+                )\n+\n+                self.assertTrue(\n+                    result[RECEIVED_PARAMS_KEY][VirusTotalApiClient._PARAM_SCAN]\n+                )\n+\n+                self.assertTrue(\n+                    result[RECEIVED_PARAMS_KEY][VirusTotalApiClient._PARAM_ALLINFO]\n+                )\n+\n+                self.assertDictEqual(result, SAMPLE_URL_REPORT)\n+\n+            dxl_client.disconnect()\n+\n+\n+    def test_urlscan(self):\n+        with self.create_client(max_retries=0) as dxl_client:\n+            # Set up client, and register mock service\n+            vt_client = VirusTotalApiClient(dxl_client)\n+            dxl_client.connect()\n+\n+            with MockVtService(dxl_client):\n+\n+                result = vt_client.url_scan(SAMPLE_URL)\n+\n+                self.assertDictEqual(result, SAMPLE_URL_SCAN)\n+\n+            dxl_client.disconnect()\n+\n+\n+class TestAddParams(BaseClientTest):\n+    def test_addparam_date(self):\n+        sample_dict = {'date': None}\n+        sample_date = SAMPLE_DATE\n+        VirusTotalApiClient._add_date_param(sample_dict, sample_date)\n+\n+        self.assertEqual(\n+            sample_dict['date'],\n+            sample_date.strftime(\"%Y%m%d%H%M%S\")\n+        )\n+\n+\n+    def test_addparam_url(self):\n+        sample_dict = {'test': \"\"}\n+        test_url = 'http://www.test.com'\n+        VirusTotalApiClient._add_url_param(sample_dict, test_url, 'test')\n+        self.assertEqual(sample_dict['test'], test_url)\n+\n+        test_url_list = [\n+            'http://www.verify.com',\n+            'http://www.evaluate.com',\n+            'http://www.examine.com'\n+        ]\n+\n+        VirusTotalApiClient._add_url_param(sample_dict, test_url_list, 'test')\n+        for url in test_url_list:\n+            self.assertIn(url, sample_dict['test'])\n+\n+\n+    def test_addparam_allinfo(self):\n+        sample_dict = {'test': None}\n+\n+        VirusTotalApiClient._add_all_info_param(\n+            sample_dict,\n+            \"Anything\",\n+        )\n+        self.assertEqual(sample_dict[VirusTotalApiClient._PARAM_ALLINFO], \"1\")\n+\n+\n+    def test_addparam_notifychangesonly(self):\n+        sample_dict = {'test': None}\n+\n+        VirusTotalApiClient._add_notify_changes_only_param(\n+            sample_dict,\n+            \"Anything\",\n+        )\n+        self.assertEqual(sample_dict[VirusTotalApiClient._PARAM_NOTIFY_CHANGES_ONLY], \"1\")\n+\n+\n+    def test_addparam_period(self):\n+        sample_dict = {'test': None}\n+\n+        test_period = \"Test Period\"\n+\n+        VirusTotalApiClient._add_period_param(\n+            sample_dict,\n+            test_period\n+        )\n+        self.assertEqual(sample_dict[VirusTotalApiClient._PARAM_PERIOD], test_period)\n+\n+\n+    def test_addparam_repeat(self):\n+        sample_dict = {'test': None}\n+\n+        test_repeat = \"Test Repeat\"\n+\n+        VirusTotalApiClient._add_repeat_param(\n+            sample_dict,\n+            test_repeat\n+        )\n+        self.assertEqual(sample_dict[VirusTotalApiClient._PARAM_REPEAT], test_repeat)\n+\n+\n+    def test_addparam_notifyurl(self):\n+        sample_dict = {'test': None}\n+\n+        test_notify_url = \"http://www.notifyurl.com\"\n+\n+        VirusTotalApiClient._add_notify_url_param(\n+            sample_dict,\n+            test_notify_url\n+        )\n+        self.assertEqual(sample_dict[VirusTotalApiClient._PARAM_NOTIFY_URL], test_notify_url)\n+\n+\n+    def test_addparam_scan(self):\n+        sample_dict = {'test': None}\n+\n+        VirusTotalApiClient._add_scan_param(\n+            sample_dict,\n+            \"Anything\",\n+        )\n+        self.assertTrue(sample_dict[VirusTotalApiClient._PARAM_SCAN])\n+\n+\n+    def test_addparam_domain(self):\n+        sample_dict = {'test': None}\n+\n+        test_domain = \"testdomain.com\"\n+\n+        VirusTotalApiClient._add_domain_param(\n+            sample_dict,\n+            test_domain\n+        )\n+        self.assertEqual(sample_dict[VirusTotalApiClient._PARAM_DOMAIN], test_domain)\n+\n+\n+    def test_addparambyname_date(self):\n+        sample_dict = {'date': None}\n+        sample_date = SAMPLE_DATE\n+        VirusTotalApiClient._add_date_param_by_name(sample_dict, 'date', sample_date)\n+\n+        self.assertEqual(\n+            sample_dict['date'],\n+            sample_date.strftime(\"%Y%m%d%H%M%S\")\n+        )\n+\n+\n+    def test_addparambyname_bool_dne(self):\n+        sample_dict = {'test': None}\n+        VirusTotalApiClient._add_boolean_param_by_name(sample_dict, 'does_not_exist', False)\n+        with self.assertRaises(KeyError):\n+            print(sample_dict['does_not_exist']) #pylint: disable=superfluous-parens\n+\n+\n+    def test_addparambyname_boolfalse(self):\n+        sample_dict = {'test': None}\n+        VirusTotalApiClient._add_boolean_param_by_name(sample_dict, 'test', False)\n+        self.assertIsNone(sample_dict['test'])\n+\n+\n+    def test_addparambyname_bool(self):\n+        sample_dict = {'test': None}\n+        VirusTotalApiClient._add_boolean_param_by_name(sample_dict, 'test', True)\n+        self.assertEqual(sample_dict['test'], \"1\")\n+\n+\n+    def test_addparambyname_string_dne(self):\n+        sample_dict = {'test': None}\n+        VirusTotalApiClient._add_string_param_by_name(sample_dict, 'does_not_exist', None)\n+        with self.assertRaises(KeyError):\n+            print(sample_dict['does_not_exist']) #pylint: disable=superfluous-parens","path":"tests/test_client.py","position":352,"original_position":352,"commit_id":"ad6b1a65a624682b8c96c51218762b201d01fe1f","original_commit_id":"ad6b1a65a624682b8c96c51218762b201d01fe1f","user":{"login":"ndcolter-mcafee","id":26726513,"node_id":"MDQ6VXNlcjI2NzI2NTEz","avatar_url":"https://avatars2.githubusercontent.com/u/26726513?v=4","gravatar_id":"","url":"https://api.github.com/users/ndcolter-mcafee","html_url":"https://github.com/ndcolter-mcafee","followers_url":"https://api.github.com/users/ndcolter-mcafee/followers","following_url":"https://api.github.com/users/ndcolter-mcafee/following{/other_user}","gists_url":"https://api.github.com/users/ndcolter-mcafee/gists{/gist_id}","starred_url":"https://api.github.com/users/ndcolter-mcafee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ndcolter-mcafee/subscriptions","organizations_url":"https://api.github.com/users/ndcolter-mcafee/orgs","repos_url":"https://api.github.com/users/ndcolter-mcafee/repos","events_url":"https://api.github.com/users/ndcolter-mcafee/events{/privacy}","received_events_url":"https://api.github.com/users/ndcolter-mcafee/received_events","type":"User","site_admin":false},"body":"I just wanted a simple way to force Python to try to reference a key which should not be present in the dictionary without something like an assignment. However, I can change it to simply be a reference statement that does nothing other than try to read the key (and tell pylint to ignore it).","created_at":"2018-07-31T17:25:20Z","updated_at":"2018-07-31T17:25:20Z","html_url":"https://github.com/opendxl/opendxl-virustotal-client-python/pull/5#discussion_r206614861","pull_request_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/5","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/comments/206614861"},"html":{"href":"https://github.com/opendxl/opendxl-virustotal-client-python/pull/5#discussion_r206614861"},"pull_request":{"href":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/5"}},"in_reply_to_id":206302850},"pull_request":{"url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/5","id":204291254,"node_id":"MDExOlB1bGxSZXF1ZXN0MjA0MjkxMjU0","html_url":"https://github.com/opendxl/opendxl-virustotal-client-python/pull/5","diff_url":"https://github.com/opendxl/opendxl-virustotal-client-python/pull/5.diff","patch_url":"https://github.com/opendxl/opendxl-virustotal-client-python/pull/5.patch","issue_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/issues/5","number":5,"state":"open","locked":false,"title":"Unit tests","user":{"login":"ndcolter-mcafee","id":26726513,"node_id":"MDQ6VXNlcjI2NzI2NTEz","avatar_url":"https://avatars2.githubusercontent.com/u/26726513?v=4","gravatar_id":"","url":"https://api.github.com/users/ndcolter-mcafee","html_url":"https://github.com/ndcolter-mcafee","followers_url":"https://api.github.com/users/ndcolter-mcafee/followers","following_url":"https://api.github.com/users/ndcolter-mcafee/following{/other_user}","gists_url":"https://api.github.com/users/ndcolter-mcafee/gists{/gist_id}","starred_url":"https://api.github.com/users/ndcolter-mcafee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ndcolter-mcafee/subscriptions","organizations_url":"https://api.github.com/users/ndcolter-mcafee/orgs","repos_url":"https://api.github.com/users/ndcolter-mcafee/repos","events_url":"https://api.github.com/users/ndcolter-mcafee/events{/privacy}","received_events_url":"https://api.github.com/users/ndcolter-mcafee/received_events","type":"User","site_admin":false},"body":"","created_at":"2018-07-26T23:14:07Z","updated_at":"2018-07-31T17:25:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b6da3a0170b398d2b93b8d974d1bf1ed17706110","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/5/commits","review_comments_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/5/comments","review_comment_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/comments{/number}","comments_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/issues/5/comments","statuses_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/statuses/ad6b1a65a624682b8c96c51218762b201d01fe1f","head":{"label":"ndcolter-mcafee:master","ref":"master","sha":"ad6b1a65a624682b8c96c51218762b201d01fe1f","user":{"login":"ndcolter-mcafee","id":26726513,"node_id":"MDQ6VXNlcjI2NzI2NTEz","avatar_url":"https://avatars2.githubusercontent.com/u/26726513?v=4","gravatar_id":"","url":"https://api.github.com/users/ndcolter-mcafee","html_url":"https://github.com/ndcolter-mcafee","followers_url":"https://api.github.com/users/ndcolter-mcafee/followers","following_url":"https://api.github.com/users/ndcolter-mcafee/following{/other_user}","gists_url":"https://api.github.com/users/ndcolter-mcafee/gists{/gist_id}","starred_url":"https://api.github.com/users/ndcolter-mcafee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ndcolter-mcafee/subscriptions","organizations_url":"https://api.github.com/users/ndcolter-mcafee/orgs","repos_url":"https://api.github.com/users/ndcolter-mcafee/repos","events_url":"https://api.github.com/users/ndcolter-mcafee/events{/privacy}","received_events_url":"https://api.github.com/users/ndcolter-mcafee/received_events","type":"User","site_admin":false},"repo":{"id":142500506,"node_id":"MDEwOlJlcG9zaXRvcnkxNDI1MDA1MDY=","name":"opendxl-virustotal-client-python","full_name":"ndcolter-mcafee/opendxl-virustotal-client-python","owner":{"login":"ndcolter-mcafee","id":26726513,"node_id":"MDQ6VXNlcjI2NzI2NTEz","avatar_url":"https://avatars2.githubusercontent.com/u/26726513?v=4","gravatar_id":"","url":"https://api.github.com/users/ndcolter-mcafee","html_url":"https://github.com/ndcolter-mcafee","followers_url":"https://api.github.com/users/ndcolter-mcafee/followers","following_url":"https://api.github.com/users/ndcolter-mcafee/following{/other_user}","gists_url":"https://api.github.com/users/ndcolter-mcafee/gists{/gist_id}","starred_url":"https://api.github.com/users/ndcolter-mcafee/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ndcolter-mcafee/subscriptions","organizations_url":"https://api.github.com/users/ndcolter-mcafee/orgs","repos_url":"https://api.github.com/users/ndcolter-mcafee/repos","events_url":"https://api.github.com/users/ndcolter-mcafee/events{/privacy}","received_events_url":"https://api.github.com/users/ndcolter-mcafee/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/ndcolter-mcafee/opendxl-virustotal-client-python","description":"VirusTotal API client library for use with the OpenDXL Python Client","fork":true,"url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python","forks_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/forks","keys_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/teams","hooks_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/hooks","issue_events_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/issues/events{/number}","events_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/events","assignees_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/assignees{/user}","branches_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/branches{/branch}","tags_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/tags","blobs_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/statuses/{sha}","languages_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/languages","stargazers_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/stargazers","contributors_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/contributors","subscribers_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/subscribers","subscription_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/subscription","commits_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/contents/{+path}","compare_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/merges","archive_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/downloads","issues_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/issues{/number}","pulls_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/pulls{/number}","milestones_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/milestones{/number}","notifications_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/labels{/name}","releases_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/releases{/id}","deployments_url":"https://api.github.com/repos/ndcolter-mcafee/opendxl-virustotal-client-python/deployments","created_at":"2018-07-26T22:32:55Z","updated_at":"2018-07-26T22:35:28Z","pushed_at":"2018-07-26T22:35:26Z","git_url":"git://github.com/ndcolter-mcafee/opendxl-virustotal-client-python.git","ssh_url":"git@github.com:ndcolter-mcafee/opendxl-virustotal-client-python.git","clone_url":"https://github.com/ndcolter-mcafee/opendxl-virustotal-client-python.git","svn_url":"https://github.com/ndcolter-mcafee/opendxl-virustotal-client-python","homepage":"","size":307,"stargazers_count":0,"watchers_count":0,"language":"Python","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"opendxl:master","ref":"master","sha":"68fd5efe6787166a134904683ae66e42cec2c2a0","user":{"login":"opendxl","id":22802768,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyODAyNzY4","avatar_url":"https://avatars1.githubusercontent.com/u/22802768?v=4","gravatar_id":"","url":"https://api.github.com/users/opendxl","html_url":"https://github.com/opendxl","followers_url":"https://api.github.com/users/opendxl/followers","following_url":"https://api.github.com/users/opendxl/following{/other_user}","gists_url":"https://api.github.com/users/opendxl/gists{/gist_id}","starred_url":"https://api.github.com/users/opendxl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opendxl/subscriptions","organizations_url":"https://api.github.com/users/opendxl/orgs","repos_url":"https://api.github.com/users/opendxl/repos","events_url":"https://api.github.com/users/opendxl/events{/privacy}","received_events_url":"https://api.github.com/users/opendxl/received_events","type":"Organization","site_admin":false},"repo":{"id":87976853,"node_id":"MDEwOlJlcG9zaXRvcnk4Nzk3Njg1Mw==","name":"opendxl-virustotal-client-python","full_name":"opendxl/opendxl-virustotal-client-python","owner":{"login":"opendxl","id":22802768,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIyODAyNzY4","avatar_url":"https://avatars1.githubusercontent.com/u/22802768?v=4","gravatar_id":"","url":"https://api.github.com/users/opendxl","html_url":"https://github.com/opendxl","followers_url":"https://api.github.com/users/opendxl/followers","following_url":"https://api.github.com/users/opendxl/following{/other_user}","gists_url":"https://api.github.com/users/opendxl/gists{/gist_id}","starred_url":"https://api.github.com/users/opendxl/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/opendxl/subscriptions","organizations_url":"https://api.github.com/users/opendxl/orgs","repos_url":"https://api.github.com/users/opendxl/repos","events_url":"https://api.github.com/users/opendxl/events{/privacy}","received_events_url":"https://api.github.com/users/opendxl/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/opendxl/opendxl-virustotal-client-python","description":"VirusTotal API client library for use with the OpenDXL Python Client","fork":false,"url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python","forks_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/forks","keys_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/keys{/key_id}","collaborators_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/teams","hooks_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/hooks","issue_events_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/issues/events{/number}","events_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/events","assignees_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/assignees{/user}","branches_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/branches{/branch}","tags_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/tags","blobs_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/git/refs{/sha}","trees_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/git/trees{/sha}","statuses_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/statuses/{sha}","languages_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/languages","stargazers_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/stargazers","contributors_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/contributors","subscribers_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/subscribers","subscription_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/subscription","commits_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/commits{/sha}","git_commits_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/git/commits{/sha}","comments_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/comments{/number}","issue_comment_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/issues/comments{/number}","contents_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/contents/{+path}","compare_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/compare/{base}...{head}","merges_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/merges","archive_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/downloads","issues_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/issues{/number}","pulls_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls{/number}","milestones_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/milestones{/number}","notifications_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/labels{/name}","releases_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/releases{/id}","deployments_url":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/deployments","created_at":"2017-04-11T20:32:38Z","updated_at":"2018-04-30T17:13:38Z","pushed_at":"2018-07-26T23:14:08Z","git_url":"git://github.com/opendxl/opendxl-virustotal-client-python.git","ssh_url":"git@github.com:opendxl/opendxl-virustotal-client-python.git","clone_url":"https://github.com/opendxl/opendxl-virustotal-client-python.git","svn_url":"https://github.com/opendxl/opendxl-virustotal-client-python","homepage":"","size":309,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":2,"mirror_url":null,"archived":false,"open_issues_count":1,"license":{"key":"apache-2.0","name":"Apache License 2.0","spdx_id":"Apache-2.0","url":"https://api.github.com/licenses/apache-2.0","node_id":"MDc6TGljZW5zZTI="},"forks":2,"open_issues":1,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/5"},"html":{"href":"https://github.com/opendxl/opendxl-virustotal-client-python/pull/5"},"issue":{"href":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/issues/5"},"comments":{"href":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/issues/5/comments"},"review_comments":{"href":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/5/comments"},"review_comment":{"href":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/pulls/5/commits"},"statuses":{"href":"https://api.github.com/repos/opendxl/opendxl-virustotal-client-python/statuses/ad6b1a65a624682b8c96c51218762b201d01fe1f"}},"author_association":"NONE"}}
{"actor":{"display_login":"ndcolter-mcafee"}}