{"action":"created","comment":{"url":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/comments/223370308","pull_request_review_id":162479167,"id":223370308,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIyMzM3MDMwOA==","diff_hunk":"@@ -0,0 +1,174 @@\n+= ELY-1686 Add utility to port legacy properties files into a FileSystemRealm\n+:author:            Justin Michael Cook\n+:email:             jucook@redhat.com\n+:toc:               left\n+:icons:             font\n+:idprefix:\n+:idseparator:       -\n+:issue-base-url:    https://issues.jboss.org/browse\n+\n+== Overview\n+\n+Currently, converting legacy security properties files into an Elytron FileSystemRealm\n+must be done manually, there should be a migration tool that automates this conversion.\n+This task is to add such a tool to WildFly Elytron Tool.\n+\n+== Issue Metadata\n+\n+=== Issue\n+\n+* https://issues.jboss.org/browse/ELY-1686[ELY-1686]\n+\n+=== Related Issues\n+\n+* https://issues.jboss.org/browse/EAP7-1093[EAP7-1093]\n+\n+=== Dev Contacts\n+\n+* mailto:{email}[{author}]\n+\n+=== QE Contacts\n+\n+* mailto:msvehla@redhat.com[Martin Švehla]\n+\n+=== Affected Projects or Components\n+\n+* WildFly Elytron Tool\n+\n+=== Other Interested Projects\n+\n+== Requirements\n+\n+=== Hard Requirements\n+\n+* It should be possible to have legacy properties file converted into an Elytron\n+FileSystemRealm automatically. This should be done by adding a command named\n+FileSystemRealmCommand to the Elytron-Tool. This command will create a users directory from\n+a given path and then use that directory to create a FileSystemRealm. The command will provide\n+a script file containing any additional WildFly CLI commands needed to fully register the\n+FileSystemRealm in Elytron, such as those needed to configure the security-domain,\n+http-authentication-factory, and application-security-domain. The command will not provide any\n+WildFly CLI commands in the output for any optional parameters that are not specified.\n+\n+* This command will require a users properties file, roles properties file, and output\n+directory. The paths to these files and directory should be able to be\n+relative to the administrator's current directory or should be able to be absolute.\n+Optionally, it will require the name of the filesystem-realm, security-domain,\n+http-authentication-factory, and application-security domain to be specified. If these\n+options are not specified, then they will be generated using the inputted file names.\n+It should be possible to specify the password using any supported mechanism.\n+\n+** Command with only required options\n+[source,bash]\n+./bin/elytron-tool.sh filesystem-realm --user-file/-u <userFile> --roles-file/-r <rolesFile>\n+--output-location/-o <outDirectory>\n+\n+** Command with all possible options\n+[source,bash]\n+./bin/elytron-tool.sh filesystem-realm --user-file/-u <userFile> --roles-file/-r <rolesFile>\n+--output-location/-o <outDirectory> [--filesystem-realm-name/-f] <name>\n+[--security-domain-name/-s] <name> [--http-authentication-factory-name/-h] <name>\n+[--application-security-domain-name/-a] <name>\n+\n+* There should be a text descriptor file that allows multiple inputs to be specified. The\n+descriptor file should only accept the long-form option names for readability. Using the\n+text descriptor file will have its own option, --bulk-convert/-b\n+\n+** CLI Command\n+[source,bash]\n+./bin/elytron-tool.sh filesystem-realm --bulk-convert/-b <file>\n+\n+** Text descriptor file\n+[source,text]\n+----\n+user-file:/relative/path/to/userFile1\n+roles-file:/relative/path/to/rolesFile1\n+output-location:/relative/path/to/output/outDirectory1\n+filesystem-realm-name:nameOfFileSystemRealm1\n+security-domain-name:nameOfSecurityDomain1\n+http-authentication-factory-name:nameOfHttpAuthenticationFactory1\n+application-security-domain-name:nameOfApplicationSecurityDomain1\n+\n+user-file:/absolute/path/to/userFile2\n+roles-file:/absolute/path/to/rolesFile2\n+output-location:/absolute/path/to/output/outDirectory2\n+filesystem-realm-name:nameOfFileSystemRealm2\n+security-domain-name:nameOfSecurityDomain2\n+http-authentication-factory-name:nameOfHttpAuthenticationFactory2\n+application-security-domain-name:nameOfApplicationSecurityDomain2\n+----\n+\n+* Summary of options and their description\n+|===\n+|Long-form |Short-form |Description\n+\n+| --user-file\n+| -u\n+| The relative or absolute path to the users file\n+\n+| --roles-file\n+| -r\n+| The relative or absolute path to the roles file\n+\n+| --output-location\n+| -o\n+| The relative or absolute path to the output directory\n+\n+| --filesystem-realm-name\n+| -f\n+| Name of the filesystem-realm to be configured\n+\n+| --security-domain-name\n+| -s\n+| Name of the security-domain to be configured\n+\n+| --http-authentication-factory-name\n+| -h\n+| Name of the http-authentication-factory to be configured\n+\n+| --application-security-domain-name\n+| -a\n+| Name of the application-security-domain to be configured\n+\n+| --bulk-convert\n+| -b\n+| Tells the command to use a descriptor file, for multiple users-roles file combinations\n+can be provided.\n+|===\n+\n+=== Nice-to-Have Requirements\n+\n+* The command should have a silent option, similar to the -s option in the unix make\n+command, where only errors and prompts are printed.\n+[source,bash]\n+./bin/elytron-tool.sh filesystem-realm [--silent] --bulk-convert/-b <file>\n+\n+* The command should have a summary option that prints out detailed information on\n+every operation that was performed, once the command has finished converting all files.\n+[source,bash]\n+./bin/elytron-tool.sh filesystem-realm [--summary] --bulk-convert/-b <file>\n+\n+* Summary of nice-to-have options and their description\n+|===\n+|Long-form |Short-form |Description\n+\n+| --silent\n+| N/A\n+| Suppresses all output except errors and prompts\n+\n+| --summary\n+| N/A\n+| Provides a detailed summary of all operations performed, once the command finishes.","path":"elytron/ELY-1686-legacy-properties-files-into-FileSystemRealm-utility.adoc","position":161,"original_position":161,"commit_id":"3caf4824979df4490a453b231095d569c7bcb748","original_commit_id":"3caf4824979df4490a453b231095d569c7bcb748","user":{"login":"msve","id":1478275,"node_id":"MDQ6VXNlcjE0NzgyNzU=","avatar_url":"https://avatars0.githubusercontent.com/u/1478275?v=4","gravatar_id":"","url":"https://api.github.com/users/msve","html_url":"https://github.com/msve","followers_url":"https://api.github.com/users/msve/followers","following_url":"https://api.github.com/users/msve/following{/other_user}","gists_url":"https://api.github.com/users/msve/gists{/gist_id}","starred_url":"https://api.github.com/users/msve/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/msve/subscriptions","organizations_url":"https://api.github.com/users/msve/orgs","repos_url":"https://api.github.com/users/msve/repos","events_url":"https://api.github.com/users/msve/events{/privacy}","received_events_url":"https://api.github.com/users/msve/received_events","type":"User","site_admin":false},"body":"Are --silent and --summary mutually exclusive?","created_at":"2018-10-08T13:50:10Z","updated_at":"2018-10-08T13:50:10Z","html_url":"https://github.com/wildfly/wildfly-proposals/pull/136#discussion_r223370308","pull_request_url":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/136","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/comments/223370308"},"html":{"href":"https://github.com/wildfly/wildfly-proposals/pull/136#discussion_r223370308"},"pull_request":{"href":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/136"}}},"pull_request":{"url":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/136","id":220480449,"node_id":"MDExOlB1bGxSZXF1ZXN0MjIwNDgwNDQ5","html_url":"https://github.com/wildfly/wildfly-proposals/pull/136","diff_url":"https://github.com/wildfly/wildfly-proposals/pull/136.diff","patch_url":"https://github.com/wildfly/wildfly-proposals/pull/136.patch","issue_url":"https://api.github.com/repos/wildfly/wildfly-proposals/issues/136","number":136,"state":"open","locked":false,"title":"[ELY-1686] Utility to port legacy properties file into a FileSystemRealm","user":{"login":"justinmcook","id":22107325,"node_id":"MDQ6VXNlcjIyMTA3MzI1","avatar_url":"https://avatars3.githubusercontent.com/u/22107325?v=4","gravatar_id":"","url":"https://api.github.com/users/justinmcook","html_url":"https://github.com/justinmcook","followers_url":"https://api.github.com/users/justinmcook/followers","following_url":"https://api.github.com/users/justinmcook/following{/other_user}","gists_url":"https://api.github.com/users/justinmcook/gists{/gist_id}","starred_url":"https://api.github.com/users/justinmcook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinmcook/subscriptions","organizations_url":"https://api.github.com/users/justinmcook/orgs","repos_url":"https://api.github.com/users/justinmcook/repos","events_url":"https://api.github.com/users/justinmcook/events{/privacy}","received_events_url":"https://api.github.com/users/justinmcook/received_events","type":"User","site_admin":false},"body":"Jira: https://issues.jboss.org/browse/ELY-1686","created_at":"2018-10-04T18:50:23Z","updated_at":"2018-10-08T13:50:10Z","closed_at":null,"merged_at":null,"merge_commit_sha":"ca80460fb05acbc5639c1c3e17710cb4532af2bb","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/136/commits","review_comments_url":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/136/comments","review_comment_url":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/comments{/number}","comments_url":"https://api.github.com/repos/wildfly/wildfly-proposals/issues/136/comments","statuses_url":"https://api.github.com/repos/wildfly/wildfly-proposals/statuses/3caf4824979df4490a453b231095d569c7bcb748","head":{"label":"justinmcook:ELY-1686-legacy-properties-files-into-FileSystemRealm-utility","ref":"ELY-1686-legacy-properties-files-into-FileSystemRealm-utility","sha":"3caf4824979df4490a453b231095d569c7bcb748","user":{"login":"justinmcook","id":22107325,"node_id":"MDQ6VXNlcjIyMTA3MzI1","avatar_url":"https://avatars3.githubusercontent.com/u/22107325?v=4","gravatar_id":"","url":"https://api.github.com/users/justinmcook","html_url":"https://github.com/justinmcook","followers_url":"https://api.github.com/users/justinmcook/followers","following_url":"https://api.github.com/users/justinmcook/following{/other_user}","gists_url":"https://api.github.com/users/justinmcook/gists{/gist_id}","starred_url":"https://api.github.com/users/justinmcook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinmcook/subscriptions","organizations_url":"https://api.github.com/users/justinmcook/orgs","repos_url":"https://api.github.com/users/justinmcook/repos","events_url":"https://api.github.com/users/justinmcook/events{/privacy}","received_events_url":"https://api.github.com/users/justinmcook/received_events","type":"User","site_admin":false},"repo":{"id":142062654,"node_id":"MDEwOlJlcG9zaXRvcnkxNDIwNjI2NTQ=","name":"wildfly-proposals","full_name":"justinmcook/wildfly-proposals","private":false,"owner":{"login":"justinmcook","id":22107325,"node_id":"MDQ6VXNlcjIyMTA3MzI1","avatar_url":"https://avatars3.githubusercontent.com/u/22107325?v=4","gravatar_id":"","url":"https://api.github.com/users/justinmcook","html_url":"https://github.com/justinmcook","followers_url":"https://api.github.com/users/justinmcook/followers","following_url":"https://api.github.com/users/justinmcook/following{/other_user}","gists_url":"https://api.github.com/users/justinmcook/gists{/gist_id}","starred_url":"https://api.github.com/users/justinmcook/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/justinmcook/subscriptions","organizations_url":"https://api.github.com/users/justinmcook/orgs","repos_url":"https://api.github.com/users/justinmcook/repos","events_url":"https://api.github.com/users/justinmcook/events{/privacy}","received_events_url":"https://api.github.com/users/justinmcook/received_events","type":"User","site_admin":false},"html_url":"https://github.com/justinmcook/wildfly-proposals","description":"A central location for analysis and design documents of new features and capabilities in the WildFly project universe","fork":true,"url":"https://api.github.com/repos/justinmcook/wildfly-proposals","forks_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/forks","keys_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/keys{/key_id}","collaborators_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/teams","hooks_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/hooks","issue_events_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/issues/events{/number}","events_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/events","assignees_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/assignees{/user}","branches_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/branches{/branch}","tags_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/tags","blobs_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/git/refs{/sha}","trees_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/git/trees{/sha}","statuses_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/statuses/{sha}","languages_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/languages","stargazers_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/stargazers","contributors_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/contributors","subscribers_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/subscribers","subscription_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/subscription","commits_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/commits{/sha}","git_commits_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/git/commits{/sha}","comments_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/comments{/number}","issue_comment_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/issues/comments{/number}","contents_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/contents/{+path}","compare_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/compare/{base}...{head}","merges_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/merges","archive_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/downloads","issues_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/issues{/number}","pulls_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/pulls{/number}","milestones_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/milestones{/number}","notifications_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/labels{/name}","releases_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/releases{/id}","deployments_url":"https://api.github.com/repos/justinmcook/wildfly-proposals/deployments","created_at":"2018-07-23T19:56:02Z","updated_at":"2018-07-23T19:56:04Z","pushed_at":"2018-10-05T16:22:40Z","git_url":"git://github.com/justinmcook/wildfly-proposals.git","ssh_url":"git@github.com:justinmcook/wildfly-proposals.git","clone_url":"https://github.com/justinmcook/wildfly-proposals.git","svn_url":"https://github.com/justinmcook/wildfly-proposals","homepage":null,"size":248,"stargazers_count":0,"watchers_count":0,"language":null,"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":"wildfly:master","ref":"master","sha":"f532636b75755a80b6f564929eac2a9b45fed796","user":{"login":"wildfly","id":3066274,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwNjYyNzQ=","avatar_url":"https://avatars2.githubusercontent.com/u/3066274?v=4","gravatar_id":"","url":"https://api.github.com/users/wildfly","html_url":"https://github.com/wildfly","followers_url":"https://api.github.com/users/wildfly/followers","following_url":"https://api.github.com/users/wildfly/following{/other_user}","gists_url":"https://api.github.com/users/wildfly/gists{/gist_id}","starred_url":"https://api.github.com/users/wildfly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wildfly/subscriptions","organizations_url":"https://api.github.com/users/wildfly/orgs","repos_url":"https://api.github.com/users/wildfly/repos","events_url":"https://api.github.com/users/wildfly/events{/privacy}","received_events_url":"https://api.github.com/users/wildfly/received_events","type":"Organization","site_admin":false},"repo":{"id":114395029,"node_id":"MDEwOlJlcG9zaXRvcnkxMTQzOTUwMjk=","name":"wildfly-proposals","full_name":"wildfly/wildfly-proposals","private":false,"owner":{"login":"wildfly","id":3066274,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMwNjYyNzQ=","avatar_url":"https://avatars2.githubusercontent.com/u/3066274?v=4","gravatar_id":"","url":"https://api.github.com/users/wildfly","html_url":"https://github.com/wildfly","followers_url":"https://api.github.com/users/wildfly/followers","following_url":"https://api.github.com/users/wildfly/following{/other_user}","gists_url":"https://api.github.com/users/wildfly/gists{/gist_id}","starred_url":"https://api.github.com/users/wildfly/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wildfly/subscriptions","organizations_url":"https://api.github.com/users/wildfly/orgs","repos_url":"https://api.github.com/users/wildfly/repos","events_url":"https://api.github.com/users/wildfly/events{/privacy}","received_events_url":"https://api.github.com/users/wildfly/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/wildfly/wildfly-proposals","description":"A central location for analysis and design documents of new features and capabilities in the WildFly project universe","fork":false,"url":"https://api.github.com/repos/wildfly/wildfly-proposals","forks_url":"https://api.github.com/repos/wildfly/wildfly-proposals/forks","keys_url":"https://api.github.com/repos/wildfly/wildfly-proposals/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wildfly/wildfly-proposals/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wildfly/wildfly-proposals/teams","hooks_url":"https://api.github.com/repos/wildfly/wildfly-proposals/hooks","issue_events_url":"https://api.github.com/repos/wildfly/wildfly-proposals/issues/events{/number}","events_url":"https://api.github.com/repos/wildfly/wildfly-proposals/events","assignees_url":"https://api.github.com/repos/wildfly/wildfly-proposals/assignees{/user}","branches_url":"https://api.github.com/repos/wildfly/wildfly-proposals/branches{/branch}","tags_url":"https://api.github.com/repos/wildfly/wildfly-proposals/tags","blobs_url":"https://api.github.com/repos/wildfly/wildfly-proposals/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wildfly/wildfly-proposals/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wildfly/wildfly-proposals/git/refs{/sha}","trees_url":"https://api.github.com/repos/wildfly/wildfly-proposals/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wildfly/wildfly-proposals/statuses/{sha}","languages_url":"https://api.github.com/repos/wildfly/wildfly-proposals/languages","stargazers_url":"https://api.github.com/repos/wildfly/wildfly-proposals/stargazers","contributors_url":"https://api.github.com/repos/wildfly/wildfly-proposals/contributors","subscribers_url":"https://api.github.com/repos/wildfly/wildfly-proposals/subscribers","subscription_url":"https://api.github.com/repos/wildfly/wildfly-proposals/subscription","commits_url":"https://api.github.com/repos/wildfly/wildfly-proposals/commits{/sha}","git_commits_url":"https://api.github.com/repos/wildfly/wildfly-proposals/git/commits{/sha}","comments_url":"https://api.github.com/repos/wildfly/wildfly-proposals/comments{/number}","issue_comment_url":"https://api.github.com/repos/wildfly/wildfly-proposals/issues/comments{/number}","contents_url":"https://api.github.com/repos/wildfly/wildfly-proposals/contents/{+path}","compare_url":"https://api.github.com/repos/wildfly/wildfly-proposals/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wildfly/wildfly-proposals/merges","archive_url":"https://api.github.com/repos/wildfly/wildfly-proposals/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wildfly/wildfly-proposals/downloads","issues_url":"https://api.github.com/repos/wildfly/wildfly-proposals/issues{/number}","pulls_url":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls{/number}","milestones_url":"https://api.github.com/repos/wildfly/wildfly-proposals/milestones{/number}","notifications_url":"https://api.github.com/repos/wildfly/wildfly-proposals/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wildfly/wildfly-proposals/labels{/name}","releases_url":"https://api.github.com/repos/wildfly/wildfly-proposals/releases{/id}","deployments_url":"https://api.github.com/repos/wildfly/wildfly-proposals/deployments","created_at":"2017-12-15T17:21:12Z","updated_at":"2018-10-04T13:54:14Z","pushed_at":"2018-10-05T16:22:41Z","git_url":"git://github.com/wildfly/wildfly-proposals.git","ssh_url":"git@github.com:wildfly/wildfly-proposals.git","clone_url":"https://github.com/wildfly/wildfly-proposals.git","svn_url":"https://github.com/wildfly/wildfly-proposals","homepage":null,"size":247,"stargazers_count":3,"watchers_count":3,"language":null,"has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":40,"mirror_url":null,"archived":false,"open_issues_count":38,"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":40,"open_issues":38,"watchers":3,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/136"},"html":{"href":"https://github.com/wildfly/wildfly-proposals/pull/136"},"issue":{"href":"https://api.github.com/repos/wildfly/wildfly-proposals/issues/136"},"comments":{"href":"https://api.github.com/repos/wildfly/wildfly-proposals/issues/136/comments"},"review_comments":{"href":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/136/comments"},"review_comment":{"href":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/wildfly/wildfly-proposals/pulls/136/commits"},"statuses":{"href":"https://api.github.com/repos/wildfly/wildfly-proposals/statuses/3caf4824979df4490a453b231095d569c7bcb748"}},"author_association":"CONTRIBUTOR"}}
{"actor":{"display_login":"msve"}}