{"action":"created","comment":{"url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/comments/195822880","pull_request_review_id":129268249,"id":195822880,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDE5NTgyMjg4MA==","diff_hunk":"@@ -0,0 +1,178 @@\n+package Cpanel::Security::Advisor::Assessors::Usernames;\n+\n+# Copyright (c) 2018, cPanel, Inc.\n+# All rights reserved.\n+# http://cpanel.net\n+#\n+# Redistribution and use in source and binary forms, with or without\n+# modification, are permitted provided that the following conditions are met:\n+#     * Redistributions of source code must retain the above copyright\n+#       notice, this list of conditions and the following disclaimer.\n+#     * Redistributions in binary form must reproduce the above copyright\n+#       notice, this list of conditions and the following disclaimer in the\n+#       documentation and/or other materials provided with the distribution.\n+#     * Neither the name of the owner nor the names of its contributors may\n+#       be used to endorse or promote products derived from this software\n+#       without specific prior written permission.\n+#\n+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS \"AS IS\" AND\n+# ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED\n+# WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE\n+# DISCLAIMED. IN NO EVENT SHALL  BE LIABLE FOR ANY\n+# DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES\n+# (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES;\n+# LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND\n+# ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT\n+# (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS\n+# SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.\n+\n+use warnings;\n+use strict;\n+\n+use Cpanel::Config::LoadUserOwners   ();\n+use Cpanel::Config::LoadUserDomains  ();\n+use Cpanel::ArrayFunc::Uniq          ();\n+use Cpanel::Validate::Username::Core ();\n+\n+use base 'Cpanel::Security::Advisor::Assessors';\n+\n+my $GO_URL = \"https://go.cpanel.net/usernames\";\n+\n+my $update_user_domains_cmd = '/scripts/updateuserdomains --force';\n+my $rename_user_cmd         = 'whmapi1 modifyacct user=old_username newuser=new_username';\n+\n+sub generate_advice {\n+    my ($self) = @_;\n+    $self->_check_for_invalid_users;\n+\n+    return 1;\n+}\n+\n+sub _check_for_invalid_users {\n+    my ($self) = @_;\n+\n+    my @users;\n+\n+    # gather the users in /etc/trueuserowners file.\n+    my %trueuserowners;\n+    Cpanel::Config::LoadUserOwners::loadtrueuserowners( \\%trueuserowners, 1, 1 );\n+    my @true_users = ( keys %trueuserowners );\n+\n+    # gather users that exist in /var/cpanel/userdata directory\n+    my $user_data_dir = '/var/cpanel/userdata';\n+    opendir( my $userdata_dh, $user_data_dir );\n+    my @userdata_users = grep { $_ !~ /\\A\\.{1,2}\\z|\\Anobody\\z/ && -e \"$user_data_dir/$_/main\" } readdir $userdata_dh;\n+\n+    # find misconfigured users that have userdata but don't exist in the owners file, and vice versa.\n+    my %userdata_hash = map { $_ => 1 } @userdata_users;\n+    my @true_owner_no_userdata = grep { !$userdata_hash{$_} } @true_users;\n+\n+    # gather the domain owners\n+    my $userdomains  = Cpanel::Config::LoadUserDomains::loaduserdomains();\n+    my @domain_users = ( keys %{$userdomains} );\n+\n+    # find domains owners who do not have userdata or do not exist in the trueuserowners file.\n+    my @has_domain_no_userdata   = grep { !$userdata_hash{$_} } @domain_users;\n+    my @has_domain_no_true_owner = grep { !$trueuserowners{$_} } @domain_users;\n+\n+    # get a list of unique users based on the previous user lists.\n+    my @uniq_users = Cpanel::ArrayFunc::Uniq::uniq( @true_users, @userdata_users );\n+    @uniq_users = Cpanel::ArrayFunc::Uniq::uniq( @uniq_users, @domain_users );\n+\n+    # check for user names that do not pass validation, or are reserved.\n+    my @reserved;\n+    my @reserved_by_alias;\n+    my @invalid;\n+    my @aliases = Cpanel::Validate::Username::Core::aliases();\n+\n+    foreach my $username (@uniq_users) {\n+        if ( Cpanel::Validate::Username::Core::reserved_username_check($username) ) {\n+            if ( grep { $_ =~ /\\A$username\\z/ } @aliases ) {","path":"pkg/Cpanel/Security/Advisor/Assessors/Usernames.pm","position":90,"original_position":90,"commit_id":"58fc6c63c74401a69035bba8ca5075f4ab0e17a1","original_commit_id":"58fc6c63c74401a69035bba8ca5075f4ab0e17a1","user":{"login":"bk2204","id":497054,"node_id":"MDQ6VXNlcjQ5NzA1NA==","avatar_url":"https://avatars0.githubusercontent.com/u/497054?v=4","gravatar_id":"","url":"https://api.github.com/users/bk2204","html_url":"https://github.com/bk2204","followers_url":"https://api.github.com/users/bk2204/followers","following_url":"https://api.github.com/users/bk2204/following{/other_user}","gists_url":"https://api.github.com/users/bk2204/gists{/gist_id}","starred_url":"https://api.github.com/users/bk2204/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bk2204/subscriptions","organizations_url":"https://api.github.com/users/bk2204/orgs","repos_url":"https://api.github.com/users/bk2204/repos","events_url":"https://api.github.com/users/bk2204/events{/privacy}","received_events_url":"https://api.github.com/users/bk2204/received_events","type":"User","site_admin":false},"body":"Again, avoiding writing `$_` would be more idiomatic.","created_at":"2018-06-15T18:09:35Z","updated_at":"2018-06-15T18:14:20Z","html_url":"https://github.com/CpanelInc/addon_securityadvisor/pull/81#discussion_r195822880","pull_request_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/81","author_association":"MEMBER","_links":{"self":{"href":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/comments/195822880"},"html":{"href":"https://github.com/CpanelInc/addon_securityadvisor/pull/81#discussion_r195822880"},"pull_request":{"href":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/81"}}},"pull_request":{"url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/81","id":195245225,"node_id":"MDExOlB1bGxSZXF1ZXN0MTk1MjQ1MjI1","html_url":"https://github.com/CpanelInc/addon_securityadvisor/pull/81","diff_url":"https://github.com/CpanelInc/addon_securityadvisor/pull/81.diff","patch_url":"https://github.com/CpanelInc/addon_securityadvisor/pull/81.patch","issue_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/issues/81","number":81,"state":"open","locked":false,"title":"Warn users about invalid, reserved, and misconfigured usernames.","user":{"login":"Jrad7","id":4291504,"node_id":"MDQ6VXNlcjQyOTE1MDQ=","avatar_url":"https://avatars2.githubusercontent.com/u/4291504?v=4","gravatar_id":"","url":"https://api.github.com/users/Jrad7","html_url":"https://github.com/Jrad7","followers_url":"https://api.github.com/users/Jrad7/followers","following_url":"https://api.github.com/users/Jrad7/following{/other_user}","gists_url":"https://api.github.com/users/Jrad7/gists{/gist_id}","starred_url":"https://api.github.com/users/Jrad7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jrad7/subscriptions","organizations_url":"https://api.github.com/users/Jrad7/orgs","repos_url":"https://api.github.com/users/Jrad7/repos","events_url":"https://api.github.com/users/Jrad7/events{/privacy}","received_events_url":"https://api.github.com/users/Jrad7/received_events","type":"User","site_admin":false},"body":"Case STS-620\r\n\r\nUsernames that do not conform to cPanel's username validation\r\nrequirements will now be alerted in the Security Advisor. This includes\r\nusernames that are reserved because of an email alias and user's that\r\nare in an incomplete state or misconfigured.","created_at":"2018-06-15T17:58:42Z","updated_at":"2018-06-15T18:14:20Z","closed_at":null,"merged_at":null,"merge_commit_sha":"c6276da137268a07eafb5730805cd8a7d988673b","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/81/commits","review_comments_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/81/comments","review_comment_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/comments{/number}","comments_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/issues/81/comments","statuses_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/statuses/58fc6c63c74401a69035bba8ca5075f4ab0e17a1","head":{"label":"Jrad7:sts620","ref":"sts620","sha":"58fc6c63c74401a69035bba8ca5075f4ab0e17a1","user":{"login":"Jrad7","id":4291504,"node_id":"MDQ6VXNlcjQyOTE1MDQ=","avatar_url":"https://avatars2.githubusercontent.com/u/4291504?v=4","gravatar_id":"","url":"https://api.github.com/users/Jrad7","html_url":"https://github.com/Jrad7","followers_url":"https://api.github.com/users/Jrad7/followers","following_url":"https://api.github.com/users/Jrad7/following{/other_user}","gists_url":"https://api.github.com/users/Jrad7/gists{/gist_id}","starred_url":"https://api.github.com/users/Jrad7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jrad7/subscriptions","organizations_url":"https://api.github.com/users/Jrad7/orgs","repos_url":"https://api.github.com/users/Jrad7/repos","events_url":"https://api.github.com/users/Jrad7/events{/privacy}","received_events_url":"https://api.github.com/users/Jrad7/received_events","type":"User","site_admin":false},"repo":{"id":12388618,"node_id":"MDEwOlJlcG9zaXRvcnkxMjM4ODYxOA==","name":"addon_securityadvisor","full_name":"Jrad7/addon_securityadvisor","owner":{"login":"Jrad7","id":4291504,"node_id":"MDQ6VXNlcjQyOTE1MDQ=","avatar_url":"https://avatars2.githubusercontent.com/u/4291504?v=4","gravatar_id":"","url":"https://api.github.com/users/Jrad7","html_url":"https://github.com/Jrad7","followers_url":"https://api.github.com/users/Jrad7/followers","following_url":"https://api.github.com/users/Jrad7/following{/other_user}","gists_url":"https://api.github.com/users/Jrad7/gists{/gist_id}","starred_url":"https://api.github.com/users/Jrad7/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/Jrad7/subscriptions","organizations_url":"https://api.github.com/users/Jrad7/orgs","repos_url":"https://api.github.com/users/Jrad7/repos","events_url":"https://api.github.com/users/Jrad7/events{/privacy}","received_events_url":"https://api.github.com/users/Jrad7/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/Jrad7/addon_securityadvisor","description":"Security Advisor Addon for cPanel 11.38 (concept)","fork":true,"url":"https://api.github.com/repos/Jrad7/addon_securityadvisor","forks_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/forks","keys_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/keys{/key_id}","collaborators_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/teams","hooks_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/hooks","issue_events_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/issues/events{/number}","events_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/events","assignees_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/assignees{/user}","branches_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/branches{/branch}","tags_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/tags","blobs_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/git/refs{/sha}","trees_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/git/trees{/sha}","statuses_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/statuses/{sha}","languages_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/languages","stargazers_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/stargazers","contributors_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/contributors","subscribers_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/subscribers","subscription_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/subscription","commits_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/commits{/sha}","git_commits_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/git/commits{/sha}","comments_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/comments{/number}","issue_comment_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/issues/comments{/number}","contents_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/contents/{+path}","compare_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/compare/{base}...{head}","merges_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/merges","archive_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/downloads","issues_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/issues{/number}","pulls_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/pulls{/number}","milestones_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/milestones{/number}","notifications_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/labels{/name}","releases_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/releases{/id}","deployments_url":"https://api.github.com/repos/Jrad7/addon_securityadvisor/deployments","created_at":"2013-08-26T20:11:33Z","updated_at":"2015-09-18T18:36:26Z","pushed_at":"2018-06-15T17:55:50Z","git_url":"git://github.com/Jrad7/addon_securityadvisor.git","ssh_url":"git@github.com:Jrad7/addon_securityadvisor.git","clone_url":"https://github.com/Jrad7/addon_securityadvisor.git","svn_url":"https://github.com/Jrad7/addon_securityadvisor","homepage":null,"size":384,"stargazers_count":1,"watchers_count":1,"language":"Perl","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":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":0,"open_issues":0,"watchers":1,"default_branch":"master"}},"base":{"label":"CpanelInc:master","ref":"master","sha":"55f58ddbdba96097f8acfd97dfd67f5fd4c4423e","user":{"login":"CpanelInc","id":549400,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0OTQwMA==","avatar_url":"https://avatars3.githubusercontent.com/u/549400?v=4","gravatar_id":"","url":"https://api.github.com/users/CpanelInc","html_url":"https://github.com/CpanelInc","followers_url":"https://api.github.com/users/CpanelInc/followers","following_url":"https://api.github.com/users/CpanelInc/following{/other_user}","gists_url":"https://api.github.com/users/CpanelInc/gists{/gist_id}","starred_url":"https://api.github.com/users/CpanelInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CpanelInc/subscriptions","organizations_url":"https://api.github.com/users/CpanelInc/orgs","repos_url":"https://api.github.com/users/CpanelInc/repos","events_url":"https://api.github.com/users/CpanelInc/events{/privacy}","received_events_url":"https://api.github.com/users/CpanelInc/received_events","type":"Organization","site_admin":false},"repo":{"id":10258864,"node_id":"MDEwOlJlcG9zaXRvcnkxMDI1ODg2NA==","name":"addon_securityadvisor","full_name":"CpanelInc/addon_securityadvisor","owner":{"login":"CpanelInc","id":549400,"node_id":"MDEyOk9yZ2FuaXphdGlvbjU0OTQwMA==","avatar_url":"https://avatars3.githubusercontent.com/u/549400?v=4","gravatar_id":"","url":"https://api.github.com/users/CpanelInc","html_url":"https://github.com/CpanelInc","followers_url":"https://api.github.com/users/CpanelInc/followers","following_url":"https://api.github.com/users/CpanelInc/following{/other_user}","gists_url":"https://api.github.com/users/CpanelInc/gists{/gist_id}","starred_url":"https://api.github.com/users/CpanelInc/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/CpanelInc/subscriptions","organizations_url":"https://api.github.com/users/CpanelInc/orgs","repos_url":"https://api.github.com/users/CpanelInc/repos","events_url":"https://api.github.com/users/CpanelInc/events{/privacy}","received_events_url":"https://api.github.com/users/CpanelInc/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/CpanelInc/addon_securityadvisor","description":"Security Advisor for cPanel & WHM (canonical upstream repo) ","fork":true,"url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor","forks_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/forks","keys_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/keys{/key_id}","collaborators_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/teams","hooks_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/hooks","issue_events_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/issues/events{/number}","events_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/events","assignees_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/assignees{/user}","branches_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/branches{/branch}","tags_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/tags","blobs_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/git/refs{/sha}","trees_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/git/trees{/sha}","statuses_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/statuses/{sha}","languages_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/languages","stargazers_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/stargazers","contributors_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/contributors","subscribers_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/subscribers","subscription_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/subscription","commits_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/commits{/sha}","git_commits_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/git/commits{/sha}","comments_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/comments{/number}","issue_comment_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/issues/comments{/number}","contents_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/contents/{+path}","compare_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/compare/{base}...{head}","merges_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/merges","archive_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/downloads","issues_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/issues{/number}","pulls_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls{/number}","milestones_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/milestones{/number}","notifications_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/labels{/name}","releases_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/releases{/id}","deployments_url":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/deployments","created_at":"2013-05-24T03:49:40Z","updated_at":"2018-01-22T16:31:03Z","pushed_at":"2018-06-15T17:58:42Z","git_url":"git://github.com/CpanelInc/addon_securityadvisor.git","ssh_url":"git@github.com:CpanelInc/addon_securityadvisor.git","clone_url":"https://github.com/CpanelInc/addon_securityadvisor.git","svn_url":"https://github.com/CpanelInc/addon_securityadvisor","homepage":"","size":381,"stargazers_count":18,"watchers_count":18,"language":"Perl","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":26,"mirror_url":null,"archived":false,"open_issues_count":2,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":26,"open_issues":2,"watchers":18,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/81"},"html":{"href":"https://github.com/CpanelInc/addon_securityadvisor/pull/81"},"issue":{"href":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/issues/81"},"comments":{"href":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/issues/81/comments"},"review_comments":{"href":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/81/comments"},"review_comment":{"href":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/pulls/81/commits"},"statuses":{"href":"https://api.github.com/repos/CpanelInc/addon_securityadvisor/statuses/58fc6c63c74401a69035bba8ca5075f4ab0e17a1"}},"author_association":"NONE"}}
{"actor":{"display_login":"bk2204"}}