{"action":"created","comment":{"url":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/comments/130964747","pull_request_review_id":53896506,"id":130964747,"diff_hunk":"@@ -0,0 +1,116 @@\n+/** *\n+  * Copyright 2017 Rackspace US, Inc.\n+  *\n+  * Licensed under the Apache License, Version 2.0 (the \"License\");\n+  * you may not use this file except in compliance with the License.\n+  * You may obtain a copy of the License at\n+  *\n+  * http://www.apache.org/licenses/LICENSE-2.0\n+  *\n+  * Unless required by applicable law or agreed to in writing, software\n+  * distributed under the License is distributed on an \"AS IS\" BASIS,\n+  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+  * See the License for the specific language governing permissions and\n+  * limitations under the License.\n+  */\n+package com.rackspace.com.papi.components.checker\n+\n+import com.rackspace.cloud.api.wadl.Converters._\n+import com.rackspace.com.papi.components.checker.RunAssertionsHandler.ASSERT_FUNCTION\n+import com.rackspace.com.papi.components.checker.servlet.{CheckerServletRequest, CheckerServletResponse}\n+import com.rackspace.com.papi.components.checker.step.results.Result\n+import org.junit.runner.RunWith\n+import org.scalatest.junit.JUnitRunner\n+\n+import scala.collection.JavaConversions._\n+import scala.xml.Elem\n+\n+@RunWith(classOf[JUnitRunner])\n+class ValidatorWADLRelevantRolesSuite extends BaseValidatorSuite {","path":"core/src/test/scala/com/rackspace/com/papi/components/checker/ValidatorWADLRelevantRolesSuite.scala","position":29,"original_position":29,"commit_id":"65925538957699a918cd7ab758e987f839413f92","original_commit_id":"65925538957699a918cd7ab758e987f839413f92","user":{"login":"RackerWilliams","id":348314,"avatar_url":"https://avatars1.githubusercontent.com/u/348314?v=4","gravatar_id":"","url":"https://api.github.com/users/RackerWilliams","html_url":"https://github.com/RackerWilliams","followers_url":"https://api.github.com/users/RackerWilliams/followers","following_url":"https://api.github.com/users/RackerWilliams/following{/other_user}","gists_url":"https://api.github.com/users/RackerWilliams/gists{/gist_id}","starred_url":"https://api.github.com/users/RackerWilliams/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RackerWilliams/subscriptions","organizations_url":"https://api.github.com/users/RackerWilliams/orgs","repos_url":"https://api.github.com/users/RackerWilliams/repos","events_url":"https://api.github.com/users/RackerWilliams/events{/privacy}","received_events_url":"https://api.github.com/users/RackerWilliams/received_events","type":"User","site_admin":false},"body":"Also, you're not really stressing your implementation with this test.  What happens if the role has a single quote in it? Will your code still work?","created_at":"2017-08-02T18:53:46Z","updated_at":"2017-08-02T18:54:15Z","html_url":"https://github.com/RackerWilliams/api-checker/pull/1#discussion_r130964747","pull_request_url":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/1","_links":{"self":{"href":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/comments/130964747"},"html":{"href":"https://github.com/RackerWilliams/api-checker/pull/1#discussion_r130964747"},"pull_request":{"href":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/1"}}},"pull_request":{"url":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/1","id":133775752,"html_url":"https://github.com/RackerWilliams/api-checker/pull/1","diff_url":"https://github.com/RackerWilliams/api-checker/pull/1.diff","patch_url":"https://github.com/RackerWilliams/api-checker/pull/1.patch","issue_url":"https://api.github.com/repos/RackerWilliams/api-checker/issues/1","number":1,"state":"open","locked":false,"title":"REP-5521 X-Relevant-Roles","user":{"login":"dmnjohns","id":1923408,"avatar_url":"https://avatars2.githubusercontent.com/u/1923408?v=4","gravatar_id":"","url":"https://api.github.com/users/dmnjohns","html_url":"https://github.com/dmnjohns","followers_url":"https://api.github.com/users/dmnjohns/followers","following_url":"https://api.github.com/users/dmnjohns/following{/other_user}","gists_url":"https://api.github.com/users/dmnjohns/gists{/gist_id}","starred_url":"https://api.github.com/users/dmnjohns/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmnjohns/subscriptions","organizations_url":"https://api.github.com/users/dmnjohns/orgs","repos_url":"https://api.github.com/users/dmnjohns/repos","events_url":"https://api.github.com/users/dmnjohns/events{/privacy}","received_events_url":"https://api.github.com/users/dmnjohns/received_events","type":"User","site_admin":false},"body":"I'm basing this off of @jorgew's `capture-header-elem` forked branch for the moment (to keep the diff clean), but will move it over to the `api-checker` master branch once that branch is merged.\r\n\r\nThis PR adds support for relevant roles. Relevant roles are roles which grant a request access to a resource. Technically, these roles are the intersection of roles which belong to the user (i.e., the values of the `X-Roles` header) and roles which are required to access a resource (i.e., the values of `rax:roles`). Relevant roles will be added to the `X-Relevant-Roles` request header.","created_at":"2017-08-02T18:21:42Z","updated_at":"2017-08-02T18:54:15Z","closed_at":null,"merged_at":null,"merge_commit_sha":"d5c7922f675fd5d8b1f2a5a33fe0fb20c1d6be3f","assignee":null,"assignees":[],"requested_reviewers":[],"milestone":null,"commits_url":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/1/commits","review_comments_url":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/1/comments","review_comment_url":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/comments{/number}","comments_url":"https://api.github.com/repos/RackerWilliams/api-checker/issues/1/comments","statuses_url":"https://api.github.com/repos/RackerWilliams/api-checker/statuses/65925538957699a918cd7ab758e987f839413f92","head":{"label":"dmnjohns:REP-5521_x_relevant_roles","ref":"REP-5521_x_relevant_roles","sha":"65925538957699a918cd7ab758e987f839413f92","user":{"login":"dmnjohns","id":1923408,"avatar_url":"https://avatars2.githubusercontent.com/u/1923408?v=4","gravatar_id":"","url":"https://api.github.com/users/dmnjohns","html_url":"https://github.com/dmnjohns","followers_url":"https://api.github.com/users/dmnjohns/followers","following_url":"https://api.github.com/users/dmnjohns/following{/other_user}","gists_url":"https://api.github.com/users/dmnjohns/gists{/gist_id}","starred_url":"https://api.github.com/users/dmnjohns/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmnjohns/subscriptions","organizations_url":"https://api.github.com/users/dmnjohns/orgs","repos_url":"https://api.github.com/users/dmnjohns/repos","events_url":"https://api.github.com/users/dmnjohns/events{/privacy}","received_events_url":"https://api.github.com/users/dmnjohns/received_events","type":"User","site_admin":false},"repo":{"id":15140048,"name":"api-checker","full_name":"dmnjohns/api-checker","owner":{"login":"dmnjohns","id":1923408,"avatar_url":"https://avatars2.githubusercontent.com/u/1923408?v=4","gravatar_id":"","url":"https://api.github.com/users/dmnjohns","html_url":"https://github.com/dmnjohns","followers_url":"https://api.github.com/users/dmnjohns/followers","following_url":"https://api.github.com/users/dmnjohns/following{/other_user}","gists_url":"https://api.github.com/users/dmnjohns/gists{/gist_id}","starred_url":"https://api.github.com/users/dmnjohns/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/dmnjohns/subscriptions","organizations_url":"https://api.github.com/users/dmnjohns/orgs","repos_url":"https://api.github.com/users/dmnjohns/repos","events_url":"https://api.github.com/users/dmnjohns/events{/privacy}","received_events_url":"https://api.github.com/users/dmnjohns/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/dmnjohns/api-checker","description":null,"fork":true,"url":"https://api.github.com/repos/dmnjohns/api-checker","forks_url":"https://api.github.com/repos/dmnjohns/api-checker/forks","keys_url":"https://api.github.com/repos/dmnjohns/api-checker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/dmnjohns/api-checker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/dmnjohns/api-checker/teams","hooks_url":"https://api.github.com/repos/dmnjohns/api-checker/hooks","issue_events_url":"https://api.github.com/repos/dmnjohns/api-checker/issues/events{/number}","events_url":"https://api.github.com/repos/dmnjohns/api-checker/events","assignees_url":"https://api.github.com/repos/dmnjohns/api-checker/assignees{/user}","branches_url":"https://api.github.com/repos/dmnjohns/api-checker/branches{/branch}","tags_url":"https://api.github.com/repos/dmnjohns/api-checker/tags","blobs_url":"https://api.github.com/repos/dmnjohns/api-checker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/dmnjohns/api-checker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/dmnjohns/api-checker/git/refs{/sha}","trees_url":"https://api.github.com/repos/dmnjohns/api-checker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/dmnjohns/api-checker/statuses/{sha}","languages_url":"https://api.github.com/repos/dmnjohns/api-checker/languages","stargazers_url":"https://api.github.com/repos/dmnjohns/api-checker/stargazers","contributors_url":"https://api.github.com/repos/dmnjohns/api-checker/contributors","subscribers_url":"https://api.github.com/repos/dmnjohns/api-checker/subscribers","subscription_url":"https://api.github.com/repos/dmnjohns/api-checker/subscription","commits_url":"https://api.github.com/repos/dmnjohns/api-checker/commits{/sha}","git_commits_url":"https://api.github.com/repos/dmnjohns/api-checker/git/commits{/sha}","comments_url":"https://api.github.com/repos/dmnjohns/api-checker/comments{/number}","issue_comment_url":"https://api.github.com/repos/dmnjohns/api-checker/issues/comments{/number}","contents_url":"https://api.github.com/repos/dmnjohns/api-checker/contents/{+path}","compare_url":"https://api.github.com/repos/dmnjohns/api-checker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/dmnjohns/api-checker/merges","archive_url":"https://api.github.com/repos/dmnjohns/api-checker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/dmnjohns/api-checker/downloads","issues_url":"https://api.github.com/repos/dmnjohns/api-checker/issues{/number}","pulls_url":"https://api.github.com/repos/dmnjohns/api-checker/pulls{/number}","milestones_url":"https://api.github.com/repos/dmnjohns/api-checker/milestones{/number}","notifications_url":"https://api.github.com/repos/dmnjohns/api-checker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/dmnjohns/api-checker/labels{/name}","releases_url":"https://api.github.com/repos/dmnjohns/api-checker/releases{/id}","deployments_url":"https://api.github.com/repos/dmnjohns/api-checker/deployments","created_at":"2013-12-12T15:46:50Z","updated_at":"2013-12-12T17:04:57Z","pushed_at":"2017-08-02T18:14:32Z","git_url":"git://github.com/dmnjohns/api-checker.git","ssh_url":"git@github.com:dmnjohns/api-checker.git","clone_url":"https://github.com/dmnjohns/api-checker.git","svn_url":"https://github.com/dmnjohns/api-checker","homepage":"","size":2822,"stargazers_count":0,"watchers_count":0,"language":"Scala","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"RackerWilliams:capture-header-elem","ref":"capture-header-elem","sha":"c4e3773d9c549f968906e8be0e6a8173568a899c","user":{"login":"RackerWilliams","id":348314,"avatar_url":"https://avatars1.githubusercontent.com/u/348314?v=4","gravatar_id":"","url":"https://api.github.com/users/RackerWilliams","html_url":"https://github.com/RackerWilliams","followers_url":"https://api.github.com/users/RackerWilliams/followers","following_url":"https://api.github.com/users/RackerWilliams/following{/other_user}","gists_url":"https://api.github.com/users/RackerWilliams/gists{/gist_id}","starred_url":"https://api.github.com/users/RackerWilliams/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RackerWilliams/subscriptions","organizations_url":"https://api.github.com/users/RackerWilliams/orgs","repos_url":"https://api.github.com/users/RackerWilliams/repos","events_url":"https://api.github.com/users/RackerWilliams/events{/privacy}","received_events_url":"https://api.github.com/users/RackerWilliams/received_events","type":"User","site_admin":false},"repo":{"id":14898211,"name":"api-checker","full_name":"RackerWilliams/api-checker","owner":{"login":"RackerWilliams","id":348314,"avatar_url":"https://avatars1.githubusercontent.com/u/348314?v=4","gravatar_id":"","url":"https://api.github.com/users/RackerWilliams","html_url":"https://github.com/RackerWilliams","followers_url":"https://api.github.com/users/RackerWilliams/followers","following_url":"https://api.github.com/users/RackerWilliams/following{/other_user}","gists_url":"https://api.github.com/users/RackerWilliams/gists{/gist_id}","starred_url":"https://api.github.com/users/RackerWilliams/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/RackerWilliams/subscriptions","organizations_url":"https://api.github.com/users/RackerWilliams/orgs","repos_url":"https://api.github.com/users/RackerWilliams/repos","events_url":"https://api.github.com/users/RackerWilliams/events{/privacy}","received_events_url":"https://api.github.com/users/RackerWilliams/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/RackerWilliams/api-checker","description":null,"fork":true,"url":"https://api.github.com/repos/RackerWilliams/api-checker","forks_url":"https://api.github.com/repos/RackerWilliams/api-checker/forks","keys_url":"https://api.github.com/repos/RackerWilliams/api-checker/keys{/key_id}","collaborators_url":"https://api.github.com/repos/RackerWilliams/api-checker/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/RackerWilliams/api-checker/teams","hooks_url":"https://api.github.com/repos/RackerWilliams/api-checker/hooks","issue_events_url":"https://api.github.com/repos/RackerWilliams/api-checker/issues/events{/number}","events_url":"https://api.github.com/repos/RackerWilliams/api-checker/events","assignees_url":"https://api.github.com/repos/RackerWilliams/api-checker/assignees{/user}","branches_url":"https://api.github.com/repos/RackerWilliams/api-checker/branches{/branch}","tags_url":"https://api.github.com/repos/RackerWilliams/api-checker/tags","blobs_url":"https://api.github.com/repos/RackerWilliams/api-checker/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/RackerWilliams/api-checker/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/RackerWilliams/api-checker/git/refs{/sha}","trees_url":"https://api.github.com/repos/RackerWilliams/api-checker/git/trees{/sha}","statuses_url":"https://api.github.com/repos/RackerWilliams/api-checker/statuses/{sha}","languages_url":"https://api.github.com/repos/RackerWilliams/api-checker/languages","stargazers_url":"https://api.github.com/repos/RackerWilliams/api-checker/stargazers","contributors_url":"https://api.github.com/repos/RackerWilliams/api-checker/contributors","subscribers_url":"https://api.github.com/repos/RackerWilliams/api-checker/subscribers","subscription_url":"https://api.github.com/repos/RackerWilliams/api-checker/subscription","commits_url":"https://api.github.com/repos/RackerWilliams/api-checker/commits{/sha}","git_commits_url":"https://api.github.com/repos/RackerWilliams/api-checker/git/commits{/sha}","comments_url":"https://api.github.com/repos/RackerWilliams/api-checker/comments{/number}","issue_comment_url":"https://api.github.com/repos/RackerWilliams/api-checker/issues/comments{/number}","contents_url":"https://api.github.com/repos/RackerWilliams/api-checker/contents/{+path}","compare_url":"https://api.github.com/repos/RackerWilliams/api-checker/compare/{base}...{head}","merges_url":"https://api.github.com/repos/RackerWilliams/api-checker/merges","archive_url":"https://api.github.com/repos/RackerWilliams/api-checker/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/RackerWilliams/api-checker/downloads","issues_url":"https://api.github.com/repos/RackerWilliams/api-checker/issues{/number}","pulls_url":"https://api.github.com/repos/RackerWilliams/api-checker/pulls{/number}","milestones_url":"https://api.github.com/repos/RackerWilliams/api-checker/milestones{/number}","notifications_url":"https://api.github.com/repos/RackerWilliams/api-checker/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/RackerWilliams/api-checker/labels{/name}","releases_url":"https://api.github.com/repos/RackerWilliams/api-checker/releases{/id}","deployments_url":"https://api.github.com/repos/RackerWilliams/api-checker/deployments","created_at":"2013-12-03T15:52:26Z","updated_at":"2015-04-28T14:46:18Z","pushed_at":"2017-08-02T18:21:43Z","git_url":"git://github.com/RackerWilliams/api-checker.git","ssh_url":"git@github.com:RackerWilliams/api-checker.git","clone_url":"https://github.com/RackerWilliams/api-checker.git","svn_url":"https://github.com/RackerWilliams/api-checker","homepage":"","size":4379,"stargazers_count":0,"watchers_count":0,"language":"Scala","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":1,"forks":0,"open_issues":1,"watchers":0,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/1"},"html":{"href":"https://github.com/RackerWilliams/api-checker/pull/1"},"issue":{"href":"https://api.github.com/repos/RackerWilliams/api-checker/issues/1"},"comments":{"href":"https://api.github.com/repos/RackerWilliams/api-checker/issues/1/comments"},"review_comments":{"href":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/1/comments"},"review_comment":{"href":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/RackerWilliams/api-checker/pulls/1/commits"},"statuses":{"href":"https://api.github.com/repos/RackerWilliams/api-checker/statuses/65925538957699a918cd7ab758e987f839413f92"}}}}
{"actor":{"display_login":"RackerWilliams"}}