{"action":"created","comment":{"url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/comments/218568838","pull_request_review_id":156537005,"id":218568838,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDIxODU2ODgzOA==","diff_hunk":"@@ -0,0 +1,255 @@\n+package sg\n+\n+import (\n+\t\"fmt\"\n+\n+\t\"github.com/aws/aws-sdk-go/aws\"\n+\t\"github.com/aws/aws-sdk-go/service/ec2\"\n+\t\"github.com/kubernetes-sigs/aws-alb-ingress-controller/internal/aws/albec2\"\n+\t\"github.com/kubernetes-sigs/aws-alb-ingress-controller/pkg/util/log\"\n+)\n+\n+// SecurityGroup represents an SecurityGroup resource in AWS\n+type SecurityGroup struct {\n+\t// We identify SecurityGroup either by GroupID or GroupName\n+\tGroupID   *string\n+\tGroupName *string\n+\n+\tInboundPermissions []*ec2.IpPermission\n+}\n+\n+// SecurityGroupController manages SecurityGroups\n+type SecurityGroupController interface {\n+\t// Reconcile ensures the securityGroup exists and match the specification.\n+\t// Field GroupID or GroupName will be populated if unspecified.\n+\tReconcile(*SecurityGroup) error\n+\n+\t// Delete ensures the securityGroup does not exists.\n+\tDelete(*SecurityGroup) error\n+}\n+\n+type securityGroupController struct {\n+\tec2    *albec2.EC2\n+\tlogger *log.Logger\n+}\n+\n+func (controller *securityGroupController) Reconcile(group *SecurityGroup) error {\n+\tinstance, err := controller.findExistingSGInstance(group)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\tif instance != nil {\n+\t\treturn controller.reconcileByModifySGInstance(group, instance)\n+\t}\n+\treturn controller.reconcileByNewSGInstance(group)\n+}\n+\n+func (controller *securityGroupController) Delete(group *SecurityGroup) error {\n+\tif group.GroupID != nil {\n+\t\treturn controller.ec2.DeleteSecurityGroupByID(*group.GroupID)\n+\t}\n+\tinstance, err := controller.findExistingSGInstance(group)\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\tif instance != nil {\n+\t\treturn controller.ec2.DeleteSecurityGroupByID(*instance.GroupId)\n+\t}\n+\treturn nil\n+}\n+\n+func (controller *securityGroupController) reconcileByNewSGInstance(group *SecurityGroup) error {\n+\t// TODO: move these VPC calls into controller startup, and part of controller configuration\n+\tvpcID, err := controller.ec2.GetVPCID()\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\tcreateSGOutput, err := controller.ec2.CreateSecurityGroup(&ec2.CreateSecurityGroupInput{\n+\t\tVpcId:       vpcID,\n+\t\tGroupName:   group.GroupName,\n+\t\tDescription: aws.String(\"Instance SecurityGroup created by alb-ingress-controller\"),\n+\t})\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\tgroup.GroupID = createSGOutput.GroupId\n+\n+\t_, err = controller.ec2.AuthorizeSecurityGroupIngress(&ec2.AuthorizeSecurityGroupIngressInput{\n+\t\tGroupId:       group.GroupID,\n+\t\tIpPermissions: group.InboundPermissions,\n+\t})\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\n+\t_, err = controller.ec2.CreateTags(&ec2.CreateTagsInput{\n+\t\tResources: []*string{group.GroupID},\n+\t\tTags: []*ec2.Tag{\n+\t\t\t{\n+\t\t\t\tKey:   aws.String(\"Name\"),\n+\t\t\t\tValue: group.GroupName,\n+\t\t\t},\n+\t\t\t{\n+\t\t\t\tKey:   aws.String(albec2.ManagedByKey),\n+\t\t\t\tValue: aws.String(albec2.ManagedByValue),\n+\t\t\t},\n+\t\t},\n+\t})\n+\tif err != nil {\n+\t\treturn err\n+\t}\n+\n+\treturn nil\n+}\n+\n+func (controller *securityGroupController) reconcileByModifySGInstance(group *SecurityGroup, instance *ec2.SecurityGroup) error {\n+\tif group.GroupID == nil {\n+\t\tgroup.GroupID = instance.GroupId\n+\t}\n+\tif group.GroupName == nil {\n+\t\tgroup.GroupName = instance.GroupName\n+\t}\n+\n+\tpermissionsToRevoke := diffIPPermissions(instance.IpPermissions, group.InboundPermissions)","path":"internal/alb/sg/security_group.go","position":116,"original_position":113,"commit_id":"7cd2acc211fbd2f250563a3967aa6e60306bc201","original_commit_id":"448525e412764f50f0e5ab4827f46fef61e23cff","user":{"login":"M00nF1sh","id":40677631,"node_id":"MDQ6VXNlcjQwNjc3NjMx","avatar_url":"https://avatars0.githubusercontent.com/u/40677631?v=4","gravatar_id":"","url":"https://api.github.com/users/M00nF1sh","html_url":"https://github.com/M00nF1sh","followers_url":"https://api.github.com/users/M00nF1sh/followers","following_url":"https://api.github.com/users/M00nF1sh/following{/other_user}","gists_url":"https://api.github.com/users/M00nF1sh/gists{/gist_id}","starred_url":"https://api.github.com/users/M00nF1sh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/M00nF1sh/subscriptions","organizations_url":"https://api.github.com/users/M00nF1sh/orgs","repos_url":"https://api.github.com/users/M00nF1sh/repos","events_url":"https://api.github.com/users/M00nF1sh/events{/privacy}","received_events_url":"https://api.github.com/users/M00nF1sh/received_events","type":"User","site_admin":false},"body":"added method doc to that method, group is our internal securityGroup definition, which contains the desired state. instance is the AWS securityGroup representation","created_at":"2018-09-18T19:44:31Z","updated_at":"2018-09-18T19:44:31Z","html_url":"https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/614#discussion_r218568838","pull_request_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/614","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/comments/218568838"},"html":{"href":"https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/614#discussion_r218568838"},"pull_request":{"href":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/614"}},"in_reply_to_id":218154495},"pull_request":{"url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/614","id":216036281,"node_id":"MDExOlB1bGxSZXF1ZXN0MjE2MDM2Mjgx","html_url":"https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/614","diff_url":"https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/614.diff","patch_url":"https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/614.patch","issue_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/issues/614","number":614,"state":"open","locked":false,"title":"[WIP] Refactor of securityGroup handling","user":{"login":"M00nF1sh","id":40677631,"node_id":"MDQ6VXNlcjQwNjc3NjMx","avatar_url":"https://avatars0.githubusercontent.com/u/40677631?v=4","gravatar_id":"","url":"https://api.github.com/users/M00nF1sh","html_url":"https://github.com/M00nF1sh","followers_url":"https://api.github.com/users/M00nF1sh/followers","following_url":"https://api.github.com/users/M00nF1sh/following{/other_user}","gists_url":"https://api.github.com/users/M00nF1sh/gists{/gist_id}","starred_url":"https://api.github.com/users/M00nF1sh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/M00nF1sh/subscriptions","organizations_url":"https://api.github.com/users/M00nF1sh/orgs","repos_url":"https://api.github.com/users/M00nF1sh/repos","events_url":"https://api.github.com/users/M00nF1sh/events{/privacy}","received_events_url":"https://api.github.com/users/M00nF1sh/received_events","type":"User","site_admin":false},"body":"The purpose of this PR:\r\n1. Refactor of securityGroup handling functionality\r\n1. Fixing the multi-ENI assigned issue(#559)\r\n1. Remove the unused targetPort in targetGroup\r\n\r\nWork in progress:\r\n1. More testing\r\n1. UT","created_at":"2018-09-17T16:10:00Z","updated_at":"2018-09-18T19:44:31Z","closed_at":null,"merged_at":null,"merge_commit_sha":"e29584f02b251794e9e771875778e27a2c6854a6","assignee":{"login":"bigkraig","id":508403,"node_id":"MDQ6VXNlcjUwODQwMw==","avatar_url":"https://avatars1.githubusercontent.com/u/508403?v=4","gravatar_id":"","url":"https://api.github.com/users/bigkraig","html_url":"https://github.com/bigkraig","followers_url":"https://api.github.com/users/bigkraig/followers","following_url":"https://api.github.com/users/bigkraig/following{/other_user}","gists_url":"https://api.github.com/users/bigkraig/gists{/gist_id}","starred_url":"https://api.github.com/users/bigkraig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bigkraig/subscriptions","organizations_url":"https://api.github.com/users/bigkraig/orgs","repos_url":"https://api.github.com/users/bigkraig/repos","events_url":"https://api.github.com/users/bigkraig/events{/privacy}","received_events_url":"https://api.github.com/users/bigkraig/received_events","type":"User","site_admin":false},"assignees":[{"login":"bigkraig","id":508403,"node_id":"MDQ6VXNlcjUwODQwMw==","avatar_url":"https://avatars1.githubusercontent.com/u/508403?v=4","gravatar_id":"","url":"https://api.github.com/users/bigkraig","html_url":"https://github.com/bigkraig","followers_url":"https://api.github.com/users/bigkraig/followers","following_url":"https://api.github.com/users/bigkraig/following{/other_user}","gists_url":"https://api.github.com/users/bigkraig/gists{/gist_id}","starred_url":"https://api.github.com/users/bigkraig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bigkraig/subscriptions","organizations_url":"https://api.github.com/users/bigkraig/orgs","repos_url":"https://api.github.com/users/bigkraig/repos","events_url":"https://api.github.com/users/bigkraig/events{/privacy}","received_events_url":"https://api.github.com/users/bigkraig/received_events","type":"User","site_admin":false}],"requested_reviewers":[{"login":"bigkraig","id":508403,"node_id":"MDQ6VXNlcjUwODQwMw==","avatar_url":"https://avatars1.githubusercontent.com/u/508403?v=4","gravatar_id":"","url":"https://api.github.com/users/bigkraig","html_url":"https://github.com/bigkraig","followers_url":"https://api.github.com/users/bigkraig/followers","following_url":"https://api.github.com/users/bigkraig/following{/other_user}","gists_url":"https://api.github.com/users/bigkraig/gists{/gist_id}","starred_url":"https://api.github.com/users/bigkraig/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/bigkraig/subscriptions","organizations_url":"https://api.github.com/users/bigkraig/orgs","repos_url":"https://api.github.com/users/bigkraig/repos","events_url":"https://api.github.com/users/bigkraig/events{/privacy}","received_events_url":"https://api.github.com/users/bigkraig/received_events","type":"User","site_admin":false}],"requested_teams":[],"labels":[{"id":959249505,"node_id":"MDU6TGFiZWw5NTkyNDk1MDU=","url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/labels/approved","name":"approved","color":"0ffa16","default":false},{"id":959251099,"node_id":"MDU6TGFiZWw5NTkyNTEwOTk=","url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/labels/cncf-cla:%20yes","name":"cncf-cla: yes","color":"bfe5bf","default":false},{"id":959249702,"node_id":"MDU6TGFiZWw5NTkyNDk3MDI=","url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/labels/do-not-merge/work-in-progress","name":"do-not-merge/work-in-progress","color":"e11d21","default":false},{"id":959249562,"node_id":"MDU6TGFiZWw5NTkyNDk1NjI=","url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/labels/size/XXL","name":"size/XXL","color":"ee0000","default":false}],"milestone":null,"commits_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/614/commits","review_comments_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/614/comments","review_comment_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/comments{/number}","comments_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/issues/614/comments","statuses_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/statuses/7cd2acc211fbd2f250563a3967aa6e60306bc201","head":{"label":"M00nF1sh:bugfix-mulinterface","ref":"bugfix-mulinterface","sha":"7cd2acc211fbd2f250563a3967aa6e60306bc201","user":{"login":"M00nF1sh","id":40677631,"node_id":"MDQ6VXNlcjQwNjc3NjMx","avatar_url":"https://avatars0.githubusercontent.com/u/40677631?v=4","gravatar_id":"","url":"https://api.github.com/users/M00nF1sh","html_url":"https://github.com/M00nF1sh","followers_url":"https://api.github.com/users/M00nF1sh/followers","following_url":"https://api.github.com/users/M00nF1sh/following{/other_user}","gists_url":"https://api.github.com/users/M00nF1sh/gists{/gist_id}","starred_url":"https://api.github.com/users/M00nF1sh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/M00nF1sh/subscriptions","organizations_url":"https://api.github.com/users/M00nF1sh/orgs","repos_url":"https://api.github.com/users/M00nF1sh/repos","events_url":"https://api.github.com/users/M00nF1sh/events{/privacy}","received_events_url":"https://api.github.com/users/M00nF1sh/received_events","type":"User","site_admin":false},"repo":{"id":146820772,"node_id":"MDEwOlJlcG9zaXRvcnkxNDY4MjA3NzI=","name":"aws-alb-ingress-controller","full_name":"M00nF1sh/aws-alb-ingress-controller","private":false,"owner":{"login":"M00nF1sh","id":40677631,"node_id":"MDQ6VXNlcjQwNjc3NjMx","avatar_url":"https://avatars0.githubusercontent.com/u/40677631?v=4","gravatar_id":"","url":"https://api.github.com/users/M00nF1sh","html_url":"https://github.com/M00nF1sh","followers_url":"https://api.github.com/users/M00nF1sh/followers","following_url":"https://api.github.com/users/M00nF1sh/following{/other_user}","gists_url":"https://api.github.com/users/M00nF1sh/gists{/gist_id}","starred_url":"https://api.github.com/users/M00nF1sh/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/M00nF1sh/subscriptions","organizations_url":"https://api.github.com/users/M00nF1sh/orgs","repos_url":"https://api.github.com/users/M00nF1sh/repos","events_url":"https://api.github.com/users/M00nF1sh/events{/privacy}","received_events_url":"https://api.github.com/users/M00nF1sh/received_events","type":"User","site_admin":false},"html_url":"https://github.com/M00nF1sh/aws-alb-ingress-controller","description":"AWS ALB Ingress Controller for Kubernetes","fork":true,"url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller","forks_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/forks","keys_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/keys{/key_id}","collaborators_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/teams","hooks_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/hooks","issue_events_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/issues/events{/number}","events_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/events","assignees_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/assignees{/user}","branches_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/branches{/branch}","tags_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/tags","blobs_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/git/refs{/sha}","trees_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/git/trees{/sha}","statuses_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/statuses/{sha}","languages_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/languages","stargazers_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/stargazers","contributors_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/contributors","subscribers_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/subscribers","subscription_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/subscription","commits_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/commits{/sha}","git_commits_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/git/commits{/sha}","comments_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/comments{/number}","issue_comment_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/issues/comments{/number}","contents_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/contents/{+path}","compare_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/compare/{base}...{head}","merges_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/merges","archive_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/downloads","issues_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/issues{/number}","pulls_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/pulls{/number}","milestones_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/milestones{/number}","notifications_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/labels{/name}","releases_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/releases{/id}","deployments_url":"https://api.github.com/repos/M00nF1sh/aws-alb-ingress-controller/deployments","created_at":"2018-08-31T00:23:57Z","updated_at":"2018-09-10T15:12:11Z","pushed_at":"2018-09-18T19:32:10Z","git_url":"git://github.com/M00nF1sh/aws-alb-ingress-controller.git","ssh_url":"git@github.com:M00nF1sh/aws-alb-ingress-controller.git","clone_url":"https://github.com/M00nF1sh/aws-alb-ingress-controller.git","svn_url":"https://github.com/M00nF1sh/aws-alb-ingress-controller","homepage":"https://coreos.com/blog/alb-ingress-controller-intro","size":101188,"stargazers_count":0,"watchers_count":0,"language":"Go","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":"kubernetes-sigs:master","ref":"master","sha":"c141fa962ff83fe8bccf4f3141254f07c6ceecb4","user":{"login":"kubernetes-sigs","id":36015203,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MDE1MjAz","avatar_url":"https://avatars1.githubusercontent.com/u/36015203?v=4","gravatar_id":"","url":"https://api.github.com/users/kubernetes-sigs","html_url":"https://github.com/kubernetes-sigs","followers_url":"https://api.github.com/users/kubernetes-sigs/followers","following_url":"https://api.github.com/users/kubernetes-sigs/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-sigs/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-sigs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-sigs/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-sigs/orgs","repos_url":"https://api.github.com/users/kubernetes-sigs/repos","events_url":"https://api.github.com/users/kubernetes-sigs/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-sigs/received_events","type":"Organization","site_admin":false},"repo":{"id":84610043,"node_id":"MDEwOlJlcG9zaXRvcnk4NDYxMDA0Mw==","name":"aws-alb-ingress-controller","full_name":"kubernetes-sigs/aws-alb-ingress-controller","private":false,"owner":{"login":"kubernetes-sigs","id":36015203,"node_id":"MDEyOk9yZ2FuaXphdGlvbjM2MDE1MjAz","avatar_url":"https://avatars1.githubusercontent.com/u/36015203?v=4","gravatar_id":"","url":"https://api.github.com/users/kubernetes-sigs","html_url":"https://github.com/kubernetes-sigs","followers_url":"https://api.github.com/users/kubernetes-sigs/followers","following_url":"https://api.github.com/users/kubernetes-sigs/following{/other_user}","gists_url":"https://api.github.com/users/kubernetes-sigs/gists{/gist_id}","starred_url":"https://api.github.com/users/kubernetes-sigs/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/kubernetes-sigs/subscriptions","organizations_url":"https://api.github.com/users/kubernetes-sigs/orgs","repos_url":"https://api.github.com/users/kubernetes-sigs/repos","events_url":"https://api.github.com/users/kubernetes-sigs/events{/privacy}","received_events_url":"https://api.github.com/users/kubernetes-sigs/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/kubernetes-sigs/aws-alb-ingress-controller","description":"AWS ALB Ingress Controller for Kubernetes","fork":false,"url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller","forks_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/forks","keys_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/keys{/key_id}","collaborators_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/teams","hooks_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/hooks","issue_events_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/issues/events{/number}","events_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/events","assignees_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/assignees{/user}","branches_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/branches{/branch}","tags_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/tags","blobs_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/git/refs{/sha}","trees_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/git/trees{/sha}","statuses_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/statuses/{sha}","languages_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/languages","stargazers_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/stargazers","contributors_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/contributors","subscribers_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/subscribers","subscription_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/subscription","commits_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/commits{/sha}","git_commits_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/git/commits{/sha}","comments_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/comments{/number}","issue_comment_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/issues/comments{/number}","contents_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/contents/{+path}","compare_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/compare/{base}...{head}","merges_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/merges","archive_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/downloads","issues_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/issues{/number}","pulls_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls{/number}","milestones_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/milestones{/number}","notifications_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/labels{/name}","releases_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/releases{/id}","deployments_url":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/deployments","created_at":"2017-03-10T23:45:09Z","updated_at":"2018-09-18T00:57:24Z","pushed_at":"2018-09-18T19:32:13Z","git_url":"git://github.com/kubernetes-sigs/aws-alb-ingress-controller.git","ssh_url":"git@github.com:kubernetes-sigs/aws-alb-ingress-controller.git","clone_url":"https://github.com/kubernetes-sigs/aws-alb-ingress-controller.git","svn_url":"https://github.com/kubernetes-sigs/aws-alb-ingress-controller","homepage":"https://coreos.com/blog/alb-ingress-controller-intro","size":101195,"stargazers_count":641,"watchers_count":641,"language":"Go","has_issues":true,"has_projects":true,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":211,"mirror_url":null,"archived":false,"open_issues_count":44,"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":211,"open_issues":44,"watchers":641,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/614"},"html":{"href":"https://github.com/kubernetes-sigs/aws-alb-ingress-controller/pull/614"},"issue":{"href":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/issues/614"},"comments":{"href":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/issues/614/comments"},"review_comments":{"href":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/614/comments"},"review_comment":{"href":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/pulls/614/commits"},"statuses":{"href":"https://api.github.com/repos/kubernetes-sigs/aws-alb-ingress-controller/statuses/7cd2acc211fbd2f250563a3967aa6e60306bc201"}},"author_association":"COLLABORATOR"}}
{"actor":{"display_login":"M00nF1sh"}}