{"action":"created","comment":{"url":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/comments/46331160","id":46331160,"diff_hunk":"@@ -645,4 +725,25 @@ private void checkLinkForLdpResourceCreation(final String link) {\n         }\n     }\n \n+    /**\n+     * Parse the RFC-3230 Digest response header value.  Look for a\n+     * sha1 checksum and return it as a urn, if missing an empty string is\n+     * returned.\n+     * @param digest The Digest header value\n+     * @return the sha1 checksum value\n+     */\n+    private String parseDigestHeader(final String digest) {\n+        if (digest != null) {\n+            final Map<String,String> digestPairs = RFC3230_SPLITTER.split(digest);\n+            for (Map.Entry<String, String> digestPair : digestPairs.entrySet()) {\n+                switch(digestPair.getKey().toLowerCase()) {","path":"fcrepo-http-api/src/main/java/org/fcrepo/http/api/FedoraLdp.java","position":199,"original_position":199,"commit_id":"e4e9585fea3f6a55ea8dea832802ff75a8eb239f","original_commit_id":"b0bf89fde18cba89d98cf665b3cc44cd06689d41","user":{"login":"awoods","id":149283,"avatar_url":"https://avatars.githubusercontent.com/u/149283?v=3","gravatar_id":"","url":"https://api.github.com/users/awoods","html_url":"https://github.com/awoods","followers_url":"https://api.github.com/users/awoods/followers","following_url":"https://api.github.com/users/awoods/following{/other_user}","gists_url":"https://api.github.com/users/awoods/gists{/gist_id}","starred_url":"https://api.github.com/users/awoods/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awoods/subscriptions","organizations_url":"https://api.github.com/users/awoods/orgs","repos_url":"https://api.github.com/users/awoods/repos","events_url":"https://api.github.com/users/awoods/events{/privacy}","received_events_url":"https://api.github.com/users/awoods/received_events","type":"User","site_admin":false},"body":"Here is the ticket from the community: https://jira.duraspace.org/browse/FCREPO-1842","created_at":"2015-12-01T20:05:46Z","updated_at":"2015-12-01T20:05:46Z","html_url":"https://github.com/fcrepo4/fcrepo4/pull/960#discussion_r46331160","pull_request_url":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/960","_links":{"self":{"href":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/comments/46331160"},"html":{"href":"https://github.com/fcrepo4/fcrepo4/pull/960#discussion_r46331160"},"pull_request":{"href":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/960"}}},"pull_request":{"url":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/960","id":52289259,"html_url":"https://github.com/fcrepo4/fcrepo4/pull/960","diff_url":"https://github.com/fcrepo4/fcrepo4/pull/960.diff","patch_url":"https://github.com/fcrepo4/fcrepo4/pull/960.patch","issue_url":"https://api.github.com/repos/fcrepo4/fcrepo4/issues/960","number":960,"state":"open","locked":false,"title":"Update REST API for specifying checksums","user":{"login":"Rarian","id":984291,"avatar_url":"https://avatars.githubusercontent.com/u/984291?v=3","gravatar_id":"","url":"https://api.github.com/users/Rarian","html_url":"https://github.com/Rarian","followers_url":"https://api.github.com/users/Rarian/followers","following_url":"https://api.github.com/users/Rarian/following{/other_user}","gists_url":"https://api.github.com/users/Rarian/gists{/gist_id}","starred_url":"https://api.github.com/users/Rarian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rarian/subscriptions","organizations_url":"https://api.github.com/users/Rarian/orgs","repos_url":"https://api.github.com/users/Rarian/repos","events_url":"https://api.github.com/users/Rarian/events{/privacy}","received_events_url":"https://api.github.com/users/Rarian/received_events","type":"User","site_admin":false},"body":"Initially clients could specify checksums for uploaded binary content\r\nvia a custom `checksum` query parameter, instead of this non-standard\r\napproach, we want to refactor to follow RFC-3230 4.3.2.\r\n\r\n* Adds 'Warning' header to announce deprecation of `checksum`\r\n* Adds support for 'Digest' header as per RFC-3230\r\n* Adds utility function for parsing 'Digest' headers\r\n* Adds integration tests for checksum match and mismatch\r\n\r\nResolves: https://jira.duraspace.org/browse/FCREPO-1468","created_at":"2015-12-01T17:32:17Z","updated_at":"2015-12-01T20:05:46Z","closed_at":null,"merged_at":null,"merge_commit_sha":"b1938a45cda6136abf43a230cb0b45d0b46954ee","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/960/commits","review_comments_url":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/960/comments","review_comment_url":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/comments{/number}","comments_url":"https://api.github.com/repos/fcrepo4/fcrepo4/issues/960/comments","statuses_url":"https://api.github.com/repos/fcrepo4/fcrepo4/statuses/e4e9585fea3f6a55ea8dea832802ff75a8eb239f","head":{"label":"Rarian:FCREPO-1468","ref":"FCREPO-1468","sha":"e4e9585fea3f6a55ea8dea832802ff75a8eb239f","user":{"login":"Rarian","id":984291,"avatar_url":"https://avatars.githubusercontent.com/u/984291?v=3","gravatar_id":"","url":"https://api.github.com/users/Rarian","html_url":"https://github.com/Rarian","followers_url":"https://api.github.com/users/Rarian/followers","following_url":"https://api.github.com/users/Rarian/following{/other_user}","gists_url":"https://api.github.com/users/Rarian/gists{/gist_id}","starred_url":"https://api.github.com/users/Rarian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rarian/subscriptions","organizations_url":"https://api.github.com/users/Rarian/orgs","repos_url":"https://api.github.com/users/Rarian/repos","events_url":"https://api.github.com/users/Rarian/events{/privacy}","received_events_url":"https://api.github.com/users/Rarian/received_events","type":"User","site_admin":false},"repo":{"id":45861615,"name":"fcrepo4","full_name":"Rarian/fcrepo4","owner":{"login":"Rarian","id":984291,"avatar_url":"https://avatars.githubusercontent.com/u/984291?v=3","gravatar_id":"","url":"https://api.github.com/users/Rarian","html_url":"https://github.com/Rarian","followers_url":"https://api.github.com/users/Rarian/followers","following_url":"https://api.github.com/users/Rarian/following{/other_user}","gists_url":"https://api.github.com/users/Rarian/gists{/gist_id}","starred_url":"https://api.github.com/users/Rarian/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Rarian/subscriptions","organizations_url":"https://api.github.com/users/Rarian/orgs","repos_url":"https://api.github.com/users/Rarian/repos","events_url":"https://api.github.com/users/Rarian/events{/privacy}","received_events_url":"https://api.github.com/users/Rarian/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Rarian/fcrepo4","description":"Fedora 4","fork":true,"url":"https://api.github.com/repos/Rarian/fcrepo4","forks_url":"https://api.github.com/repos/Rarian/fcrepo4/forks","keys_url":"https://api.github.com/repos/Rarian/fcrepo4/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Rarian/fcrepo4/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Rarian/fcrepo4/teams","hooks_url":"https://api.github.com/repos/Rarian/fcrepo4/hooks","issue_events_url":"https://api.github.com/repos/Rarian/fcrepo4/issues/events{/number}","events_url":"https://api.github.com/repos/Rarian/fcrepo4/events","assignees_url":"https://api.github.com/repos/Rarian/fcrepo4/assignees{/user}","branches_url":"https://api.github.com/repos/Rarian/fcrepo4/branches{/branch}","tags_url":"https://api.github.com/repos/Rarian/fcrepo4/tags","blobs_url":"https://api.github.com/repos/Rarian/fcrepo4/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Rarian/fcrepo4/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Rarian/fcrepo4/git/refs{/sha}","trees_url":"https://api.github.com/repos/Rarian/fcrepo4/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Rarian/fcrepo4/statuses/{sha}","languages_url":"https://api.github.com/repos/Rarian/fcrepo4/languages","stargazers_url":"https://api.github.com/repos/Rarian/fcrepo4/stargazers","contributors_url":"https://api.github.com/repos/Rarian/fcrepo4/contributors","subscribers_url":"https://api.github.com/repos/Rarian/fcrepo4/subscribers","subscription_url":"https://api.github.com/repos/Rarian/fcrepo4/subscription","commits_url":"https://api.github.com/repos/Rarian/fcrepo4/commits{/sha}","git_commits_url":"https://api.github.com/repos/Rarian/fcrepo4/git/commits{/sha}","comments_url":"https://api.github.com/repos/Rarian/fcrepo4/comments{/number}","issue_comment_url":"https://api.github.com/repos/Rarian/fcrepo4/issues/comments{/number}","contents_url":"https://api.github.com/repos/Rarian/fcrepo4/contents/{+path}","compare_url":"https://api.github.com/repos/Rarian/fcrepo4/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Rarian/fcrepo4/merges","archive_url":"https://api.github.com/repos/Rarian/fcrepo4/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Rarian/fcrepo4/downloads","issues_url":"https://api.github.com/repos/Rarian/fcrepo4/issues{/number}","pulls_url":"https://api.github.com/repos/Rarian/fcrepo4/pulls{/number}","milestones_url":"https://api.github.com/repos/Rarian/fcrepo4/milestones{/number}","notifications_url":"https://api.github.com/repos/Rarian/fcrepo4/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Rarian/fcrepo4/labels{/name}","releases_url":"https://api.github.com/repos/Rarian/fcrepo4/releases{/id}","created_at":"2015-11-09T19:32:05Z","updated_at":"2015-11-09T19:32:16Z","pushed_at":"2015-12-01T18:17:14Z","git_url":"git://github.com/Rarian/fcrepo4.git","ssh_url":"git@github.com:Rarian/fcrepo4.git","clone_url":"https://github.com/Rarian/fcrepo4.git","svn_url":"https://github.com/Rarian/fcrepo4","homepage":"http://github.com/fcrepo4/fcrepo4","size":74165,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"fcrepo4:master","ref":"master","sha":"1596a680ea620e1c88e5b14f95ecb3d58f45a362","user":{"login":"fcrepo4","id":3057565,"avatar_url":"https://avatars.githubusercontent.com/u/3057565?v=3","gravatar_id":"","url":"https://api.github.com/users/fcrepo4","html_url":"https://github.com/fcrepo4","followers_url":"https://api.github.com/users/fcrepo4/followers","following_url":"https://api.github.com/users/fcrepo4/following{/other_user}","gists_url":"https://api.github.com/users/fcrepo4/gists{/gist_id}","starred_url":"https://api.github.com/users/fcrepo4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fcrepo4/subscriptions","organizations_url":"https://api.github.com/users/fcrepo4/orgs","repos_url":"https://api.github.com/users/fcrepo4/repos","events_url":"https://api.github.com/users/fcrepo4/events{/privacy}","received_events_url":"https://api.github.com/users/fcrepo4/received_events","type":"Organization","site_admin":false},"repo":{"id":7992797,"name":"fcrepo4","full_name":"fcrepo4/fcrepo4","owner":{"login":"fcrepo4","id":3057565,"avatar_url":"https://avatars.githubusercontent.com/u/3057565?v=3","gravatar_id":"","url":"https://api.github.com/users/fcrepo4","html_url":"https://github.com/fcrepo4","followers_url":"https://api.github.com/users/fcrepo4/followers","following_url":"https://api.github.com/users/fcrepo4/following{/other_user}","gists_url":"https://api.github.com/users/fcrepo4/gists{/gist_id}","starred_url":"https://api.github.com/users/fcrepo4/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/fcrepo4/subscriptions","organizations_url":"https://api.github.com/users/fcrepo4/orgs","repos_url":"https://api.github.com/users/fcrepo4/repos","events_url":"https://api.github.com/users/fcrepo4/events{/privacy}","received_events_url":"https://api.github.com/users/fcrepo4/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/fcrepo4/fcrepo4","description":"Fedora 4","fork":false,"url":"https://api.github.com/repos/fcrepo4/fcrepo4","forks_url":"https://api.github.com/repos/fcrepo4/fcrepo4/forks","keys_url":"https://api.github.com/repos/fcrepo4/fcrepo4/keys{/key_id}","collaborators_url":"https://api.github.com/repos/fcrepo4/fcrepo4/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/fcrepo4/fcrepo4/teams","hooks_url":"https://api.github.com/repos/fcrepo4/fcrepo4/hooks","issue_events_url":"https://api.github.com/repos/fcrepo4/fcrepo4/issues/events{/number}","events_url":"https://api.github.com/repos/fcrepo4/fcrepo4/events","assignees_url":"https://api.github.com/repos/fcrepo4/fcrepo4/assignees{/user}","branches_url":"https://api.github.com/repos/fcrepo4/fcrepo4/branches{/branch}","tags_url":"https://api.github.com/repos/fcrepo4/fcrepo4/tags","blobs_url":"https://api.github.com/repos/fcrepo4/fcrepo4/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/fcrepo4/fcrepo4/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/fcrepo4/fcrepo4/git/refs{/sha}","trees_url":"https://api.github.com/repos/fcrepo4/fcrepo4/git/trees{/sha}","statuses_url":"https://api.github.com/repos/fcrepo4/fcrepo4/statuses/{sha}","languages_url":"https://api.github.com/repos/fcrepo4/fcrepo4/languages","stargazers_url":"https://api.github.com/repos/fcrepo4/fcrepo4/stargazers","contributors_url":"https://api.github.com/repos/fcrepo4/fcrepo4/contributors","subscribers_url":"https://api.github.com/repos/fcrepo4/fcrepo4/subscribers","subscription_url":"https://api.github.com/repos/fcrepo4/fcrepo4/subscription","commits_url":"https://api.github.com/repos/fcrepo4/fcrepo4/commits{/sha}","git_commits_url":"https://api.github.com/repos/fcrepo4/fcrepo4/git/commits{/sha}","comments_url":"https://api.github.com/repos/fcrepo4/fcrepo4/comments{/number}","issue_comment_url":"https://api.github.com/repos/fcrepo4/fcrepo4/issues/comments{/number}","contents_url":"https://api.github.com/repos/fcrepo4/fcrepo4/contents/{+path}","compare_url":"https://api.github.com/repos/fcrepo4/fcrepo4/compare/{base}...{head}","merges_url":"https://api.github.com/repos/fcrepo4/fcrepo4/merges","archive_url":"https://api.github.com/repos/fcrepo4/fcrepo4/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/fcrepo4/fcrepo4/downloads","issues_url":"https://api.github.com/repos/fcrepo4/fcrepo4/issues{/number}","pulls_url":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls{/number}","milestones_url":"https://api.github.com/repos/fcrepo4/fcrepo4/milestones{/number}","notifications_url":"https://api.github.com/repos/fcrepo4/fcrepo4/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/fcrepo4/fcrepo4/labels{/name}","releases_url":"https://api.github.com/repos/fcrepo4/fcrepo4/releases{/id}","created_at":"2013-02-03T16:18:55Z","updated_at":"2015-10-17T13:55:53Z","pushed_at":"2015-12-01T18:17:15Z","git_url":"git://github.com/fcrepo4/fcrepo4.git","ssh_url":"git@github.com:fcrepo4/fcrepo4.git","clone_url":"https://github.com/fcrepo4/fcrepo4.git","svn_url":"https://github.com/fcrepo4/fcrepo4","homepage":"http://github.com/fcrepo4/fcrepo4","size":131477,"stargazers_count":55,"watchers_count":55,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":80,"mirror_url":null,"open_issues_count":31,"forks":80,"open_issues":31,"watchers":55,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/960"},"html":{"href":"https://github.com/fcrepo4/fcrepo4/pull/960"},"issue":{"href":"https://api.github.com/repos/fcrepo4/fcrepo4/issues/960"},"comments":{"href":"https://api.github.com/repos/fcrepo4/fcrepo4/issues/960/comments"},"review_comments":{"href":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/960/comments"},"review_comment":{"href":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/fcrepo4/fcrepo4/pulls/960/commits"},"statuses":{"href":"https://api.github.com/repos/fcrepo4/fcrepo4/statuses/e4e9585fea3f6a55ea8dea832802ff75a8eb239f"}}}}