{"action":"created","comment":{"url":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/comments/219426672","pull_request_review_id":157599408,"id":219426672,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxOTQyNjY3Mg==","diff_hunk":"@@ -0,0 +1,405 @@\n+# Copyright 2017-2018 Amazon.com, Inc. or its affiliates. All Rights Reserved.\r\n+#\r\n+# Licensed under the Apache License, Version 2.0 (the \"License\"). You may\r\n+# not use this file except in compliance with the License. A copy of the License is located at\r\n+#\r\n+#        http://aws.amazon.com/apache2.0/\r\n+#\r\n+# or in the \"license\" file accompanying this file. This file is distributed on an \"AS IS\" BASIS,\r\n+# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the License for\r\n+# the specific language governing permissions and limitations under the License.\r\n+\r\n+import json\r\n+import datetime\r\n+import boto3\r\n+import botocore\r\n+\r\n+##############\r\n+# Parameters #\r\n+##############\r\n+\r\n+# Define the default resource to report to Config Rules\r\n+DEFAULT_RESOURCE_TYPE = 'AWS::IAM::Role'\r\n+\r\n+# Set to True to get the lambda to assume the Role attached on the Config Service (useful for cross-account).\r\n+ASSUME_ROLE_MODE = False\r\n+\r\n+#############\r\n+# Main Code #\r\n+#############\r\n+\r\n+\r\n+def should_ignore_config_item(config_item, ignored_roles, ignored_users):\r\n+    return (config_item['configurationItemStatus'] == 'ResourceDeleted')\\\r\n+            or (config_item['resourceType'] == 'AWS::IAM::Role' and config_item['resourceName'] in ignored_roles)\\\r\n+            or (config_item['resourceType'] == 'AWS::IAM::User' and config_item['resourceName'] in ignored_users)\\\r\n+            or (config_item['ARN'].rsplit(\"/\")[1] == 'aws-service-role')\r\n+\r\n+\r\n+def get_user_policies(username):\r\n+    client = boto3.client('iam')\r\n+    # Get the users managed policies\r\n+    policies = [\r\n+        policy['PolicyName'] for policy in client.list_attached_user_policies(UserName=username)['AttachedPolicies']\r\n+    ]\r\n+    # Get the policies from the users groups\r\n+    groups = [\r\n+        group['GroupName'] for group in client.list_groups_for_user(UserName=username)['Groups']\r\n+    ]\r\n+    for group in groups:\r\n+        policies.extend([\r\n+            policy['PolicyName'] for policy in client.list_attached_group_policies(GroupName=group)['AttachedPolicies']\r\n+        ])\r\n+\r\n+    return policies\r\n+\r\n+\r\n+def get_role_policies(role_name):\r\n+    client = boto3.client('iam')\r\n+    # Get the users managed policies\r\n+    return [\r\n+        policy['PolicyName'] for policy in client.list_attached_role_policies(RoleName=role_name)['AttachedPolicies']\r\n+    ]\r\n+\r\n+\r\n+def has_policy_attached(resource_name, resource_type, policy_name):\r\n+    if resource_type == 'AWS::IAM::User':\r\n+        return policy_name in get_user_policies(resource_name)\r\n+    elif resource_type == 'AWS::IAM::Role':\r\n+        return policy_name in get_role_policies(resource_name)\r\n+    else:\r\n+        raise ValueError('Unable to handle resource type {}'.format(resource_type))\r\n+\r\n+\r\n+def evaluate_compliance(event, configuration_item, valid_rule_parameters):\r\n+    \"\"\"Form the evaluation(s) to be return to Config Rules\r\n+\r\n+    Return either:\r\n+    None -- when no result needs to be displayed\r\n+    a string -- either COMPLIANT, NON_COMPLIANT or NOT_APPLICABLE\r\n+    a dictionary -- the evaluation dictionary, usually built by build_evaluation_from_config_item()\r\n+    a list of dictionary -- a list of evaluation dictionary , usually built by build_evaluation()\r\n+\r\n+    Keyword arguments:\r\n+    event -- the event variable given in the lambda handler\r\n+    configuration_item -- the configurationItem dictionary in the invokingEvent\r\n+    valid_rule_parameters -- the output of the evaluate_parameters() representing validated parameters of the Config Rule\r\n+\r\n+    Advanced Notes:\r\n+    1 -- if a resource is deleted and generate a configuration change with ResourceDeleted status, the Boilerplate code will put a NOT_APPLICABLE on this resource automatically.\r\n+    2 -- if a None or a list of dictionary is returned, the old evaluation(s) which are not returned in the new evaluation list are returned as NOT_APPLICABLE by the Boilerplate code\r\n+    3 -- if None or an empty string, list or dict is returned, the Boilerplate code will put a \"shadow\" evaluation to feedback that the evaluation took place properly\r\n+    \"\"\"\r\n+    ignored_roles = valid_rule_parameters[\"ignored_roles\"]\r\n+    ignored_users = valid_rule_parameters[\"ignored_users\"]\r\n+    policy_name = valid_rule_parameters['policy_name']\r\n+\r\n+    if should_ignore_config_item(configuration_item, ignored_roles, ignored_users):\r\n+        return 'NOT_APPLICABLE'\r","path":"python/IAM_POLICY_REQUIRED/IAM_POLICY_REQUIRED.py","position":null,"original_position":98,"commit_id":"ca8c4270508d122fd731b19dea55dfcb63c439eb","original_commit_id":"4b28b603ac8fe45b022a6eb55a87a9068fb17fd0","user":{"login":"HieronymusLex","id":42975160,"node_id":"MDQ6VXNlcjQyOTc1MTYw","avatar_url":"https://avatars0.githubusercontent.com/u/42975160?v=4","gravatar_id":"","url":"https://api.github.com/users/HieronymusLex","html_url":"https://github.com/HieronymusLex","followers_url":"https://api.github.com/users/HieronymusLex/followers","following_url":"https://api.github.com/users/HieronymusLex/following{/other_user}","gists_url":"https://api.github.com/users/HieronymusLex/gists{/gist_id}","starred_url":"https://api.github.com/users/HieronymusLex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HieronymusLex/subscriptions","organizations_url":"https://api.github.com/users/HieronymusLex/orgs","repos_url":"https://api.github.com/users/HieronymusLex/repos","events_url":"https://api.github.com/users/HieronymusLex/events{/privacy}","received_events_url":"https://api.github.com/users/HieronymusLex/received_events","type":"User","site_admin":false},"body":"semantically it feels like NOT_APPLICABLE is more appropriate, since we're saying the resources should be excluded from evaluation - they weren't evaluated so they're neither COMPLIANT nor NON_COMPLIANT. However, I checked the IAM policy blacklisted and that returns COMPLIANT so I'll go with that for consistency","created_at":"2018-09-21T08:51:57Z","updated_at":"2018-09-21T08:51:57Z","html_url":"https://github.com/awslabs/aws-config-rules/pull/112#discussion_r219426672","pull_request_url":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/112","author_association":"NONE","_links":{"self":{"href":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/comments/219426672"},"html":{"href":"https://github.com/awslabs/aws-config-rules/pull/112#discussion_r219426672"},"pull_request":{"href":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/112"}},"in_reply_to_id":219332251},"pull_request":{"url":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/112","id":216569989,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE2NTY5OTg5","html_url":"https://github.com/awslabs/aws-config-rules/pull/112","diff_url":"https://github.com/awslabs/aws-config-rules/pull/112.diff","patch_url":"https://github.com/awslabs/aws-config-rules/pull/112.patch","issue_url":"https://api.github.com/repos/awslabs/aws-config-rules/issues/112","number":112,"state":"open","locked":false,"title":"Add IAM policy required config rule","user":{"login":"HieronymusLex","id":42975160,"node_id":"MDQ6VXNlcjQyOTc1MTYw","avatar_url":"https://avatars0.githubusercontent.com/u/42975160?v=4","gravatar_id":"","url":"https://api.github.com/users/HieronymusLex","html_url":"https://github.com/HieronymusLex","followers_url":"https://api.github.com/users/HieronymusLex/followers","following_url":"https://api.github.com/users/HieronymusLex/following{/other_user}","gists_url":"https://api.github.com/users/HieronymusLex/gists{/gist_id}","starred_url":"https://api.github.com/users/HieronymusLex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HieronymusLex/subscriptions","organizations_url":"https://api.github.com/users/HieronymusLex/orgs","repos_url":"https://api.github.com/users/HieronymusLex/repos","events_url":"https://api.github.com/users/HieronymusLex/events{/privacy}","received_events_url":"https://api.github.com/users/HieronymusLex/received_events","type":"User","site_admin":false},"body":"I confirm these files are made available under CC0 1.0 Universal (https://creativecommons.org/publicdomain/zero/1.0/legalcode)\r\n\r\n*Issue #, if available:*\r\n\r\n*Description of changes:*\r\nAdds a Config Rule that verifies all IAM Roles/Users have the given policy attached to them (either directly or through groups). Includes ability to exclude certain roles/users from the rule","created_at":"2018-09-19T09:22:41Z","updated_at":"2018-09-21T08:51:57Z","closed_at":null,"merged_at":null,"merge_commit_sha":"5350256d9221056997e511f717e92d8b9a1e82a2","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/112/commits","review_comments_url":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/112/comments","review_comment_url":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/comments{/number}","comments_url":"https://api.github.com/repos/awslabs/aws-config-rules/issues/112/comments","statuses_url":"https://api.github.com/repos/awslabs/aws-config-rules/statuses/ca8c4270508d122fd731b19dea55dfcb63c439eb","head":{"label":"HieronymusLex:master","ref":"master","sha":"ca8c4270508d122fd731b19dea55dfcb63c439eb","user":{"login":"HieronymusLex","id":42975160,"node_id":"MDQ6VXNlcjQyOTc1MTYw","avatar_url":"https://avatars0.githubusercontent.com/u/42975160?v=4","gravatar_id":"","url":"https://api.github.com/users/HieronymusLex","html_url":"https://github.com/HieronymusLex","followers_url":"https://api.github.com/users/HieronymusLex/followers","following_url":"https://api.github.com/users/HieronymusLex/following{/other_user}","gists_url":"https://api.github.com/users/HieronymusLex/gists{/gist_id}","starred_url":"https://api.github.com/users/HieronymusLex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HieronymusLex/subscriptions","organizations_url":"https://api.github.com/users/HieronymusLex/orgs","repos_url":"https://api.github.com/users/HieronymusLex/repos","events_url":"https://api.github.com/users/HieronymusLex/events{/privacy}","received_events_url":"https://api.github.com/users/HieronymusLex/received_events","type":"User","site_admin":false},"repo":{"id":149313742,"node_id":"MDEwOlJlcG9zaXRvcnkxNDkzMTM3NDI=","name":"aws-config-rules","full_name":"HieronymusLex/aws-config-rules","private":false,"owner":{"login":"HieronymusLex","id":42975160,"node_id":"MDQ6VXNlcjQyOTc1MTYw","avatar_url":"https://avatars0.githubusercontent.com/u/42975160?v=4","gravatar_id":"","url":"https://api.github.com/users/HieronymusLex","html_url":"https://github.com/HieronymusLex","followers_url":"https://api.github.com/users/HieronymusLex/followers","following_url":"https://api.github.com/users/HieronymusLex/following{/other_user}","gists_url":"https://api.github.com/users/HieronymusLex/gists{/gist_id}","starred_url":"https://api.github.com/users/HieronymusLex/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/HieronymusLex/subscriptions","organizations_url":"https://api.github.com/users/HieronymusLex/orgs","repos_url":"https://api.github.com/users/HieronymusLex/repos","events_url":"https://api.github.com/users/HieronymusLex/events{/privacy}","received_events_url":"https://api.github.com/users/HieronymusLex/received_events","type":"User","site_admin":false},"html_url":"https://github.com/HieronymusLex/aws-config-rules","description":"[Node, Python, Java] Repository of sample Custom Rules for AWS Config. ","fork":true,"url":"https://api.github.com/repos/HieronymusLex/aws-config-rules","forks_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/forks","keys_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/keys{/key_id}","collaborators_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/teams","hooks_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/hooks","issue_events_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/issues/events{/number}","events_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/events","assignees_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/assignees{/user}","branches_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/branches{/branch}","tags_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/tags","blobs_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/git/refs{/sha}","trees_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/git/trees{/sha}","statuses_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/statuses/{sha}","languages_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/languages","stargazers_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/stargazers","contributors_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/contributors","subscribers_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/subscribers","subscription_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/subscription","commits_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/commits{/sha}","git_commits_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/git/commits{/sha}","comments_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/comments{/number}","issue_comment_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/issues/comments{/number}","contents_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/contents/{+path}","compare_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/compare/{base}...{head}","merges_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/merges","archive_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/downloads","issues_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/issues{/number}","pulls_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/pulls{/number}","milestones_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/milestones{/number}","notifications_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/labels{/name}","releases_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/releases{/id}","deployments_url":"https://api.github.com/repos/HieronymusLex/aws-config-rules/deployments","created_at":"2018-09-18T15:47:43Z","updated_at":"2018-09-21T08:34:50Z","pushed_at":"2018-09-21T08:34:48Z","git_url":"git://github.com/HieronymusLex/aws-config-rules.git","ssh_url":"git@github.com:HieronymusLex/aws-config-rules.git","clone_url":"https://github.com/HieronymusLex/aws-config-rules.git","svn_url":"https://github.com/HieronymusLex/aws-config-rules","homepage":"http://aws.amazon.com/config/","size":567,"stargazers_count":0,"watchers_count":0,"language":"Python","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":"awslabs:master","ref":"master","sha":"7901c712842c6e2873befeab710193e6d3a1a869","user":{"login":"awslabs","id":3299148,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyOTkxNDg=","avatar_url":"https://avatars0.githubusercontent.com/u/3299148?v=4","gravatar_id":"","url":"https://api.github.com/users/awslabs","html_url":"https://github.com/awslabs","followers_url":"https://api.github.com/users/awslabs/followers","following_url":"https://api.github.com/users/awslabs/following{/other_user}","gists_url":"https://api.github.com/users/awslabs/gists{/gist_id}","starred_url":"https://api.github.com/users/awslabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awslabs/subscriptions","organizations_url":"https://api.github.com/users/awslabs/orgs","repos_url":"https://api.github.com/users/awslabs/repos","events_url":"https://api.github.com/users/awslabs/events{/privacy}","received_events_url":"https://api.github.com/users/awslabs/received_events","type":"Organization","site_admin":false},"repo":{"id":51314087,"node_id":"MDEwOlJlcG9zaXRvcnk1MTMxNDA4Nw==","name":"aws-config-rules","full_name":"awslabs/aws-config-rules","private":false,"owner":{"login":"awslabs","id":3299148,"node_id":"MDEyOk9yZ2FuaXphdGlvbjMyOTkxNDg=","avatar_url":"https://avatars0.githubusercontent.com/u/3299148?v=4","gravatar_id":"","url":"https://api.github.com/users/awslabs","html_url":"https://github.com/awslabs","followers_url":"https://api.github.com/users/awslabs/followers","following_url":"https://api.github.com/users/awslabs/following{/other_user}","gists_url":"https://api.github.com/users/awslabs/gists{/gist_id}","starred_url":"https://api.github.com/users/awslabs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/awslabs/subscriptions","organizations_url":"https://api.github.com/users/awslabs/orgs","repos_url":"https://api.github.com/users/awslabs/repos","events_url":"https://api.github.com/users/awslabs/events{/privacy}","received_events_url":"https://api.github.com/users/awslabs/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/awslabs/aws-config-rules","description":"[Node, Python, Java] Repository of sample Custom Rules for AWS Config. ","fork":false,"url":"https://api.github.com/repos/awslabs/aws-config-rules","forks_url":"https://api.github.com/repos/awslabs/aws-config-rules/forks","keys_url":"https://api.github.com/repos/awslabs/aws-config-rules/keys{/key_id}","collaborators_url":"https://api.github.com/repos/awslabs/aws-config-rules/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/awslabs/aws-config-rules/teams","hooks_url":"https://api.github.com/repos/awslabs/aws-config-rules/hooks","issue_events_url":"https://api.github.com/repos/awslabs/aws-config-rules/issues/events{/number}","events_url":"https://api.github.com/repos/awslabs/aws-config-rules/events","assignees_url":"https://api.github.com/repos/awslabs/aws-config-rules/assignees{/user}","branches_url":"https://api.github.com/repos/awslabs/aws-config-rules/branches{/branch}","tags_url":"https://api.github.com/repos/awslabs/aws-config-rules/tags","blobs_url":"https://api.github.com/repos/awslabs/aws-config-rules/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/awslabs/aws-config-rules/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/awslabs/aws-config-rules/git/refs{/sha}","trees_url":"https://api.github.com/repos/awslabs/aws-config-rules/git/trees{/sha}","statuses_url":"https://api.github.com/repos/awslabs/aws-config-rules/statuses/{sha}","languages_url":"https://api.github.com/repos/awslabs/aws-config-rules/languages","stargazers_url":"https://api.github.com/repos/awslabs/aws-config-rules/stargazers","contributors_url":"https://api.github.com/repos/awslabs/aws-config-rules/contributors","subscribers_url":"https://api.github.com/repos/awslabs/aws-config-rules/subscribers","subscription_url":"https://api.github.com/repos/awslabs/aws-config-rules/subscription","commits_url":"https://api.github.com/repos/awslabs/aws-config-rules/commits{/sha}","git_commits_url":"https://api.github.com/repos/awslabs/aws-config-rules/git/commits{/sha}","comments_url":"https://api.github.com/repos/awslabs/aws-config-rules/comments{/number}","issue_comment_url":"https://api.github.com/repos/awslabs/aws-config-rules/issues/comments{/number}","contents_url":"https://api.github.com/repos/awslabs/aws-config-rules/contents/{+path}","compare_url":"https://api.github.com/repos/awslabs/aws-config-rules/compare/{base}...{head}","merges_url":"https://api.github.com/repos/awslabs/aws-config-rules/merges","archive_url":"https://api.github.com/repos/awslabs/aws-config-rules/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/awslabs/aws-config-rules/downloads","issues_url":"https://api.github.com/repos/awslabs/aws-config-rules/issues{/number}","pulls_url":"https://api.github.com/repos/awslabs/aws-config-rules/pulls{/number}","milestones_url":"https://api.github.com/repos/awslabs/aws-config-rules/milestones{/number}","notifications_url":"https://api.github.com/repos/awslabs/aws-config-rules/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/awslabs/aws-config-rules/labels{/name}","releases_url":"https://api.github.com/repos/awslabs/aws-config-rules/releases{/id}","deployments_url":"https://api.github.com/repos/awslabs/aws-config-rules/deployments","created_at":"2016-02-08T17:33:58Z","updated_at":"2018-09-20T07:15:55Z","pushed_at":"2018-09-21T08:34:50Z","git_url":"git://github.com/awslabs/aws-config-rules.git","ssh_url":"git@github.com:awslabs/aws-config-rules.git","clone_url":"https://github.com/awslabs/aws-config-rules.git","svn_url":"https://github.com/awslabs/aws-config-rules","homepage":"http://aws.amazon.com/config/","size":558,"stargazers_count":568,"watchers_count":568,"language":"Python","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":211,"mirror_url":null,"archived":false,"open_issues_count":11,"license":{"key":"other","name":"Other","spdx_id":null,"url":null,"node_id":"MDc6TGljZW5zZTA="},"forks":211,"open_issues":11,"watchers":568,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/112"},"html":{"href":"https://github.com/awslabs/aws-config-rules/pull/112"},"issue":{"href":"https://api.github.com/repos/awslabs/aws-config-rules/issues/112"},"comments":{"href":"https://api.github.com/repos/awslabs/aws-config-rules/issues/112/comments"},"review_comments":{"href":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/112/comments"},"review_comment":{"href":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/awslabs/aws-config-rules/pulls/112/commits"},"statuses":{"href":"https://api.github.com/repos/awslabs/aws-config-rules/statuses/ca8c4270508d122fd731b19dea55dfcb63c439eb"}},"author_association":"NONE"}}
{"actor":{"display_login":"HieronymusLex"}}