{"action":"created","comment":{"url":"https://api.github.com/repos/codice/ddf/pulls/comments/205530308","pull_request_review_id":140819352,"id":205530308,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIwNTUzMDMwOA==","diff_hunk":"@@ -817,4 +782,50 @@ protected void validateGetResourceRequest(ResourceRequest getResourceRequest)\n           \"Cannot perform getResource with null attribute value or null attributeName, either passed in from endpoint, or as output from PreResourcePlugin\");\n     }\n   }\n+\n+  private URI getDerivedResourceUri(Metacard metacard, String qualifier)\n+      throws ResourceNotFoundException {\n+    URI uriWithMatchingQualifier = null;\n+    Attribute derivedResourcesAttribute = metacard.getAttribute(Core.DERIVED_RESOURCE_URI);\n+\n+    if (derivedResourcesAttribute == null) {\n+      throw new ResourceNotFoundException(\n+          String.format(\"No derived resource uri's on metacard \\\"%s\\\"\", metacard.getId()));\n+    }\n+\n+    for (Serializable ser : derivedResourcesAttribute.getValues()) {\n+      if (!(ser instanceof String)) {\n+        continue;\n+      }\n+\n+      URI uri;\n+      try {\n+        uri = new URI((String) ser);\n+      } catch (URISyntaxException e) {\n+        LOGGER.debug(\n+            String.format(\n+                \"Found derived URI without the proper syntax \\\"%s\\\" on metacard \\\"%s\\\"\",\n+                ser, metacard.getId()));\n+        continue;\n+      }\n+      if (!uri.getFragment().equals(qualifier)) {\n+        continue;\n+      }\n+      if (uriWithMatchingQualifier != null) {","path":"catalog/core/catalog-core-standardframework/src/main/java/ddf/catalog/impl/operations/ResourceOperations.java","position":222,"original_position":222,"commit_id":"0e9ad7c31ae8e4b4ae10ab78f4be2156c83059eb","original_commit_id":"0e9ad7c31ae8e4b4ae10ab78f4be2156c83059eb","user":{"login":"kcover","id":22778496,"node_id":"MDQ6VXNlcjIyNzc4NDk2","avatar_url":"https://avatars0.githubusercontent.com/u/22778496?v=4","gravatar_id":"","url":"https://api.github.com/users/kcover","html_url":"https://github.com/kcover","followers_url":"https://api.github.com/users/kcover/followers","following_url":"https://api.github.com/users/kcover/following{/other_user}","gists_url":"https://api.github.com/users/kcover/gists{/gist_id}","starred_url":"https://api.github.com/users/kcover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kcover/subscriptions","organizations_url":"https://api.github.com/users/kcover/orgs","repos_url":"https://api.github.com/users/kcover/repos","events_url":"https://api.github.com/users/kcover/events{/privacy}","received_events_url":"https://api.github.com/users/kcover/received_events","type":"User","site_admin":false},"body":"It will be null the first time through but we're in a loop here so if we find a URI that contains the given qualifier we save it in uriWithMatchingQualifier. If we then come back through and find another one, then somehow the Uri got added to the metacard twice which is a no-no, and we'll then run through this if-statement. Looking back on it I should've put more effort into making this method readable.","created_at":"2018-07-26T16:58:26Z","updated_at":"2018-07-26T16:58:26Z","html_url":"https://github.com/codice/ddf/pull/3119#discussion_r205530308","pull_request_url":"https://api.github.com/repos/codice/ddf/pulls/3119","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments/205530308"},"html":{"href":"https://github.com/codice/ddf/pull/3119#discussion_r205530308"},"pull_request":{"href":"https://api.github.com/repos/codice/ddf/pulls/3119"}},"in_reply_to_id":205517159},"pull_request":{"url":"https://api.github.com/repos/codice/ddf/pulls/3119","id":179709519,"node_id":"MDExOlB1bGxSZXF1ZXN0MTc5NzA5NTE5","html_url":"https://github.com/codice/ddf/pull/3119","diff_url":"https://github.com/codice/ddf/pull/3119.diff","patch_url":"https://github.com/codice/ddf/pull/3119.patch","issue_url":"https://api.github.com/repos/codice/ddf/issues/3119","number":3119,"state":"open","locked":false,"title":"DDF-3712 Allow resource requests with a derived URI","user":{"login":"kcover","id":22778496,"node_id":"MDQ6VXNlcjIyNzc4NDk2","avatar_url":"https://avatars0.githubusercontent.com/u/22778496?v=4","gravatar_id":"","url":"https://api.github.com/users/kcover","html_url":"https://github.com/kcover","followers_url":"https://api.github.com/users/kcover/followers","following_url":"https://api.github.com/users/kcover/following{/other_user}","gists_url":"https://api.github.com/users/kcover/gists{/gist_id}","starred_url":"https://api.github.com/users/kcover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kcover/subscriptions","organizations_url":"https://api.github.com/users/kcover/orgs","repos_url":"https://api.github.com/users/kcover/repos","events_url":"https://api.github.com/users/kcover/events{/privacy}","received_events_url":"https://api.github.com/users/kcover/received_events","type":"User","site_admin":false},"body":"#### What does this PR do?\r\n\r\nAdds new functionality to resource requests allowing you to make a request with a derived URI. It also adds code to help find derived resources when using in place monitoring.\r\n\r\n#### Who is reviewing it? \r\n\r\n@peterhuffer @emmberk @oconnormi \r\n\r\n#### Select relevant component teams: \r\n\r\nhttps://github.com/orgs/codice/teams/io\r\n\r\n#### Choose 2 committers to review/merge the PR. \r\n(please choose ONLY two committers from below, delete the rest)\r\n\r\n@clockard\r\n@pklinef\r\n\r\n#### How should this be tested? (List steps with links to updated documentation)\r\n\r\nVerify various types of products ingest and download properly. Message me for details.\r\n\r\n#### What are the relevant tickets?\r\n\r\n[DDF-3712](https://codice.atlassian.net/browse/DDF-3712)\r\n[CAL-431](https://codice.atlassian.net/browse/CAL-431)\r\n\r\n#### Checklist:\r\n- [ ] Documentation Updated\r\n- [ ] Update / Add Unit Tests\r\n- [ ] Update / Add Integration Tests\r\n\r\n#### Review Comment Legend:\r\n- ✏️ (Pencil) This comment is a nitpick or style suggestion, no action required for approval. This comment should provide a suggestion either as an in line code snippet or a gist. \r\n- ❓ (Question Mark) This comment is to gain a clearer understanding of design or code choices, clarification is required but action may not be necessary for approval.\r\n- ❗ (Exclamation Mark) This comment is critical and requires clarification or action before approval.\r\n","created_at":"2018-04-05T15:16:58Z","updated_at":"2018-07-26T16:58:26Z","closed_at":null,"merged_at":null,"merge_commit_sha":"35503dd1a17ebf530fd580aeccd8add119601d95","assignee":{"login":"pklinef","id":700518,"node_id":"MDQ6VXNlcjcwMDUxOA==","avatar_url":"https://avatars1.githubusercontent.com/u/700518?v=4","gravatar_id":"","url":"https://api.github.com/users/pklinef","html_url":"https://github.com/pklinef","followers_url":"https://api.github.com/users/pklinef/followers","following_url":"https://api.github.com/users/pklinef/following{/other_user}","gists_url":"https://api.github.com/users/pklinef/gists{/gist_id}","starred_url":"https://api.github.com/users/pklinef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pklinef/subscriptions","organizations_url":"https://api.github.com/users/pklinef/orgs","repos_url":"https://api.github.com/users/pklinef/repos","events_url":"https://api.github.com/users/pklinef/events{/privacy}","received_events_url":"https://api.github.com/users/pklinef/received_events","type":"User","site_admin":false},"assignees":[{"login":"pklinef","id":700518,"node_id":"MDQ6VXNlcjcwMDUxOA==","avatar_url":"https://avatars1.githubusercontent.com/u/700518?v=4","gravatar_id":"","url":"https://api.github.com/users/pklinef","html_url":"https://github.com/pklinef","followers_url":"https://api.github.com/users/pklinef/followers","following_url":"https://api.github.com/users/pklinef/following{/other_user}","gists_url":"https://api.github.com/users/pklinef/gists{/gist_id}","starred_url":"https://api.github.com/users/pklinef/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/pklinef/subscriptions","organizations_url":"https://api.github.com/users/pklinef/orgs","repos_url":"https://api.github.com/users/pklinef/repos","events_url":"https://api.github.com/users/pklinef/events{/privacy}","received_events_url":"https://api.github.com/users/pklinef/received_events","type":"User","site_admin":false},{"login":"clockard","id":5248090,"node_id":"MDQ6VXNlcjUyNDgwOTA=","avatar_url":"https://avatars1.githubusercontent.com/u/5248090?v=4","gravatar_id":"","url":"https://api.github.com/users/clockard","html_url":"https://github.com/clockard","followers_url":"https://api.github.com/users/clockard/followers","following_url":"https://api.github.com/users/clockard/following{/other_user}","gists_url":"https://api.github.com/users/clockard/gists{/gist_id}","starred_url":"https://api.github.com/users/clockard/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/clockard/subscriptions","organizations_url":"https://api.github.com/users/clockard/orgs","repos_url":"https://api.github.com/users/clockard/repos","events_url":"https://api.github.com/users/clockard/events{/privacy}","received_events_url":"https://api.github.com/users/clockard/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"stustison","id":4391679,"node_id":"MDQ6VXNlcjQzOTE2Nzk=","avatar_url":"https://avatars0.githubusercontent.com/u/4391679?v=4","gravatar_id":"","url":"https://api.github.com/users/stustison","html_url":"https://github.com/stustison","followers_url":"https://api.github.com/users/stustison/followers","following_url":"https://api.github.com/users/stustison/following{/other_user}","gists_url":"https://api.github.com/users/stustison/gists{/gist_id}","starred_url":"https://api.github.com/users/stustison/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stustison/subscriptions","organizations_url":"https://api.github.com/users/stustison/orgs","repos_url":"https://api.github.com/users/stustison/repos","events_url":"https://api.github.com/users/stustison/events{/privacy}","received_events_url":"https://api.github.com/users/stustison/received_events","type":"User","site_admin":false},{"login":"ricklarsen","id":10619999,"node_id":"MDQ6VXNlcjEwNjE5OTk5","avatar_url":"https://avatars2.githubusercontent.com/u/10619999?v=4","gravatar_id":"","url":"https://api.github.com/users/ricklarsen","html_url":"https://github.com/ricklarsen","followers_url":"https://api.github.com/users/ricklarsen/followers","following_url":"https://api.github.com/users/ricklarsen/following{/other_user}","gists_url":"https://api.github.com/users/ricklarsen/gists{/gist_id}","starred_url":"https://api.github.com/users/ricklarsen/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/ricklarsen/subscriptions","organizations_url":"https://api.github.com/users/ricklarsen/orgs","repos_url":"https://api.github.com/users/ricklarsen/repos","events_url":"https://api.github.com/users/ricklarsen/events{/privacy}","received_events_url":"https://api.github.com/users/ricklarsen/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":674371480,"node_id":"MDU6TGFiZWw2NzQzNzE0ODA=","url":"https://api.github.com/repos/codice/ddf/labels/Pending%20Other%20PR","name":"Pending Other PR","color":"fef2c0","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/codice/ddf/pulls/3119/commits","review_comments_url":"https://api.github.com/repos/codice/ddf/pulls/3119/comments","review_comment_url":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}","comments_url":"https://api.github.com/repos/codice/ddf/issues/3119/comments","statuses_url":"https://api.github.com/repos/codice/ddf/statuses/0e9ad7c31ae8e4b4ae10ab78f4be2156c83059eb","head":{"label":"kcover:DDF-3712","ref":"DDF-3712","sha":"0e9ad7c31ae8e4b4ae10ab78f4be2156c83059eb","user":{"login":"kcover","id":22778496,"node_id":"MDQ6VXNlcjIyNzc4NDk2","avatar_url":"https://avatars0.githubusercontent.com/u/22778496?v=4","gravatar_id":"","url":"https://api.github.com/users/kcover","html_url":"https://github.com/kcover","followers_url":"https://api.github.com/users/kcover/followers","following_url":"https://api.github.com/users/kcover/following{/other_user}","gists_url":"https://api.github.com/users/kcover/gists{/gist_id}","starred_url":"https://api.github.com/users/kcover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kcover/subscriptions","organizations_url":"https://api.github.com/users/kcover/orgs","repos_url":"https://api.github.com/users/kcover/repos","events_url":"https://api.github.com/users/kcover/events{/privacy}","received_events_url":"https://api.github.com/users/kcover/received_events","type":"User","site_admin":false},"repo":{"id":116413576,"node_id":"MDEwOlJlcG9zaXRvcnkxMTY0MTM1NzY=","name":"ddf","full_name":"kcover/ddf","owner":{"login":"kcover","id":22778496,"node_id":"MDQ6VXNlcjIyNzc4NDk2","avatar_url":"https://avatars0.githubusercontent.com/u/22778496?v=4","gravatar_id":"","url":"https://api.github.com/users/kcover","html_url":"https://github.com/kcover","followers_url":"https://api.github.com/users/kcover/followers","following_url":"https://api.github.com/users/kcover/following{/other_user}","gists_url":"https://api.github.com/users/kcover/gists{/gist_id}","starred_url":"https://api.github.com/users/kcover/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kcover/subscriptions","organizations_url":"https://api.github.com/users/kcover/orgs","repos_url":"https://api.github.com/users/kcover/repos","events_url":"https://api.github.com/users/kcover/events{/privacy}","received_events_url":"https://api.github.com/users/kcover/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/kcover/ddf","description":"DDF Distributed Data Framework - an open source, modular integration framework.","fork":true,"url":"https://api.github.com/repos/kcover/ddf","forks_url":"https://api.github.com/repos/kcover/ddf/forks","keys_url":"https://api.github.com/repos/kcover/ddf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kcover/ddf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kcover/ddf/teams","hooks_url":"https://api.github.com/repos/kcover/ddf/hooks","issue_events_url":"https://api.github.com/repos/kcover/ddf/issues/events{/number}","events_url":"https://api.github.com/repos/kcover/ddf/events","assignees_url":"https://api.github.com/repos/kcover/ddf/assignees{/user}","branches_url":"https://api.github.com/repos/kcover/ddf/branches{/branch}","tags_url":"https://api.github.com/repos/kcover/ddf/tags","blobs_url":"https://api.github.com/repos/kcover/ddf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kcover/ddf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kcover/ddf/git/refs{/sha}","trees_url":"https://api.github.com/repos/kcover/ddf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kcover/ddf/statuses/{sha}","languages_url":"https://api.github.com/repos/kcover/ddf/languages","stargazers_url":"https://api.github.com/repos/kcover/ddf/stargazers","contributors_url":"https://api.github.com/repos/kcover/ddf/contributors","subscribers_url":"https://api.github.com/repos/kcover/ddf/subscribers","subscription_url":"https://api.github.com/repos/kcover/ddf/subscription","commits_url":"https://api.github.com/repos/kcover/ddf/commits{/sha}","git_commits_url":"https://api.github.com/repos/kcover/ddf/git/commits{/sha}","comments_url":"https://api.github.com/repos/kcover/ddf/comments{/number}","issue_comment_url":"https://api.github.com/repos/kcover/ddf/issues/comments{/number}","contents_url":"https://api.github.com/repos/kcover/ddf/contents/{+path}","compare_url":"https://api.github.com/repos/kcover/ddf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kcover/ddf/merges","archive_url":"https://api.github.com/repos/kcover/ddf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kcover/ddf/downloads","issues_url":"https://api.github.com/repos/kcover/ddf/issues{/number}","pulls_url":"https://api.github.com/repos/kcover/ddf/pulls{/number}","milestones_url":"https://api.github.com/repos/kcover/ddf/milestones{/number}","notifications_url":"https://api.github.com/repos/kcover/ddf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kcover/ddf/labels{/name}","releases_url":"https://api.github.com/repos/kcover/ddf/releases{/id}","deployments_url":"https://api.github.com/repos/kcover/ddf/deployments","created_at":"2018-01-05T18:11:51Z","updated_at":"2018-01-05T18:12:12Z","pushed_at":"2018-07-25T23:12:25Z","git_url":"git://github.com/kcover/ddf.git","ssh_url":"git@github.com:kcover/ddf.git","clone_url":"https://github.com/kcover/ddf.git","svn_url":"https://github.com/kcover/ddf","homepage":"http://ddf.codice.org","size":383580,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":0,"mirror_url":null,"archived":false,"open_issues_count":0,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"codice:master","ref":"master","sha":"8d7fc8978eea223aec113f43b07aaa01c870fbb9","user":{"login":"codice","id":2386734,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzODY3MzQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2386734?v=4","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"repo":{"id":15173563,"node_id":"MDEwOlJlcG9zaXRvcnkxNTE3MzU2Mw==","name":"ddf","full_name":"codice/ddf","owner":{"login":"codice","id":2386734,"node_id":"MDEyOk9yZ2FuaXphdGlvbjIzODY3MzQ=","avatar_url":"https://avatars2.githubusercontent.com/u/2386734?v=4","gravatar_id":"","url":"https://api.github.com/users/codice","html_url":"https://github.com/codice","followers_url":"https://api.github.com/users/codice/followers","following_url":"https://api.github.com/users/codice/following{/other_user}","gists_url":"https://api.github.com/users/codice/gists{/gist_id}","starred_url":"https://api.github.com/users/codice/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/codice/subscriptions","organizations_url":"https://api.github.com/users/codice/orgs","repos_url":"https://api.github.com/users/codice/repos","events_url":"https://api.github.com/users/codice/events{/privacy}","received_events_url":"https://api.github.com/users/codice/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/codice/ddf","description":"DDF Distributed Data Framework - an open source, modular integration framework.","fork":false,"url":"https://api.github.com/repos/codice/ddf","forks_url":"https://api.github.com/repos/codice/ddf/forks","keys_url":"https://api.github.com/repos/codice/ddf/keys{/key_id}","collaborators_url":"https://api.github.com/repos/codice/ddf/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/codice/ddf/teams","hooks_url":"https://api.github.com/repos/codice/ddf/hooks","issue_events_url":"https://api.github.com/repos/codice/ddf/issues/events{/number}","events_url":"https://api.github.com/repos/codice/ddf/events","assignees_url":"https://api.github.com/repos/codice/ddf/assignees{/user}","branches_url":"https://api.github.com/repos/codice/ddf/branches{/branch}","tags_url":"https://api.github.com/repos/codice/ddf/tags","blobs_url":"https://api.github.com/repos/codice/ddf/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/codice/ddf/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/codice/ddf/git/refs{/sha}","trees_url":"https://api.github.com/repos/codice/ddf/git/trees{/sha}","statuses_url":"https://api.github.com/repos/codice/ddf/statuses/{sha}","languages_url":"https://api.github.com/repos/codice/ddf/languages","stargazers_url":"https://api.github.com/repos/codice/ddf/stargazers","contributors_url":"https://api.github.com/repos/codice/ddf/contributors","subscribers_url":"https://api.github.com/repos/codice/ddf/subscribers","subscription_url":"https://api.github.com/repos/codice/ddf/subscription","commits_url":"https://api.github.com/repos/codice/ddf/commits{/sha}","git_commits_url":"https://api.github.com/repos/codice/ddf/git/commits{/sha}","comments_url":"https://api.github.com/repos/codice/ddf/comments{/number}","issue_comment_url":"https://api.github.com/repos/codice/ddf/issues/comments{/number}","contents_url":"https://api.github.com/repos/codice/ddf/contents/{+path}","compare_url":"https://api.github.com/repos/codice/ddf/compare/{base}...{head}","merges_url":"https://api.github.com/repos/codice/ddf/merges","archive_url":"https://api.github.com/repos/codice/ddf/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/codice/ddf/downloads","issues_url":"https://api.github.com/repos/codice/ddf/issues{/number}","pulls_url":"https://api.github.com/repos/codice/ddf/pulls{/number}","milestones_url":"https://api.github.com/repos/codice/ddf/milestones{/number}","notifications_url":"https://api.github.com/repos/codice/ddf/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/codice/ddf/labels{/name}","releases_url":"https://api.github.com/repos/codice/ddf/releases{/id}","deployments_url":"https://api.github.com/repos/codice/ddf/deployments","created_at":"2013-12-13T20:38:28Z","updated_at":"2018-07-26T16:53:24Z","pushed_at":"2018-07-26T16:54:32Z","git_url":"git://github.com/codice/ddf.git","ssh_url":"git@github.com:codice/ddf.git","clone_url":"https://github.com/codice/ddf.git","svn_url":"https://github.com/codice/ddf","homepage":"http://ddf.codice.org","size":397493,"stargazers_count":86,"watchers_count":86,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":150,"mirror_url":null,"archived":false,"open_issues_count":35,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":150,"open_issues":35,"watchers":86,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/codice/ddf/pulls/3119"},"html":{"href":"https://github.com/codice/ddf/pull/3119"},"issue":{"href":"https://api.github.com/repos/codice/ddf/issues/3119"},"comments":{"href":"https://api.github.com/repos/codice/ddf/issues/3119/comments"},"review_comments":{"href":"https://api.github.com/repos/codice/ddf/pulls/3119/comments"},"review_comment":{"href":"https://api.github.com/repos/codice/ddf/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/codice/ddf/pulls/3119/commits"},"statuses":{"href":"https://api.github.com/repos/codice/ddf/statuses/0e9ad7c31ae8e4b4ae10ab78f4be2156c83059eb"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"kcover"}}