payload: {"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/comments/263435659","pull_request_review_id":211850537,"id":263435659,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI2MzQzNTY1OQ==","diff_hunk":"@@ -29,11 +29,11 @@ import (\n \t\"k8s.io/client-go/tools/cache\"\n )\n \n-// AllocationCounter counts how many Allocated and\n+// GameServerCounter counts how many Allocated and","path":"pkg/gameservers/gameservercounter.go","position":14,"original_position":14,"commit_id":"21127c67bdd54b6aea067e6b0c615924613bc89f","original_commit_id":"21127c67bdd54b6aea067e6b0c615924613bc89f","user":{"login":"jkowalski","id":249880,"node_id":"MDQ6VXNlcjI0OTg4MA==","avatar_url":"https://avatars3.githubusercontent.com/u/249880?v=4","gravatar_id":"","url":"https://api.github.com/users/jkowalski","html_url":"https://github.com/jkowalski","followers_url":"https://api.github.com/users/jkowalski/followers","following_url":"https://api.github.com/users/jkowalski/following{/other_user}","gists_url":"https://api.github.com/users/jkowalski/gists{/gist_id}","starred_url":"https://api.github.com/users/jkowalski/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jkowalski/subscriptions","organizations_url":"https://api.github.com/users/jkowalski/orgs","repos_url":"https://api.github.com/users/jkowalski/repos","events_url":"https://api.github.com/users/jkowalski/events{/privacy}","received_events_url":"https://api.github.com/users/jkowalski/received_events","type":"User","site_admin":false},"body":"nit: can we call it PerNodeCounter or something likethat? this is to avoid stuttering \"gameservers.GameServerCounter\", instead \"gameservers.PerNodeCounter\"","created_at":"2019-03-07T15:33:20Z","updated_at":"2019-03-07T15:33:21Z","html_url":"https://github.com/GoogleCloudPlatform/agones/pull/639#discussion_r263435659","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/639","author_association":"COLLABORATOR","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/comments/263435659"},"html":{"href":"https://github.com/GoogleCloudPlatform/agones/pull/639#discussion_r263435659"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/639"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/639","id":258934167,"node_id":"MDExOlB1bGxSZXF1ZXN0MjU4OTM0MTY3","html_url":"https://github.com/GoogleCloudPlatform/agones/pull/639","diff_url":"https://github.com/GoogleCloudPlatform/agones/pull/639.diff","patch_url":"https://github.com/GoogleCloudPlatform/agones/pull/639.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/issues/639","number":639,"state":"open","locked":false,"title":"Refactor AllocationCounter to GameServerCounter","user":{"login":"markmandel","id":298370,"node_id":"MDQ6VXNlcjI5ODM3MA==","avatar_url":"https://avatars1.githubusercontent.com/u/298370?v=4","gravatar_id":"","url":"https://api.github.com/users/markmandel","html_url":"https://github.com/markmandel","followers_url":"https://api.github.com/users/markmandel/followers","following_url":"https://api.github.com/users/markmandel/following{/other_user}","gists_url":"https://api.github.com/users/markmandel/gists{/gist_id}","starred_url":"https://api.github.com/users/markmandel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markmandel/subscriptions","organizations_url":"https://api.github.com/users/markmandel/orgs","repos_url":"https://api.github.com/users/markmandel/repos","events_url":"https://api.github.com/users/markmandel/events{/privacy}","received_events_url":"https://api.github.com/users/markmandel/received_events","type":"User","site_admin":false},"body":"Precursor to #638 - this moves the AllocationCounter code to a more central GameServerCounter (which I think is a better name) that tracks the number of Ready and Allocated GameServers that are\r\navailable on each node.\r\n\r\nThese details are useful for sorting for `Packed` scheduling strategies.\r\n\r\nOnce this PR is completed, we can use this Count() values provided by this controller in the GameServerSet scale down logic, to ensure that GameServers on the least used nodes are removed first when using a Packed strategy.","created_at":"2019-03-07T00:49:46Z","updated_at":"2019-03-07T15:33:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"f300adef6a812cce59b85dce957a3633ece7544e","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[{"id":772712620,"node_id":"MDU6TGFiZWw3NzI3MTI2MjA=","url":"https://api.github.com/repos/GoogleCloudPlatform/agones/labels/kind/cleanup","name":"kind/cleanup","color":"c5def5","default":false}],"milestone":{"url":"https://api.github.com/repos/GoogleCloudPlatform/agones/milestones/9","html_url":"https://github.com/GoogleCloudPlatform/agones/milestone/9","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/milestones/9/labels","id":4052981,"node_id":"MDk6TWlsZXN0b25lNDA1Mjk4MQ==","number":9,"title":"0.9.0","description":"","creator":{"login":"markmandel","id":298370,"node_id":"MDQ6VXNlcjI5ODM3MA==","avatar_url":"https://avatars1.githubusercontent.com/u/298370?v=4","gravatar_id":"","url":"https://api.github.com/users/markmandel","html_url":"https://github.com/markmandel","followers_url":"https://api.github.com/users/markmandel/followers","following_url":"https://api.github.com/users/markmandel/following{/other_user}","gists_url":"https://api.github.com/users/markmandel/gists{/gist_id}","starred_url":"https://api.github.com/users/markmandel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markmandel/subscriptions","organizations_url":"https://api.github.com/users/markmandel/orgs","repos_url":"https://api.github.com/users/markmandel/repos","events_url":"https://api.github.com/users/markmandel/events{/privacy}","received_events_url":"https://api.github.com/users/markmandel/received_events","type":"User","site_admin":false},"open_issues":14,"closed_issues":28,"state":"open","created_at":"2019-02-13T04:52:29Z","updated_at":"2019-03-07T04:16:00Z","due_on":"2019-04-02T07:00:00Z","closed_at":null},"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/639/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/639/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/issues/639/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/statuses/21127c67bdd54b6aea067e6b0c615924613bc89f","head":{"label":"markmandel:refactor/gameservercount","ref":"refactor/gameservercount","sha":"21127c67bdd54b6aea067e6b0c615924613bc89f","user":{"login":"markmandel","id":298370,"node_id":"MDQ6VXNlcjI5ODM3MA==","avatar_url":"https://avatars1.githubusercontent.com/u/298370?v=4","gravatar_id":"","url":"https://api.github.com/users/markmandel","html_url":"https://github.com/markmandel","followers_url":"https://api.github.com/users/markmandel/followers","following_url":"https://api.github.com/users/markmandel/following{/other_user}","gists_url":"https://api.github.com/users/markmandel/gists{/gist_id}","starred_url":"https://api.github.com/users/markmandel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markmandel/subscriptions","organizations_url":"https://api.github.com/users/markmandel/orgs","repos_url":"https://api.github.com/users/markmandel/repos","events_url":"https://api.github.com/users/markmandel/events{/privacy}","received_events_url":"https://api.github.com/users/markmandel/received_events","type":"User","site_admin":false},"repo":{"id":124011912,"node_id":"MDEwOlJlcG9zaXRvcnkxMjQwMTE5MTI=","name":"agones","full_name":"markmandel/agones","private":false,"owner":{"login":"markmandel","id":298370,"node_id":"MDQ6VXNlcjI5ODM3MA==","avatar_url":"https://avatars1.githubusercontent.com/u/298370?v=4","gravatar_id":"","url":"https://api.github.com/users/markmandel","html_url":"https://github.com/markmandel","followers_url":"https://api.github.com/users/markmandel/followers","following_url":"https://api.github.com/users/markmandel/following{/other_user}","gists_url":"https://api.github.com/users/markmandel/gists{/gist_id}","starred_url":"https://api.github.com/users/markmandel/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/markmandel/subscriptions","organizations_url":"https://api.github.com/users/markmandel/orgs","repos_url":"https://api.github.com/users/markmandel/repos","events_url":"https://api.github.com/users/markmandel/events{/privacy}","received_events_url":"https://api.github.com/users/markmandel/received_events","type":"User","site_admin":false},"html_url":"https://github.com/markmandel/agones","description":"Dedicated Game Server Hosting and Scaling for Multiplayer Games on Kubernetes","fork":true,"url":"https://api.github.com/repos/markmandel/agones","forks_url":"https://api.github.com/repos/markmandel/agones/forks","keys_url":"https://api.github.com/repos/markmandel/agones/keys{/key_id}","collaborators_url":"https://api.github.com/repos/markmandel/agones/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/markmandel/agones/teams","hooks_url":"https://api.github.com/repos/markmandel/agones/hooks","issue_events_url":"https://api.github.com/repos/markmandel/agones/issues/events{/number}","events_url":"https://api.github.com/repos/markmandel/agones/events","assignees_url":"https://api.github.com/repos/markmandel/agones/assignees{/user}","branches_url":"https://api.github.com/repos/markmandel/agones/branches{/branch}","tags_url":"https://api.github.com/repos/markmandel/agones/tags","blobs_url":"https://api.github.com/repos/markmandel/agones/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/markmandel/agones/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/markmandel/agones/git/refs{/sha}","trees_url":"https://api.github.com/repos/markmandel/agones/git/trees{/sha}","statuses_url":"https://api.github.com/repos/markmandel/agones/statuses/{sha}","languages_url":"https://api.github.com/repos/markmandel/agones/languages","stargazers_url":"https://api.github.com/repos/markmandel/agones/stargazers","contributors_url":"https://api.github.com/repos/markmandel/agones/contributors","subscribers_url":"https://api.github.com/repos/markmandel/agones/subscribers","subscription_url":"https://api.github.com/repos/markmandel/agones/subscription","commits_url":"https://api.github.com/repos/markmandel/agones/commits{/sha}","git_commits_url":"https://api.github.com/repos/markmandel/agones/git/commits{/sha}","comments_url":"https://api.github.com/repos/markmandel/agones/comments{/number}","issue_comment_url":"https://api.github.com/repos/markmandel/agones/issues/comments{/number}","contents_url":"https://api.github.com/repos/markmandel/agones/contents/{+path}","compare_url":"https://api.github.com/repos/markmandel/agones/compare/{base}...{head}","merges_url":"https://api.github.com/repos/markmandel/agones/merges","archive_url":"https://api.github.com/repos/markmandel/agones/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/markmandel/agones/downloads","issues_url":"https://api.github.com/repos/markmandel/agones/issues{/number}","pulls_url":"https://api.github.com/repos/markmandel/agones/pulls{/number}","milestones_url":"https://api.github.com/repos/markmandel/agones/milestones{/number}","notifications_url":"https://api.github.com/repos/markmandel/agones/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/markmandel/agones/labels{/name}","releases_url":"https://api.github.com/repos/markmandel/agones/releases{/id}","deployments_url":"https://api.github.com/repos/markmandel/agones/deployments","created_at":"2018-03-06T02:59:47Z","updated_at":"2019-01-30T01:39:12Z","pushed_at":"2019-03-07T04:14:42Z","git_url":"git://github.com/markmandel/agones.git","ssh_url":"git@github.com:markmandel/agones.git","clone_url":"https://github.com/markmandel/agones.git","svn_url":"https://github.com/markmandel/agones","homepage":"","size":72881,"stargazers_count":0,"watchers_count":0,"language":"Go","has_issues":false,"has_projects":true,"has_downloads":false,"has_wiki":false,"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":"GoogleCloudPlatform:master","ref":"master","sha":"2344edb2009189cdad30aee72fa66c0dc58664d2","user":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"repo":{"id":113473682,"node_id":"MDEwOlJlcG9zaXRvcnkxMTM0NzM2ODI=","name":"agones","full_name":"GoogleCloudPlatform/agones","private":false,"owner":{"login":"GoogleCloudPlatform","id":2810941,"node_id":"MDEyOk9yZ2FuaXphdGlvbjI4MTA5NDE=","avatar_url":"https://avatars0.githubusercontent.com/u/2810941?v=4","gravatar_id":"","url":"https://api.github.com/users/GoogleCloudPlatform","html_url":"https://github.com/GoogleCloudPlatform","followers_url":"https://api.github.com/users/GoogleCloudPlatform/followers","following_url":"https://api.github.com/users/GoogleCloudPlatform/following{/other_user}","gists_url":"https://api.github.com/users/GoogleCloudPlatform/gists{/gist_id}","starred_url":"https://api.github.com/users/GoogleCloudPlatform/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/GoogleCloudPlatform/subscriptions","organizations_url":"https://api.github.com/users/GoogleCloudPlatform/orgs","repos_url":"https://api.github.com/users/GoogleCloudPlatform/repos","events_url":"https://api.github.com/users/GoogleCloudPlatform/events{/privacy}","received_events_url":"https://api.github.com/users/GoogleCloudPlatform/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/GoogleCloudPlatform/agones","description":"Dedicated Game Server Hosting and Scaling for Multiplayer Games on Kubernetes","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/agones","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/agones/deployments","created_at":"2017-12-07T16:25:22Z","updated_at":"2019-03-07T06:28:48Z","pushed_at":"2019-03-07T10:03:34Z","git_url":"git://github.com/GoogleCloudPlatform/agones.git","ssh_url":"git@github.com:GoogleCloudPlatform/agones.git","clone_url":"https://github.com/GoogleCloudPlatform/agones.git","svn_url":"https://github.com/GoogleCloudPlatform/agones","homepage":"https://agones.dev","size":72621,"stargazers_count":2055,"watchers_count":2055,"language":"Go","has_issues":true,"has_projects":false,"has_downloads":false,"has_wiki":false,"has_pages":false,"forks_count":183,"mirror_url":null,"archived":false,"open_issues_count":50,"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":183,"open_issues":50,"watchers":2055,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/639"},"html":{"href":"https://github.com/GoogleCloudPlatform/agones/pull/639"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/agones/issues/639"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/agones/issues/639/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/639/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/agones/pulls/639/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/agones/statuses/21127c67bdd54b6aea067e6b0c615924613bc89f"}},"author_association":"COLLABORATOR"}}
other: {"actor":{"display_login":"jkowalski"}}