payload: {"action":"created","comment":{"url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/comments/257002765","pull_request_review_id":203958478,"id":257002765,"node_id":"MDI0OlB1bGxSZXF1ZXN0UmV2aWV3Q29tbWVudDI1NzAwMjc2NQ==","diff_hunk":"@@ -315,15 +338,57 @@ public FormValidation doCheckZone(\n       return FormValidation.ok();\n     }\n \n-    public FormValidation doCheckProjectId(@QueryParameter String value) {\n-      if (Strings.isNullOrEmpty(value)) {\n+    public ListBoxModel doFillProjectIdItems(\n+        @AncestorInPath Jenkins context,\n+        @QueryParameter(\"credentialsId\") final String credentialsId) {\n+      ListBoxModel items = new ListBoxModel();\n+      items.add(\"\");\n+      if (Strings.isNullOrEmpty(credentialsId)) {\n+        return items;\n+      }\n+\n+      ClientFactory clientFactory;\n+      try {\n+        clientFactory = this.getClientFactory(context, credentialsId);\n+      } catch (AbortException ae) {\n+        items.clear();\n+        items.add(ae.getMessage(), \"\");\n+        return items;\n+      }\n+\n+      String defaultProjectId = clientFactory.getDefaultProjectId();\n+      try {\n+        CloudResourceManagerClient client = clientFactory.cloudResourceManagerClient();\n+        List<Project> projects = client.getAccountProjects();\n+\n+        if (!projects.isEmpty()) {\n+          projects\n+              .stream()\n+              .filter(p -> !p.getProjectId().equals(defaultProjectId))\n+              .forEach(p -> items.add(p.getProjectId()));\n+          if (projects.size() > items.size() - 1 && !Strings.isNullOrEmpty(defaultProjectId)) {\n+            items.add(new Option(defaultProjectId, defaultProjectId, true));\n+          } else {\n+            // Select not the first (empty) item but the second item, which exists because\n+            // projects is not empty.\n+            items.get(1).selected = true;\n+          }\n+        }\n+        return items;\n+      } catch (IOException ioe) {","path":"src/main/java/com/google/jenkins/plugins/k8sengine/KubernetesEnginePublisher.java","position":181,"original_position":132,"commit_id":"6cc02b2d2a1b81db9f5a432404428463642be38c","original_commit_id":"01f63eb481446c4aa787f7c128ac91547904167d","user":{"login":"craigatgoogle","id":22780469,"node_id":"MDQ6VXNlcjIyNzgwNDY5","avatar_url":"https://avatars0.githubusercontent.com/u/22780469?v=4","gravatar_id":"","url":"https://api.github.com/users/craigatgoogle","html_url":"https://github.com/craigatgoogle","followers_url":"https://api.github.com/users/craigatgoogle/followers","following_url":"https://api.github.com/users/craigatgoogle/following{/other_user}","gists_url":"https://api.github.com/users/craigatgoogle/gists{/gist_id}","starred_url":"https://api.github.com/users/craigatgoogle/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/craigatgoogle/subscriptions","organizations_url":"https://api.github.com/users/craigatgoogle/orgs","repos_url":"https://api.github.com/users/craigatgoogle/repos","events_url":"https://api.github.com/users/craigatgoogle/events{/privacy}","received_events_url":"https://api.github.com/users/craigatgoogle/received_events","type":"User","site_admin":false},"body":"Thanks for adding the log. If you use this log override, you can pass the Throwable as an arg and let the logging framework handle the formatting. Also, please make sure to include a descriptive log message for the user.\r\n\r\nSee: https://docs.oracle.com/javase/7/docs/api/java/util/logging/Logger.html#log(java.util.logging.Level,%20java.lang.String,%20java.lang.Throwable)","created_at":"2019-02-14T20:38:01Z","updated_at":"2019-02-14T20:38:02Z","html_url":"https://github.com/jenkinsci/google-kubernetes-engine-plugin/pull/8#discussion_r257002765","pull_request_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/8","author_association":"CONTRIBUTOR","_links":{"self":{"href":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/comments/257002765"},"html":{"href":"https://github.com/jenkinsci/google-kubernetes-engine-plugin/pull/8#discussion_r257002765"},"pull_request":{"href":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/8"}},"in_reply_to_id":256962160},"pull_request":{"url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/8","id":252924987,"node_id":"MDExOlB1bGxSZXF1ZXN0MjUyOTI0OTg3","html_url":"https://github.com/jenkinsci/google-kubernetes-engine-plugin/pull/8","diff_url":"https://github.com/jenkinsci/google-kubernetes-engine-plugin/pull/8.diff","patch_url":"https://github.com/jenkinsci/google-kubernetes-engine-plugin/pull/8.patch","issue_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/issues/8","number":8,"state":"open","locked":false,"title":"[Incremental] JENKINS-55523: Auto-populate Project ID in new dropdown when possible","user":{"login":"stephenashank","id":19915795,"node_id":"MDQ6VXNlcjE5OTE1Nzk1","avatar_url":"https://avatars1.githubusercontent.com/u/19915795?v=4","gravatar_id":"","url":"https://api.github.com/users/stephenashank","html_url":"https://github.com/stephenashank","followers_url":"https://api.github.com/users/stephenashank/followers","following_url":"https://api.github.com/users/stephenashank/following{/other_user}","gists_url":"https://api.github.com/users/stephenashank/gists{/gist_id}","starred_url":"https://api.github.com/users/stephenashank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephenashank/subscriptions","organizations_url":"https://api.github.com/users/stephenashank/orgs","repos_url":"https://api.github.com/users/stephenashank/repos","events_url":"https://api.github.com/users/stephenashank/events{/privacy}","received_events_url":"https://api.github.com/users/stephenashank/received_events","type":"User","site_admin":false},"body":"Apologies for the PR size, I recommend looking by commit. The majority of this change is in testing, boilerplate, and a new client for retrieving the list of project IDs from the Cloud Resource Manager API.\r\n\r\nThe reason that this is a dropdown is that as far as I can tell it is not possible to do two crucial things:\r\n1. Fill a f:textbox using query parameters and have that play nice with the Publisher.\r\n2. Set up a new handler (i.e. onchange) for the c:select (credentials dropdown) tag when that is selected.\r\n\r\nI suspect that doing this would require forgoing jelly altogether and writing our view a different way (i.e. JS/HTML/CSS, groovy).\r\n\r\nI tried to minimize the impact that this change had on other elements of the KubernetesEnginePublisher and associated tests and view but I faced a few complications when testing, both through unit tests and in the browser:\r\n\r\n1. When the credentialsId is selected, this then changes the \"credentialsId\" query parameter used when filling the project ID items. Unfortunately, the newly selected \"projectId\" query parameter is not then updated in the call to check credentialsId unless the credentialsId dropdown comes before projectId's\r\n\r\n2. There is a similar story for Zone. The automatically selected \"projectId\" query paramater is not updated in both the call to fill zone items and to check zone, unless the Zone dropdown comes before the projectId dropdown.\r\n\r\n3. The behavior of getComputeClient() in the descriptor is only technically correct in tests (before this change) because the descriptor is a new object for every test. In a future PR I will bring the usage of the ComputeClient in line with that of the CloudResourceManagerClient so that doFillZoneItems and doCheckZoneItems construct their ComputeClient using the ClientFactory from getClientFactory in the compute client.\r\n\r\n4. In order to make a spy for ClientFactory in the CloudResourceManagerClientTest, I need both a zero argument constructor and a \"makeClientFactory\" method. The reason I need a spy is that unlike the ComputeClient, the only arguments involved are passed through the constructor of ClientFactory (the credentialsId), that then allows me to mock the behavior of listing service account projects depending on the value of the CredentialsId.","created_at":"2019-02-14T03:20:52Z","updated_at":"2019-02-14T20:38:02Z","closed_at":null,"merged_at":null,"merge_commit_sha":"bbafbf22952d6da73fbfd48faf8376837712b5a3","assignee":null,"assignees":[],"requested_reviewers":[],"requested_teams":[],"labels":[],"milestone":null,"commits_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/8/commits","review_comments_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/8/comments","review_comment_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/issues/8/comments","statuses_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/statuses/6cc02b2d2a1b81db9f5a432404428463642be38c","head":{"label":"stephenashank:feature/jenkins-55523","ref":"feature/jenkins-55523","sha":"6cc02b2d2a1b81db9f5a432404428463642be38c","user":{"login":"stephenashank","id":19915795,"node_id":"MDQ6VXNlcjE5OTE1Nzk1","avatar_url":"https://avatars1.githubusercontent.com/u/19915795?v=4","gravatar_id":"","url":"https://api.github.com/users/stephenashank","html_url":"https://github.com/stephenashank","followers_url":"https://api.github.com/users/stephenashank/followers","following_url":"https://api.github.com/users/stephenashank/following{/other_user}","gists_url":"https://api.github.com/users/stephenashank/gists{/gist_id}","starred_url":"https://api.github.com/users/stephenashank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephenashank/subscriptions","organizations_url":"https://api.github.com/users/stephenashank/orgs","repos_url":"https://api.github.com/users/stephenashank/repos","events_url":"https://api.github.com/users/stephenashank/events{/privacy}","received_events_url":"https://api.github.com/users/stephenashank/received_events","type":"User","site_admin":false},"repo":{"id":168788115,"node_id":"MDEwOlJlcG9zaXRvcnkxNjg3ODgxMTU=","name":"google-kubernetes-engine-plugin","full_name":"stephenashank/google-kubernetes-engine-plugin","private":false,"owner":{"login":"stephenashank","id":19915795,"node_id":"MDQ6VXNlcjE5OTE1Nzk1","avatar_url":"https://avatars1.githubusercontent.com/u/19915795?v=4","gravatar_id":"","url":"https://api.github.com/users/stephenashank","html_url":"https://github.com/stephenashank","followers_url":"https://api.github.com/users/stephenashank/followers","following_url":"https://api.github.com/users/stephenashank/following{/other_user}","gists_url":"https://api.github.com/users/stephenashank/gists{/gist_id}","starred_url":"https://api.github.com/users/stephenashank/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/stephenashank/subscriptions","organizations_url":"https://api.github.com/users/stephenashank/orgs","repos_url":"https://api.github.com/users/stephenashank/repos","events_url":"https://api.github.com/users/stephenashank/events{/privacy}","received_events_url":"https://api.github.com/users/stephenashank/received_events","type":"User","site_admin":false},"html_url":"https://github.com/stephenashank/google-kubernetes-engine-plugin","description":null,"fork":true,"url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin","forks_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/forks","keys_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/teams","hooks_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/hooks","issue_events_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/events","assignees_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/tags","blobs_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/languages","stargazers_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/stargazers","contributors_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/contributors","subscribers_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/subscribers","subscription_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/subscription","commits_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/merges","archive_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/downloads","issues_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/labels{/name}","releases_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/releases{/id}","deployments_url":"https://api.github.com/repos/stephenashank/google-kubernetes-engine-plugin/deployments","created_at":"2019-02-02T03:00:32Z","updated_at":"2019-02-14T20:25:17Z","pushed_at":"2019-02-14T20:25:16Z","git_url":"git://github.com/stephenashank/google-kubernetes-engine-plugin.git","ssh_url":"git@github.com:stephenashank/google-kubernetes-engine-plugin.git","clone_url":"https://github.com/stephenashank/google-kubernetes-engine-plugin.git","svn_url":"https://github.com/stephenashank/google-kubernetes-engine-plugin","homepage":null,"size":107,"stargazers_count":0,"watchers_count":0,"language":"Java","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":"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":"develop"}},"base":{"label":"jenkinsci:develop","ref":"develop","sha":"729c9b19795269402154ca7d73a24b4951ff4835","user":{"login":"jenkinsci","id":107424,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNzQyNA==","avatar_url":"https://avatars0.githubusercontent.com/u/107424?v=4","gravatar_id":"","url":"https://api.github.com/users/jenkinsci","html_url":"https://github.com/jenkinsci","followers_url":"https://api.github.com/users/jenkinsci/followers","following_url":"https://api.github.com/users/jenkinsci/following{/other_user}","gists_url":"https://api.github.com/users/jenkinsci/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkinsci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkinsci/subscriptions","organizations_url":"https://api.github.com/users/jenkinsci/orgs","repos_url":"https://api.github.com/users/jenkinsci/repos","events_url":"https://api.github.com/users/jenkinsci/events{/privacy}","received_events_url":"https://api.github.com/users/jenkinsci/received_events","type":"Organization","site_admin":false},"repo":{"id":165067786,"node_id":"MDEwOlJlcG9zaXRvcnkxNjUwNjc3ODY=","name":"google-kubernetes-engine-plugin","full_name":"jenkinsci/google-kubernetes-engine-plugin","private":false,"owner":{"login":"jenkinsci","id":107424,"node_id":"MDEyOk9yZ2FuaXphdGlvbjEwNzQyNA==","avatar_url":"https://avatars0.githubusercontent.com/u/107424?v=4","gravatar_id":"","url":"https://api.github.com/users/jenkinsci","html_url":"https://github.com/jenkinsci","followers_url":"https://api.github.com/users/jenkinsci/followers","following_url":"https://api.github.com/users/jenkinsci/following{/other_user}","gists_url":"https://api.github.com/users/jenkinsci/gists{/gist_id}","starred_url":"https://api.github.com/users/jenkinsci/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/jenkinsci/subscriptions","organizations_url":"https://api.github.com/users/jenkinsci/orgs","repos_url":"https://api.github.com/users/jenkinsci/repos","events_url":"https://api.github.com/users/jenkinsci/events{/privacy}","received_events_url":"https://api.github.com/users/jenkinsci/received_events","type":"Organization","site_admin":false},"html_url":"https://github.com/jenkinsci/google-kubernetes-engine-plugin","description":null,"fork":false,"url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin","forks_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/forks","keys_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/teams","hooks_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/hooks","issue_events_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/events","assignees_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/tags","blobs_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/languages","stargazers_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/stargazers","contributors_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/contributors","subscribers_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/subscribers","subscription_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/subscription","commits_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/merges","archive_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/downloads","issues_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/labels{/name}","releases_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/releases{/id}","deployments_url":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/deployments","created_at":"2019-01-10T13:48:46Z","updated_at":"2019-02-14T20:18:57Z","pushed_at":"2019-02-14T20:18:55Z","git_url":"git://github.com/jenkinsci/google-kubernetes-engine-plugin.git","ssh_url":"git@github.com:jenkinsci/google-kubernetes-engine-plugin.git","clone_url":"https://github.com/jenkinsci/google-kubernetes-engine-plugin.git","svn_url":"https://github.com/jenkinsci/google-kubernetes-engine-plugin","homepage":null,"size":76,"stargazers_count":4,"watchers_count":4,"language":"Java","has_issues":false,"has_projects":true,"has_downloads":true,"has_wiki":false,"has_pages":false,"forks_count":4,"mirror_url":null,"archived":false,"open_issues_count":1,"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":4,"open_issues":1,"watchers":4,"default_branch":"develop"}},"_links":{"self":{"href":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/8"},"html":{"href":"https://github.com/jenkinsci/google-kubernetes-engine-plugin/pull/8"},"issue":{"href":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/issues/8"},"comments":{"href":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/issues/8/comments"},"review_comments":{"href":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/8/comments"},"review_comment":{"href":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/pulls/8/commits"},"statuses":{"href":"https://api.github.com/repos/jenkinsci/google-kubernetes-engine-plugin/statuses/6cc02b2d2a1b81db9f5a432404428463642be38c"}},"author_association":"COLLABORATOR"}}
other: {"actor":{"display_login":"craigatgoogle"}}