{"action":"created","comment":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/comments/58268442","id":58268442,"diff_hunk":"@@ -0,0 +1,248 @@\n+/*\n+ * Copyright (C) 2015 The Android Open Source Project\n+ *\n+ * Licensed under the Apache License, Version 2.0 (the \"License\");\n+ * you may not use this file except in compliance with the License.\n+ * You may obtain a copy of the License at\n+ *\n+ *      http://www.apache.org/licenses/LICENSE-2.0\n+ *\n+ * Unless required by applicable law or agreed to in writing, software\n+ * distributed under the License is distributed on an \"AS IS\" BASIS,\n+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n+ * See the License for the specific language governing permissions and\n+ * limitations under the License.\n+ */\n+\n+package com.google.gct.idea.appengine.cloud;\n+\n+import com.google.gct.idea.appengine.util.AppEngineUtil;\n+import com.google.gct.idea.util.GctBundle;\n+import com.google.gson.Gson;\n+import com.google.gson.JsonParseException;\n+import com.google.gson.reflect.TypeToken;\n+\n+import com.intellij.execution.ExecutionException;\n+import com.intellij.execution.configurations.GeneralCommandLine;\n+import com.intellij.execution.process.ProcessAdapter;\n+import com.intellij.execution.process.ProcessEvent;\n+import com.intellij.execution.process.ProcessOutputTypes;\n+import com.intellij.icons.AllIcons.General;\n+import com.intellij.openapi.application.ApplicationManager;\n+import com.intellij.openapi.diagnostic.Logger;\n+import com.intellij.openapi.progress.ProgressIndicator;\n+import com.intellij.openapi.progress.ProgressManager;\n+import com.intellij.openapi.progress.Task;\n+import com.intellij.openapi.project.Project;\n+import com.intellij.openapi.ui.Messages;\n+import com.intellij.openapi.util.Key;\n+import com.intellij.openapi.util.io.FileUtil;\n+import com.intellij.remoteServer.runtime.deployment.DeploymentRuntime;\n+import com.intellij.remoteServer.runtime.deployment.ServerRuntimeInstance.DeploymentOperationCallback;\n+import com.intellij.remoteServer.runtime.log.LoggingHandler;\n+\n+import org.jetbrains.annotations.NotNull;\n+import org.jetbrains.annotations.Nullable;\n+\n+import java.io.File;\n+import java.io.IOException;\n+import java.lang.reflect.Type;\n+import java.util.Map;\n+import java.util.Set;\n+\n+import javax.swing.SwingUtilities;\n+\n+/**\n+ * Performs the deployment of App Engine based applications to GCP.\n+ */\n+class AppEngineDeployAction extends AppEngineAction {\n+\n+  private static final Logger logger = Logger.getInstance(AppEngineDeployAction.class);\n+\n+  private Project project;\n+  private File deploymentArtifactPath;\n+  private File appYamlPath;\n+  private File dockerFilePath;\n+  private AppEngineHelper appEngineHelper;\n+  private DeploymentOperationCallback callback;\n+  private DeploymentArtifactType artifactType;\n+\n+  AppEngineDeployAction(\n+      @NotNull AppEngineHelper appEngineHelper,\n+      @NotNull LoggingHandler loggingHandler,\n+      @NotNull Project project,\n+      @NotNull File deploymentArtifactPath,\n+      @Nullable File appYamlPath,\n+      @Nullable File dockerFilePath,\n+      @NotNull DeploymentOperationCallback callback) {\n+    super(loggingHandler, appEngineHelper, callback);\n+\n+    this.appEngineHelper = appEngineHelper;\n+    this.project = project;\n+    this.deploymentArtifactPath = deploymentArtifactPath;\n+    this.callback = callback;\n+    this.appYamlPath = appYamlPath;\n+    this.dockerFilePath = dockerFilePath;\n+    this.artifactType = DeploymentArtifactType.typeForPath(deploymentArtifactPath);\n+  }\n+\n+  public void run() {\n+    File stagingDirectory;\n+    try {\n+      stagingDirectory = FileUtil.createTempDirectory(\n+          \"gae-mvm\" /* prefix */,\n+          null /* suffix */,\n+          true  /* deleteOnExit */);\n+      consoleLogLn(\n+          \"Created temporary staging directory: \" + stagingDirectory.getAbsolutePath());\n+    } catch (IOException e) {\n+      logger.error(e);\n+      callback.errorOccurred(\n+          GctBundle.message(\"appengine.deployment.error.creating.staging.directory\"));\n+      return;\n+    }\n+\n+    try {\n+      File stagedArtifactPath =\n+          copyFile(stagingDirectory, \"target\" + artifactType, deploymentArtifactPath);\n+      stagedArtifactPath.setReadable(true /* readable */, false /* ownerOnly */);\n+\n+      if (this.appYamlPath != null) {\n+        copyFile(stagingDirectory, \"app.yaml\", this.appYamlPath);\n+      }\n+      if (this.dockerFilePath != null) {\n+        copyFile(stagingDirectory, \"Dockerfile\", this.dockerFilePath);\n+      }\n+    } catch (IOException e) {\n+      logger.error(e);\n+      callback.errorOccurred(GctBundle.message(\"appengine.deployment.error.during.staging\"));\n+      return;\n+    }\n+\n+    String version = AppEngineUtil.generateVersion();\n+\n+    GeneralCommandLine commandLine = new GeneralCommandLine(\n+        appEngineHelper.getGcloudCommandPath().getAbsolutePath());\n+    commandLine.addParameters(\"preview\", \"app\", \"deploy\", \"app.yaml\", \"--promote\", \"--quiet\");\n+    commandLine.addParameter(\"--version=\" + version);\n+    commandLine.addParameter(\"--format=json\");\n+\n+    commandLine.withWorkDirectory(stagingDirectory);\n+    consoleLogLn(\"Working directory set to: \" + stagingDirectory.getAbsolutePath());\n+\n+    try {\n+      executeProcess(\n+          commandLine,\n+          new DeployToAppEngineProcessListener(version));\n+    } catch (ExecutionException e) {\n+      logger.error(e);\n+      callback.errorOccurred(GctBundle.message(\"appengine.deployment.error.during.execution\"));\n+    }\n+  }\n+\n+  private File copyFile(File stagingDirectory, String targetFileName, File sourceFilePath)\n+      throws IOException {\n+    File destinationFilePath = new File(stagingDirectory, targetFileName);\n+    FileUtil.copy(sourceFilePath, destinationFilePath);\n+    consoleLogLn(\"Copied %s %s to %s\", targetFileName,\n+        sourceFilePath.getAbsolutePath(), destinationFilePath.getAbsolutePath());\n+    return destinationFilePath;\n+  }\n+\n+  private class DeployToAppEngineProcessListener extends ProcessAdapter {\n+    private StringBuilder deployOutput = new StringBuilder();\n+    private String version;\n+\n+    public DeployToAppEngineProcessListener(String version) {\n+      this.version = version;\n+    }\n+\n+    @Override\n+    public void onTextAvailable(ProcessEvent event, Key outputType) {\n+      if(outputType.equals(ProcessOutputTypes.STDOUT)) {\n+        deployOutput.append(event.getText());\n+      }\n+    }\n+\n+    @Override\n+    public void processTerminated(final ProcessEvent event) {\n+      if (event.getExitCode() == 0) {\n+        callback.succeeded(new DeploymentRuntime() {\n+          @Override\n+          public boolean isUndeploySupported() {\n+            return true;\n+          }\n+\n+          @Override\n+          public void undeploy(@NotNull final UndeploymentTaskCallback callback) {\n+            SwingUtilities.invokeLater(new Runnable() {\n+              @Override\n+              public void run() {\n+                int doStop = Messages\n+                    .showYesNoDialog(\n+                        GctBundle.message(\"appengine.stop.modules.version.confirmation.message\"),\n+                        GctBundle.message(\"appengine.stop.modules.version.confirmation.title\"),\n+                        \"OK\", \"Cancel\", General.Warning);\n+\n+                if (doStop == Messages.YES) {\n+                  stop(callback);\n+                } else {\n+                  callback.errorOccurred(\"Undeploy Canceled\");\n+                }\n+              }\n+            });\n+          }\n+\n+          private void stop(@NotNull UndeploymentTaskCallback callback) {\n+            Set<String> modulesToSop;\n+            try {\n+              modulesToSop = parseDeployOutputToModuleList(deployOutput.toString());\n+            } catch (JsonParseException e) {\n+              logger.warn(\"Could not retrieve module(s) of deployed application\", e);\n+              return;\n+            }\n+\n+            final AppEngineAction appEngineStopAction = appEngineHelper.createStopAction(\n+                getLoggingHandler(),\n+                modulesToSop,\n+                version,\n+                callback);\n+\n+            ProgressManager.getInstance()\n+                .run(new Task.Backgroundable(project, \"Stop App Engine\", true,\n+                    null) {\n+                  @Override\n+                  public void run(@NotNull ProgressIndicator indicator) {\n+                    ApplicationManager.getApplication().invokeLater(appEngineStopAction);\n+                  }\n+                });\n+          }\n+        });\n+\n+        SwingUtilities.invokeLater(new Runnable() {\n+          @Override\n+          public void run() {\n+            Messages.showMessageDialog(\n+                GctBundle.message(\"appengine.deployment.success.dialog.message\"),","path":"google-cloud-tools-plugin/src/com/google/gct/idea/appengine/cloud/AppEngineDeployAction.java","position":226,"original_position":226,"commit_id":"48df9093626829470ef71e2e3c3b392e63ad2108","original_commit_id":"48df9093626829470ef71e2e3c3b392e63ad2108","user":{"login":"etanshaul","id":1735744,"avatar_url":"https://avatars.githubusercontent.com/u/1735744?v=3","gravatar_id":"","url":"https://api.github.com/users/etanshaul","html_url":"https://github.com/etanshaul","followers_url":"https://api.github.com/users/etanshaul/followers","following_url":"https://api.github.com/users/etanshaul/following{/other_user}","gists_url":"https://api.github.com/users/etanshaul/gists{/gist_id}","starred_url":"https://api.github.com/users/etanshaul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/etanshaul/subscriptions","organizations_url":"https://api.github.com/users/etanshaul/orgs","repos_url":"https://api.github.com/users/etanshaul/repos","events_url":"https://api.github.com/users/etanshaul/events{/privacy}","received_events_url":"https://api.github.com/users/etanshaul/received_events","type":"User","site_admin":false},"body":"Yes, the user has to dismiss it. The reason I created this one is to keep it consistent with the stop flow which now has a \"successful stop\" dialog. This dialog is not completely necessary since the user can see a message of succesfull deployment in the console..","created_at":"2016-04-01T21:13:21Z","updated_at":"2016-04-01T21:13:21Z","html_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij/pull/571#discussion_r58268442","pull_request_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/571","_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/comments/58268442"},"html":{"href":"https://github.com/GoogleCloudPlatform/gcloud-intellij/pull/571#discussion_r58268442"},"pull_request":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/571"}}},"pull_request":{"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/571","id":64873178,"html_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij/pull/571","diff_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij/pull/571.diff","patch_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij/pull/571.patch","issue_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues/571","number":571,"state":"open","locked":false,"title":"stop an app deployed to mvm","user":{"login":"etanshaul","id":1735744,"avatar_url":"https://avatars.githubusercontent.com/u/1735744?v=3","gravatar_id":"","url":"https://api.github.com/users/etanshaul","html_url":"https://github.com/etanshaul","followers_url":"https://api.github.com/users/etanshaul/followers","following_url":"https://api.github.com/users/etanshaul/following{/other_user}","gists_url":"https://api.github.com/users/etanshaul/gists{/gist_id}","starred_url":"https://api.github.com/users/etanshaul/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/etanshaul/subscriptions","organizations_url":"https://api.github.com/users/etanshaul/orgs","repos_url":"https://api.github.com/users/etanshaul/repos","events_url":"https://api.github.com/users/etanshaul/events{/privacy}","received_events_url":"https://api.github.com/users/etanshaul/received_events","type":"User","site_admin":false},"body":"Fixes #453\r\n\r\nIn progress. Functionality works, just needs some cleanup.","created_at":"2016-03-31T23:04:22Z","updated_at":"2016-04-01T21:13:21Z","closed_at":null,"merged_at":null,"merge_commit_sha":"245028552a1b2b787ab70440188c77d5a3fcac6f","assignee":null,"milestone":null,"commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/571/commits","review_comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/571/comments","review_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/comments{/number}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues/571/comments","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/statuses/48df9093626829470ef71e2e3c3b392e63ad2108","head":{"label":"GoogleCloudPlatform:stop-mvm-version","ref":"stop-mvm-version","sha":"48df9093626829470ef71e2e3c3b392e63ad2108","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","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":38834157,"name":"gcloud-intellij","full_name":"GoogleCloudPlatform/gcloud-intellij","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","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},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij","description":"Plugin to support the Google Cloud Platform in IntelliJ IDEA.","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/deployments","created_at":"2015-07-09T17:08:59Z","updated_at":"2016-03-29T01:24:59Z","pushed_at":"2016-04-01T21:02:43Z","git_url":"git://github.com/GoogleCloudPlatform/gcloud-intellij.git","ssh_url":"git@github.com:GoogleCloudPlatform/gcloud-intellij.git","clone_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij.git","svn_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij","homepage":"","size":19150,"stargazers_count":13,"watchers_count":13,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":5,"mirror_url":null,"open_issues_count":59,"forks":5,"open_issues":59,"watchers":13,"default_branch":"master"}},"base":{"label":"GoogleCloudPlatform:master","ref":"master","sha":"44a9e5e0ca71d788ce5d6ff17a0c44f3c865e5d9","user":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","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":38834157,"name":"gcloud-intellij","full_name":"GoogleCloudPlatform/gcloud-intellij","owner":{"login":"GoogleCloudPlatform","id":2810941,"avatar_url":"https://avatars.githubusercontent.com/u/2810941?v=3","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},"private":false,"html_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij","description":"Plugin to support the Google Cloud Platform in IntelliJ IDEA.","fork":false,"url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij","forks_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/forks","keys_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/keys{/key_id}","collaborators_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/teams","hooks_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/hooks","issue_events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues/events{/number}","events_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/events","assignees_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/assignees{/user}","branches_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/branches{/branch}","tags_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/tags","blobs_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/refs{/sha}","trees_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/trees{/sha}","statuses_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/statuses/{sha}","languages_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/languages","stargazers_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/stargazers","contributors_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/contributors","subscribers_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/subscribers","subscription_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/subscription","commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/commits{/sha}","git_commits_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/git/commits{/sha}","comments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/comments{/number}","issue_comment_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues/comments{/number}","contents_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/contents/{+path}","compare_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/compare/{base}...{head}","merges_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/merges","archive_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/downloads","issues_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues{/number}","pulls_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls{/number}","milestones_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/milestones{/number}","notifications_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/labels{/name}","releases_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/releases{/id}","deployments_url":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/deployments","created_at":"2015-07-09T17:08:59Z","updated_at":"2016-03-29T01:24:59Z","pushed_at":"2016-04-01T21:02:43Z","git_url":"git://github.com/GoogleCloudPlatform/gcloud-intellij.git","ssh_url":"git@github.com:GoogleCloudPlatform/gcloud-intellij.git","clone_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij.git","svn_url":"https://github.com/GoogleCloudPlatform/gcloud-intellij","homepage":"","size":19150,"stargazers_count":13,"watchers_count":13,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":false,"has_pages":true,"forks_count":5,"mirror_url":null,"open_issues_count":59,"forks":5,"open_issues":59,"watchers":13,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/571"},"html":{"href":"https://github.com/GoogleCloudPlatform/gcloud-intellij/pull/571"},"issue":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues/571"},"comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/issues/571/comments"},"review_comments":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/571/comments"},"review_comment":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/pulls/571/commits"},"statuses":{"href":"https://api.github.com/repos/GoogleCloudPlatform/gcloud-intellij/statuses/48df9093626829470ef71e2e3c3b392e63ad2108"}}}}