{"action":"created","comment":{"url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/comments/235094678","pull_request_review_id":176882157,"id":235094678,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIzNTA5NDY3OA==","diff_hunk":"@@ -900,6 +900,260 @@ def import_ecdsa_privatekey_from_file(filepath, password=None):\n   return key_object\n \n \n+def generate_and_write_spx_keypair(filepath=None, password=None):\n+  \"\"\"\n+  <Purpose>\n+    Generate an SPX keypair, where the encrypted key (using 'password' as\n+    the passphrase) is saved to <'filepath'>.  The public key portion of the\n+    generated SPX key is saved to <'filepath'>.pub.  If the filepath is not\n+    given, the KEYID is used as the filename and the keypair saved to the\n+    current working directory.\n+\n+    The private key is encrypted according to 'cryptography's approach:\n+    \"Encrypt using the best available encryption for a given key's backend.\n+    This is a curated encryption choice and the algorithm may change over\n+    time.\"\n+\n+  <Arguments>\n+    filepath:\n+      The public and private key files are saved to <filepath>.pub and\n+      <filepath>, respectively.  If the filepath is not given, the public and\n+      private keys are saved to the current working directory as <KEYID>.pub\n+      and <KEYID>.  KEYID is the generated key's KEYID.\n+\n+    password:\n+      The password, or passphrase, to encrypt the private portion of the\n+      generated SPX key.  A symmetric encryption key is derived from\n+      'password', so it is not directly used.\n+\n+  <Exceptions>\n+    securesystemslib.exceptions.FormatError, if the arguments are improperly\n+    formatted.\n+\n+    securesystemslib.exceptions.CryptoError, if 'filepath' cannot be encrypted.\n+\n+  <Side Effects>\n+    Writes key files to '<filepath>' and '<filepath>.pub'.\n+\n+  <Returns>\n+    The 'filepath' of the written key.\n+  \"\"\"\n+\n+  # Generate a new SPX key object.\n+  spx_key = securesystemslib.keys.generate_spx_key()\n+\n+  if not filepath:\n+    filepath = os.path.join(os.getcwd(), spx_key['keyid'])\n+\n+  else:\n+    logger.debug('The filepath has been specified.  Not using the key\\'s'\n+        ' KEYID as the default filepath.')\n+\n+  # Does 'filepath' have the correct format?\n+  # Ensure the arguments have the appropriate number of objects and object\n+  # types, and that all dict keys are properly named.\n+  # Raise 'securesystemslib.exceptions.FormatError' if there is a mismatch.\n+  securesystemslib.formats.PATH_SCHEMA.check_match(filepath)\n+\n+  # If the caller does not provide a password argument, prompt for one.\n+  if password is None: # pragma: no cover\n+\n+    # It is safe to specify the full path of 'filepath' in the prompt and not\n+    # worry about leaking sensitive information about the key's location.\n+    # However, care should be taken when including the full path in exceptions\n+    # and log files.\n+    password = get_password('Enter a password for the SPX'\n+        ' key (' + Fore.RED + filepath + Fore.RESET + '): ',\n+        confirm=True)\n+\n+  else:\n+    logger.debug('The password has been specified. Not prompting for one.')\n+\n+  # Does 'password' have the correct format?\n+  securesystemslib.formats.PASSWORD_SCHEMA.check_match(password)\n+\n+  # If the parent directory of filepath does not exist,\n+  # create it (and all its parent directories, if necessary).\n+  securesystemslib.util.ensure_parent_dir(filepath)\n+\n+  # Create a temporary file, write the contents of the public key, and move\n+  # to final destination.\n+  file_object = securesystemslib.util.TempFile()\n+\n+  # Generate the spx public key file contents in metadata format (i.e.,\n+  # does not include the keyid portion).\n+  keytype = spx_key['keytype']\n+  keyval = spx_key['keyval']\n+  scheme = spx_key['scheme']\n+  spxkey_metadata_format = securesystemslib.keys.format_keyval_to_metadata(\n+      keytype, scheme, keyval, private=False)\n+\n+  file_object.write(json.dumps(spxkey_metadata_format).encode('utf-8'))\n+\n+  # Write the public key (i.e., 'public', which is in PEM format) to\n+  # '<filepath>.pub'.  (1) Create a temporary file, (2) write the contents of\n+  # the public key, and (3) move to final destination.\n+  # The temporary file is closed after the final move.\n+  file_object.move(filepath + '.pub')\n+\n+  # Write the encrypted key string, conformant to\n+  # 'securesystemslib.formats.ENCRYPTEDKEY_SCHEMA', to '<filepath>'.\n+  file_object = securesystemslib.util.TempFile()\n+\n+  # Encrypt the private key if 'password' is set.\n+  if len(password):\n+    spx_key = securesystemslib.keys.encrypt_key(spx_key, password)\n+\n+  else:\n+    logger.debug('An empty password was given. '\n+                 'Not encrypting the private key.')\n+    spx_key = json.dumps(spx_key)\n+\n+  # Raise 'securesystemslib.exceptions.CryptoError' if 'spx_key' cannot be\n+  # encrypted.\n+  file_object.write(spx_key.encode('utf-8'))\n+  file_object.move(filepath)\n+\n+  return filepath\n+\n+\n+\n+\n+def import_spx_publickey_from_file(filepath):","path":"securesystemslib/interface.py","position":132,"original_position":132,"commit_id":"33d70bbd4a5639fe33581f30e6c90638a3e28dba","original_commit_id":"33d70bbd4a5639fe33581f30e6c90638a3e28dba","user":{"login":"awwad","id":13263928,"node_id":"MDQ6VXNlcjEzMjYzOTI4","avatar_url":"https://avatars3.githubusercontent.com/u/13263928?v=4","gravatar_id":"","url":"https://api.github.com/users/awwad","html_url":"https://github.com/awwad","followers_url":"https://api.github.com/users/awwad/followers","following_url":"https://api.github.com/users/awwad/following{/other_user}","gists_url":"https://api.github.com/users/awwad/gists{/gist_id}","starred_url":"https://api.github.com/users/awwad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awwad/subscriptions","organizations_url":"https://api.github.com/users/awwad/orgs","repos_url":"https://api.github.com/users/awwad/repos","events_url":"https://api.github.com/users/awwad/events{/privacy}","received_events_url":"https://api.github.com/users/awwad/received_events","type":"User","site_admin":false},"body":"Not necessary for this PR: this function can be generalized across all keytypes.","created_at":"2018-11-20T17:17:26Z","updated_at":"2018-11-20T17:17:26Z","html_url":"https://github.com/secure-systems-lab/securesystemslib/pull/160#discussion_r235094678","pull_request_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/160","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/comments/235094678"},"html":{"href":"https://github.com/secure-systems-lab/securesystemslib/pull/160#discussion_r235094678"},"pull_request":{"href":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/160"}}},"pull_request":{"url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/160","id":232395829,"node_id":"MDExOlB1bGxSZXF1ZXN0MjMyMzk1ODI5","html_url":"https://github.com/secure-systems-lab/securesystemslib/pull/160","diff_url":"https://github.com/secure-systems-lab/securesystemslib/pull/160.diff","patch_url":"https://github.com/secure-systems-lab/securesystemslib/pull/160.patch","issue_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/issues/160","number":160,"state":"open","locked":false,"title":"WIP: sphincs support, for post-quantum crypto","user":{"login":"awwad","id":13263928,"node_id":"MDQ6VXNlcjEzMjYzOTI4","avatar_url":"https://avatars3.githubusercontent.com/u/13263928?v=4","gravatar_id":"","url":"https://api.github.com/users/awwad","html_url":"https://github.com/awwad","followers_url":"https://api.github.com/users/awwad/followers","following_url":"https://api.github.com/users/awwad/following{/other_user}","gists_url":"https://api.github.com/users/awwad/gists{/gist_id}","starred_url":"https://api.github.com/users/awwad/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awwad/subscriptions","organizations_url":"https://api.github.com/users/awwad/orgs","repos_url":"https://api.github.com/users/awwad/repos","events_url":"https://api.github.com/users/awwad/events{/privacy}","received_events_url":"https://api.github.com/users/awwad/received_events","type":"User","site_admin":false},"body":"This PR is to create a place to discuss the changes that @cryptojedi and @joostrijneveld have recommended for adding sphincs post-quantum crypto support to secure-systems-lib as a means to allow TUF and in-toto to make use of it.\r\n\r\n- [ ] The code follows the [Code Style Guidelines](https://github.com/secure-systems-lab/code-style-guidelines#code-style-guidelines)\r\n- [ ] Tests have been added for the bug fix or new feature\r\n- [ ] Docs have been added for the bug fix or new feature\r\n\r\n\r\n","created_at":"2018-11-20T17:10:36Z","updated_at":"2018-11-20T17:17:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"6bd2093994346a92f9d291363b62d2974346437f","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/160/commits","review_comments_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/160/comments","review_comment_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/comments{/number}","comments_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/issues/160/comments","statuses_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/statuses/33d70bbd4a5639fe33581f30e6c90638a3e28dba","head":{"label":"cryptojedi:master","ref":"master","sha":"33d70bbd4a5639fe33581f30e6c90638a3e28dba","user":{"login":"cryptojedi","id":3762820,"node_id":"MDQ6VXNlcjM3NjI4MjA=","avatar_url":"https://avatars0.githubusercontent.com/u/3762820?v=4","gravatar_id":"","url":"https://api.github.com/users/cryptojedi","html_url":"https://github.com/cryptojedi","followers_url":"https://api.github.com/users/cryptojedi/followers","following_url":"https://api.github.com/users/cryptojedi/following{/other_user}","gists_url":"https://api.github.com/users/cryptojedi/gists{/gist_id}","starred_url":"https://api.github.com/users/cryptojedi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cryptojedi/subscriptions","organizations_url":"https://api.github.com/users/cryptojedi/orgs","repos_url":"https://api.github.com/users/cryptojedi/repos","events_url":"https://api.github.com/users/cryptojedi/events{/privacy}","received_events_url":"https://api.github.com/users/cryptojedi/received_events","type":"User","site_admin":false},"repo":{"id":155547908,"node_id":"MDEwOlJlcG9zaXRvcnkxNTU1NDc5MDg=","name":"securesystemslib","full_name":"cryptojedi/securesystemslib","private":false,"owner":{"login":"cryptojedi","id":3762820,"node_id":"MDQ6VXNlcjM3NjI4MjA=","avatar_url":"https://avatars0.githubusercontent.com/u/3762820?v=4","gravatar_id":"","url":"https://api.github.com/users/cryptojedi","html_url":"https://github.com/cryptojedi","followers_url":"https://api.github.com/users/cryptojedi/followers","following_url":"https://api.github.com/users/cryptojedi/following{/other_user}","gists_url":"https://api.github.com/users/cryptojedi/gists{/gist_id}","starred_url":"https://api.github.com/users/cryptojedi/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/cryptojedi/subscriptions","organizations_url":"https://api.github.com/users/cryptojedi/orgs","repos_url":"https://api.github.com/users/cryptojedi/repos","events_url":"https://api.github.com/users/cryptojedi/events{/privacy}","received_events_url":"https://api.github.com/users/cryptojedi/received_events","type":"User","site_admin":false},"html_url":"https://github.com/cryptojedi/securesystemslib","description":"Cryptographic and general-purpose routines for Secure Systems Lab projects at NYU","fork":true,"url":"https://api.github.com/repos/cryptojedi/securesystemslib","forks_url":"https://api.github.com/repos/cryptojedi/securesystemslib/forks","keys_url":"https://api.github.com/repos/cryptojedi/securesystemslib/keys{/key_id}","collaborators_url":"https://api.github.com/repos/cryptojedi/securesystemslib/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/cryptojedi/securesystemslib/teams","hooks_url":"https://api.github.com/repos/cryptojedi/securesystemslib/hooks","issue_events_url":"https://api.github.com/repos/cryptojedi/securesystemslib/issues/events{/number}","events_url":"https://api.github.com/repos/cryptojedi/securesystemslib/events","assignees_url":"https://api.github.com/repos/cryptojedi/securesystemslib/assignees{/user}","branches_url":"https://api.github.com/repos/cryptojedi/securesystemslib/branches{/branch}","tags_url":"https://api.github.com/repos/cryptojedi/securesystemslib/tags","blobs_url":"https://api.github.com/repos/cryptojedi/securesystemslib/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/cryptojedi/securesystemslib/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/cryptojedi/securesystemslib/git/refs{/sha}","trees_url":"https://api.github.com/repos/cryptojedi/securesystemslib/git/trees{/sha}","statuses_url":"https://api.github.com/repos/cryptojedi/securesystemslib/statuses/{sha}","languages_url":"https://api.github.com/repos/cryptojedi/securesystemslib/languages","stargazers_url":"https://api.github.com/repos/cryptojedi/securesystemslib/stargazers","contributors_url":"https://api.github.com/repos/cryptojedi/securesystemslib/contributors","subscribers_url":"https://api.github.com/repos/cryptojedi/securesystemslib/subscribers","subscription_url":"https://api.github.com/repos/cryptojedi/securesystemslib/subscription","commits_url":"https://api.github.com/repos/cryptojedi/securesystemslib/commits{/sha}","git_commits_url":"https://api.github.com/repos/cryptojedi/securesystemslib/git/commits{/sha}","comments_url":"https://api.github.com/repos/cryptojedi/securesystemslib/comments{/number}","issue_comment_url":"https://api.github.com/repos/cryptojedi/securesystemslib/issues/comments{/number}","contents_url":"https://api.github.com/repos/cryptojedi/securesystemslib/contents/{+path}","compare_url":"https://api.github.com/repos/cryptojedi/securesystemslib/compare/{base}...{head}","merges_url":"https://api.github.com/repos/cryptojedi/securesystemslib/merges","archive_url":"https://api.github.com/repos/cryptojedi/securesystemslib/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/cryptojedi/securesystemslib/downloads","issues_url":"https://api.github.com/repos/cryptojedi/securesystemslib/issues{/number}","pulls_url":"https://api.github.com/repos/cryptojedi/securesystemslib/pulls{/number}","milestones_url":"https://api.github.com/repos/cryptojedi/securesystemslib/milestones{/number}","notifications_url":"https://api.github.com/repos/cryptojedi/securesystemslib/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/cryptojedi/securesystemslib/labels{/name}","releases_url":"https://api.github.com/repos/cryptojedi/securesystemslib/releases{/id}","deployments_url":"https://api.github.com/repos/cryptojedi/securesystemslib/deployments","created_at":"2018-10-31T11:41:49Z","updated_at":"2018-11-13T04:48:36Z","pushed_at":"2018-11-13T04:48:34Z","git_url":"git://github.com/cryptojedi/securesystemslib.git","ssh_url":"git@github.com:cryptojedi/securesystemslib.git","clone_url":"https://github.com/cryptojedi/securesystemslib.git","svn_url":"https://github.com/cryptojedi/securesystemslib","homepage":"","size":1422,"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":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"secure-systems-lab:master","ref":"master","sha":"23008b457be0b4d2ceff112b45e3cc988b5f3bff","user":{"login":"secure-systems-lab","id":9352491,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkzNTI0OTE=","avatar_url":"https://avatars0.githubusercontent.com/u/9352491?v=4","gravatar_id":"","url":"https://api.github.com/users/secure-systems-lab","html_url":"https://github.com/secure-systems-lab","followers_url":"https://api.github.com/users/secure-systems-lab/followers","following_url":"https://api.github.com/users/secure-systems-lab/following{/other_user}","gists_url":"https://api.github.com/users/secure-systems-lab/gists{/gist_id}","starred_url":"https://api.github.com/users/secure-systems-lab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/secure-systems-lab/subscriptions","organizations_url":"https://api.github.com/users/secure-systems-lab/orgs","repos_url":"https://api.github.com/users/secure-systems-lab/repos","events_url":"https://api.github.com/users/secure-systems-lab/events{/privacy}","received_events_url":"https://api.github.com/users/secure-systems-lab/received_events","type":"Organization","site_admin":false},"repo":{"id":75772625,"node_id":"MDEwOlJlcG9zaXRvcnk3NTc3MjYyNQ==","name":"securesystemslib","full_name":"secure-systems-lab/securesystemslib","private":false,"owner":{"login":"secure-systems-lab","id":9352491,"node_id":"MDEyOk9yZ2FuaXphdGlvbjkzNTI0OTE=","avatar_url":"https://avatars0.githubusercontent.com/u/9352491?v=4","gravatar_id":"","url":"https://api.github.com/users/secure-systems-lab","html_url":"https://github.com/secure-systems-lab","followers_url":"https://api.github.com/users/secure-systems-lab/followers","following_url":"https://api.github.com/users/secure-systems-lab/following{/other_user}","gists_url":"https://api.github.com/users/secure-systems-lab/gists{/gist_id}","starred_url":"https://api.github.com/users/secure-systems-lab/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/secure-systems-lab/subscriptions","organizations_url":"https://api.github.com/users/secure-systems-lab/orgs","repos_url":"https://api.github.com/users/secure-systems-lab/repos","events_url":"https://api.github.com/users/secure-systems-lab/events{/privacy}","received_events_url":"https://api.github.com/users/secure-systems-lab/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/secure-systems-lab/securesystemslib","description":"Cryptographic and general-purpose routines for Secure Systems Lab projects at NYU","fork":false,"url":"https://api.github.com/repos/secure-systems-lab/securesystemslib","forks_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/forks","keys_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/keys{/key_id}","collaborators_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/teams","hooks_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/hooks","issue_events_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/issues/events{/number}","events_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/events","assignees_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/assignees{/user}","branches_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/branches{/branch}","tags_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/tags","blobs_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/git/refs{/sha}","trees_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/git/trees{/sha}","statuses_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/statuses/{sha}","languages_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/languages","stargazers_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/stargazers","contributors_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/contributors","subscribers_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/subscribers","subscription_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/subscription","commits_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/commits{/sha}","git_commits_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/git/commits{/sha}","comments_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/comments{/number}","issue_comment_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/issues/comments{/number}","contents_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/contents/{+path}","compare_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/compare/{base}...{head}","merges_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/merges","archive_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/downloads","issues_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/issues{/number}","pulls_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls{/number}","milestones_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/milestones{/number}","notifications_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/labels{/name}","releases_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/releases{/id}","deployments_url":"https://api.github.com/repos/secure-systems-lab/securesystemslib/deployments","created_at":"2016-12-06T21:21:30Z","updated_at":"2018-09-27T20:45:04Z","pushed_at":"2018-11-20T17:10:37Z","git_url":"git://github.com/secure-systems-lab/securesystemslib.git","ssh_url":"git@github.com:secure-systems-lab/securesystemslib.git","clone_url":"https://github.com/secure-systems-lab/securesystemslib.git","svn_url":"https://github.com/secure-systems-lab/securesystemslib","homepage":"","size":1360,"stargazers_count":3,"watchers_count":3,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":9,"mirror_url":null,"archived":false,"open_issues_count":10,"license":{"key":"mit","name":"MIT License","spdx_id":"MIT","url":"https://api.github.com/licenses/mit","node_id":"MDc6TGljZW5zZTEz"},"forks":9,"open_issues":10,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/160"},"html":{"href":"https://github.com/secure-systems-lab/securesystemslib/pull/160"},"issue":{"href":"https://api.github.com/repos/secure-systems-lab/securesystemslib/issues/160"},"comments":{"href":"https://api.github.com/repos/secure-systems-lab/securesystemslib/issues/160/comments"},"review_comments":{"href":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/160/comments"},"review_comment":{"href":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/secure-systems-lab/securesystemslib/pulls/160/commits"},"statuses":{"href":"https://api.github.com/repos/secure-systems-lab/securesystemslib/statuses/33d70bbd4a5639fe33581f30e6c90638a3e28dba"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"awwad"}}