{"action":"created","comment":{"url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/comments/84474552","pull_request_review_id":5245239,"id":84474552,"diff_hunk":"@@ -0,0 +1,283 @@\n+/*\n+ * Copyright 2013-2016 Sergey Ignatov, Alexander Zolotov, Florin Patan\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.goide.intentions;\n+\n+import com.goide.inspections.GoInspectionUtil;\n+import com.goide.psi.*;\n+import com.goide.psi.impl.GoElementFactory;\n+import com.goide.psi.impl.GoPsiImplUtil;\n+import com.intellij.codeInsight.intention.BaseElementAtCaretIntentionAction;\n+import com.intellij.openapi.editor.Editor;\n+import com.intellij.openapi.project.Project;\n+import com.intellij.psi.PsiElement;\n+import com.intellij.psi.PsiWhiteSpace;\n+import com.intellij.psi.util.PsiTreeUtil;\n+import com.intellij.util.IncorrectOperationException;\n+import com.intellij.util.ObjectUtils;\n+import com.intellij.util.containers.ContainerUtil;\n+import com.intellij.util.containers.MultiMap;\n+import org.jetbrains.annotations.Contract;\n+import org.jetbrains.annotations.Nls;\n+import org.jetbrains.annotations.NotNull;\n+import org.jetbrains.annotations.Nullable;\n+\n+import java.util.List;\n+\n+public class GoMoveToStructInitializationIntention extends BaseElementAtCaretIntentionAction {\n+  public static final String NAME = \"Move field assignment to struct initialization\";\n+\n+  public GoMoveToStructInitializationIntention() {\n+    setText(NAME);\n+  }\n+\n+  @Nls\n+  @NotNull\n+  @Override\n+  public String getFamilyName() {\n+    return NAME;\n+  }\n+\n+  @Override\n+  public boolean isAvailable(@NotNull Project project, Editor editor, @NotNull PsiElement element) {\n+    if (!element.isValid() || !element.isWritable()) return false;\n+    GoAssignmentStatement assignment = getValidAssignmentParent(element);\n+    GoReferenceExpression selectedFieldReference = assignment != null ? getFieldReference(element, assignment) : null;\n+    return selectedFieldReference != null && !getUninitializedSingleFieldReferences(assignment, selectedFieldReference).isEmpty();\n+  }\n+\n+  @Override\n+  public void invoke(@NotNull Project project, Editor editor, @NotNull PsiElement element) throws IncorrectOperationException {\n+    if (!element.isValid() || !element.isWritable()) return;\n+    GoAssignmentStatement assignment = getValidAssignmentParent(element);\n+    if (assignment == null) return;\n+    GoReferenceExpression selectedFieldReference = getFieldReference(element, assignment);\n+    if (selectedFieldReference == null) return;\n+    GoCompositeLit structLiteral = getStructLiteralByReference(selectedFieldReference, assignment);\n+    if (structLiteral == null) return;\n+    moveFields(getUninitializedSingleFieldReferences(assignment, selectedFieldReference), structLiteral, project);\n+  }\n+\n+  @Nullable\n+  private static GoAssignmentStatement getValidAssignmentParent(@Nullable PsiElement element) {\n+    return ObjectUtils.nullizeByCondition(PsiTreeUtil.getNonStrictParentOfType(element, GoAssignmentStatement.class),\n+                                          assignment -> assignment == null ||\n+                                                        !assignment.isValid() ||\n+                                                        !isAssignmentEqualsSized(assignment));\n+  }\n+\n+  private static boolean isAssignmentEqualsSized(@NotNull GoAssignmentStatement assignment) {\n+    List<GoExpression> expressions = assignment.getExpressionList();\n+    return assignment.getLeftHandExprList().getExpressionList().size() == expressions.size() &&\n+           expressions.stream().allMatch(e -> GoInspectionUtil.getExpressionResultCount(e) == 1);\n+  }\n+\n+  @Nullable\n+  private static GoReferenceExpression getFieldReference(@NotNull PsiElement selectedElement,\n+                                                         @NotNull GoAssignmentStatement assignment) {\n+    GoReferenceExpression selectedFieldReference = PsiTreeUtil.getTopmostParentOfType(selectedElement, GoReferenceExpression.class);\n+    if (isFieldReference(selectedFieldReference)) {\n+      return ObjectUtils.nullizeByCondition(selectedFieldReference, reference -> isValueAssignedInPreviousStatement(reference, assignment));\n+    }\n+\n+    List<GoExpression> fieldReferences = ContainerUtil.filter(assignment.getLeftHandExprList().getExpressionList(),\n+                                                              GoMoveToStructInitializationIntention::isFieldReference);\n+    if (ContainerUtil.exists(fieldReferences, expression -> isValueAssignedInPreviousStatement(expression, assignment))) return null;\n+\n+    long distinctStructsCount = fieldReferences.stream()\n+      .map(expression -> getQualifierName((GoReferenceExpression)expression))\n+      .distinct().count();\n+    return distinctStructsCount == 1 ? tryGetReference(ContainerUtil.getFirstItem(fieldReferences)) : null;\n+  }\n+\n+  private static boolean isValueAssignedInPreviousStatement(@NotNull GoExpression expression,\n+                                                            @NotNull GoAssignmentStatement assignment) {\n+    GoReferenceExpression value = tryGetReference(GoPsiImplUtil.getExpressionValue(assignment, expression));\n+    if (value == null) return false;\n+    PsiElement previousElement = PsiTreeUtil.skipSiblingsBackward(assignment, PsiWhiteSpace.class);\n+    if (previousElement instanceof GoSimpleStatement) {\n+      GoShortVarDeclaration varDeclaration = ((GoSimpleStatement)previousElement).getShortVarDeclaration();\n+      return varDeclaration != null &&\n+             ContainerUtil.exists(varDeclaration.getVarDefinitionList(), definition -> isTextMatches(definition, value));\n+    }\n+    if (previousElement instanceof GoAssignmentStatement) {\n+      return ContainerUtil.exists(((GoAssignmentStatement)previousElement).getLeftHandExprList().getExpressionList(),\n+                                  leftExpression -> isTextMatches(leftExpression, value));\n+    }\n+    return false;\n+  }\n+\n+  @NotNull\n+  private static List<GoExpression> getUninitializedSingleFieldReferences(@NotNull GoAssignmentStatement assignment,\n+                                                                          @NotNull GoReferenceExpression selectedFieldReference) {\n+    GoCompositeLit structLiteral = getStructLiteralByReference(selectedFieldReference, assignment);\n+    String qualifierName = getQualifierName(selectedFieldReference);\n+    if (structLiteral == null || qualifierName == null) return ContainerUtil.emptyList();\n+    List<GoExpression> uninitializedFieldsReferences =\n+      ContainerUtil.filter(assignment.getLeftHandExprList().getExpressionList(), expression ->\n+        isUninitializedFieldReferenceByQualifier(expression, structLiteral, qualifierName) &&\n+        !isValueAssignedInPreviousStatement(expression, assignment)\n+      );\n+    MultiMap<String, GoExpression> fieldReferencesByName =\n+      ContainerUtil.groupBy(uninitializedFieldsReferences, expression -> getFieldName((GoReferenceExpression)expression));\n+    return ContainerUtil.filter(uninitializedFieldsReferences,\n+                                reference -> fieldReferencesByName.get(getFieldName((GoReferenceExpression)reference)).size() == 1);\n+  }\n+\n+  private static void moveFields(@NotNull List<GoExpression> fields,\n+                                 @NotNull GoCompositeLit structLiteral,\n+                                 @NotNull Project project) {\n+    GoAssignmentStatement assignment = getValidAssignmentParent(ContainerUtil.getFirstItem(fields));\n+    if (assignment == null) return;\n+\n+    GoLiteralValue literalValue = structLiteral.getLiteralValue();\n+    if (literalValue == null) return;\n+\n+    for (GoExpression expression : fields) {\n+      GoReferenceExpression fieldReference = tryGetReference(expression);\n+      if (!isFieldReference(fieldReference)) continue;\n+\n+      GoExpression fieldValue = GoPsiImplUtil.getExpressionValue(assignment, fieldReference);\n+      if (fieldValue == null) continue;\n+\n+      GoPsiImplUtil.deleteExpressionFromAssignment(assignment, fieldReference);\n+      addFieldDefinition(literalValue, getFieldName(fieldReference), fieldValue.getText(), project);\n+    }\n+  }\n+\n+  @Nullable\n+  private static GoCompositeLit getStructLiteralByReference(@NotNull GoReferenceExpression fieldReference,\n+                                                            @NotNull GoAssignmentStatement assignment) {\n+    PsiElement previousElement = PsiTreeUtil.skipSiblingsBackward(assignment, PsiWhiteSpace.class);\n+    if (previousElement instanceof GoSimpleStatement) {\n+      return getStructLiteral(fieldReference, (GoSimpleStatement)previousElement);\n+    }\n+    if (previousElement instanceof GoAssignmentStatement) {\n+      return getStructLiteral(fieldReference, (GoAssignmentStatement)previousElement);\n+    }\n+    return null;\n+  }\n+\n+  @Nullable\n+  private static GoCompositeLit getStructLiteral(@NotNull GoReferenceExpression fieldReference,\n+                                                 @NotNull GoSimpleStatement structDeclaration) {\n+    GoShortVarDeclaration varDeclaration = structDeclaration.getShortVarDeclaration();\n+    if (varDeclaration == null) return null;\n+    GoVarDefinition structVarDefinition =\n+      ContainerUtil.find(varDeclaration.getVarDefinitionList(),\n+                         definition -> GoPsiImplUtil.getName(definition).equals(getQualifierName(fieldReference)));","path":"src/com/goide/intentions/GoMoveToStructInitializationIntention.java","position":181,"original_position":181,"commit_id":"dd95c29166deb689997948d0007660ad7977d396","original_commit_id":"dd95c29166deb689997948d0007660ad7977d396","user":{"login":"grenki","id":6865824,"avatar_url":"https://avatars.githubusercontent.com/u/6865824?v=3","gravatar_id":"","url":"https://api.github.com/users/grenki","html_url":"https://github.com/grenki","followers_url":"https://api.github.com/users/grenki/followers","following_url":"https://api.github.com/users/grenki/following{/other_user}","gists_url":"https://api.github.com/users/grenki/gists{/gist_id}","starred_url":"https://api.github.com/users/grenki/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/grenki/subscriptions","organizations_url":"https://api.github.com/users/grenki/orgs","repos_url":"https://api.github.com/users/grenki/repos","events_url":"https://api.github.com/users/grenki/events{/privacy}","received_events_url":"https://api.github.com/users/grenki/received_events","type":"User","site_admin":false},"body":"I think it unnecessary to add  method getName\r\nuse Comparing.equal()","created_at":"2016-10-21T13:09:30Z","updated_at":"2016-10-21T13:09:30Z","html_url":"https://github.com/go-lang-plugin-org/go-lang-idea-plugin/pull/2795#discussion_r84474552","pull_request_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/2795","_links":{"self":{"href":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/comments/84474552"},"html":{"href":"https://github.com/go-lang-plugin-org/go-lang-idea-plugin/pull/2795#discussion_r84474552"},"pull_request":{"href":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/2795"}}},"pull_request":{"url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/2795","id":89091326,"html_url":"https://github.com/go-lang-plugin-org/go-lang-idea-plugin/pull/2795","diff_url":"https://github.com/go-lang-plugin-org/go-lang-idea-plugin/pull/2795.diff","patch_url":"https://github.com/go-lang-plugin-org/go-lang-idea-plugin/pull/2795.patch","issue_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/issues/2795","number":2795,"state":"open","locked":false,"title":"Move to struct assignment intention","user":{"login":"wbars","id":5152749,"avatar_url":"https://avatars.githubusercontent.com/u/5152749?v=3","gravatar_id":"","url":"https://api.github.com/users/wbars","html_url":"https://github.com/wbars","followers_url":"https://api.github.com/users/wbars/followers","following_url":"https://api.github.com/users/wbars/following{/other_user}","gists_url":"https://api.github.com/users/wbars/gists{/gist_id}","starred_url":"https://api.github.com/users/wbars/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wbars/subscriptions","organizations_url":"https://api.github.com/users/wbars/orgs","repos_url":"https://api.github.com/users/wbars/repos","events_url":"https://api.github.com/users/wbars/events{/privacy}","received_events_url":"https://api.github.com/users/wbars/received_events","type":"User","site_admin":false},"body":"fixes #2702","created_at":"2016-10-12T20:50:34Z","updated_at":"2016-10-21T13:43:06Z","closed_at":null,"merged_at":null,"merge_commit_sha":"a76fdf8d4d43e73529caa02231c9b0b1544c27fe","assignee":null,"assignees":[],"milestone":null,"commits_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/2795/commits","review_comments_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/2795/comments","review_comment_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/comments{/number}","comments_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/issues/2795/comments","statuses_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/statuses/dd95c29166deb689997948d0007660ad7977d396","head":{"label":"wbars:go-2702","ref":"go-2702","sha":"dd95c29166deb689997948d0007660ad7977d396","user":{"login":"wbars","id":5152749,"avatar_url":"https://avatars.githubusercontent.com/u/5152749?v=3","gravatar_id":"","url":"https://api.github.com/users/wbars","html_url":"https://github.com/wbars","followers_url":"https://api.github.com/users/wbars/followers","following_url":"https://api.github.com/users/wbars/following{/other_user}","gists_url":"https://api.github.com/users/wbars/gists{/gist_id}","starred_url":"https://api.github.com/users/wbars/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wbars/subscriptions","organizations_url":"https://api.github.com/users/wbars/orgs","repos_url":"https://api.github.com/users/wbars/repos","events_url":"https://api.github.com/users/wbars/events{/privacy}","received_events_url":"https://api.github.com/users/wbars/received_events","type":"User","site_admin":false},"repo":{"id":69814068,"name":"go-lang-idea-plugin","full_name":"wbars/go-lang-idea-plugin","owner":{"login":"wbars","id":5152749,"avatar_url":"https://avatars.githubusercontent.com/u/5152749?v=3","gravatar_id":"","url":"https://api.github.com/users/wbars","html_url":"https://github.com/wbars","followers_url":"https://api.github.com/users/wbars/followers","following_url":"https://api.github.com/users/wbars/following{/other_user}","gists_url":"https://api.github.com/users/wbars/gists{/gist_id}","starred_url":"https://api.github.com/users/wbars/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wbars/subscriptions","organizations_url":"https://api.github.com/users/wbars/orgs","repos_url":"https://api.github.com/users/wbars/repos","events_url":"https://api.github.com/users/wbars/events{/privacy}","received_events_url":"https://api.github.com/users/wbars/received_events","type":"User","site_admin":false},"private":false,"html_url":"https://github.com/wbars/go-lang-idea-plugin","description":"Google Go language IDE built using the IntelliJ Platform","fork":true,"url":"https://api.github.com/repos/wbars/go-lang-idea-plugin","forks_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/forks","keys_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/teams","hooks_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/hooks","issue_events_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/events","assignees_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/tags","blobs_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/languages","stargazers_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/stargazers","contributors_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/contributors","subscribers_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/subscribers","subscription_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/subscription","commits_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/merges","archive_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/downloads","issues_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/labels{/name}","releases_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/releases{/id}","deployments_url":"https://api.github.com/repos/wbars/go-lang-idea-plugin/deployments","created_at":"2016-10-02T18:27:31Z","updated_at":"2016-10-02T18:27:35Z","pushed_at":"2016-10-21T10:31:49Z","git_url":"git://github.com/wbars/go-lang-idea-plugin.git","ssh_url":"git@github.com:wbars/go-lang-idea-plugin.git","clone_url":"https://github.com/wbars/go-lang-idea-plugin.git","svn_url":"https://github.com/wbars/go-lang-idea-plugin","homepage":"https://plugins.jetbrains.com/plugin/5047","size":34633,"stargazers_count":0,"watchers_count":0,"language":"Java","has_issues":false,"has_downloads":true,"has_wiki":true,"has_pages":false,"forks_count":0,"mirror_url":null,"open_issues_count":0,"forks":0,"open_issues":0,"watchers":0,"default_branch":"master"}},"base":{"label":"go-lang-plugin-org:master","ref":"master","sha":"cde4a8f55d1ea96fabd3c104b6726a98740f4347","user":{"login":"go-lang-plugin-org","id":6117521,"avatar_url":"https://avatars.githubusercontent.com/u/6117521?v=3","gravatar_id":"","url":"https://api.github.com/users/go-lang-plugin-org","html_url":"https://github.com/go-lang-plugin-org","followers_url":"https://api.github.com/users/go-lang-plugin-org/followers","following_url":"https://api.github.com/users/go-lang-plugin-org/following{/other_user}","gists_url":"https://api.github.com/users/go-lang-plugin-org/gists{/gist_id}","starred_url":"https://api.github.com/users/go-lang-plugin-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/go-lang-plugin-org/subscriptions","organizations_url":"https://api.github.com/users/go-lang-plugin-org/orgs","repos_url":"https://api.github.com/users/go-lang-plugin-org/repos","events_url":"https://api.github.com/users/go-lang-plugin-org/events{/privacy}","received_events_url":"https://api.github.com/users/go-lang-plugin-org/received_events","type":"Organization","site_admin":false},"repo":{"id":869754,"name":"go-lang-idea-plugin","full_name":"go-lang-plugin-org/go-lang-idea-plugin","owner":{"login":"go-lang-plugin-org","id":6117521,"avatar_url":"https://avatars.githubusercontent.com/u/6117521?v=3","gravatar_id":"","url":"https://api.github.com/users/go-lang-plugin-org","html_url":"https://github.com/go-lang-plugin-org","followers_url":"https://api.github.com/users/go-lang-plugin-org/followers","following_url":"https://api.github.com/users/go-lang-plugin-org/following{/other_user}","gists_url":"https://api.github.com/users/go-lang-plugin-org/gists{/gist_id}","starred_url":"https://api.github.com/users/go-lang-plugin-org/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/go-lang-plugin-org/subscriptions","organizations_url":"https://api.github.com/users/go-lang-plugin-org/orgs","repos_url":"https://api.github.com/users/go-lang-plugin-org/repos","events_url":"https://api.github.com/users/go-lang-plugin-org/events{/privacy}","received_events_url":"https://api.github.com/users/go-lang-plugin-org/received_events","type":"Organization","site_admin":false},"private":false,"html_url":"https://github.com/go-lang-plugin-org/go-lang-idea-plugin","description":"Google Go language IDE built using the IntelliJ Platform","fork":false,"url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin","forks_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/forks","keys_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/keys{/key_id}","collaborators_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/collaborators{/collaborator}","teams_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/teams","hooks_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/hooks","issue_events_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/issues/events{/number}","events_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/events","assignees_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/assignees{/user}","branches_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/branches{/branch}","tags_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/tags","blobs_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/git/blobs{/sha}","git_tags_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/git/tags{/sha}","git_refs_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/git/refs{/sha}","trees_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/git/trees{/sha}","statuses_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/statuses/{sha}","languages_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/languages","stargazers_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/stargazers","contributors_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/contributors","subscribers_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/subscribers","subscription_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/subscription","commits_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/commits{/sha}","git_commits_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/git/commits{/sha}","comments_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/comments{/number}","issue_comment_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/issues/comments{/number}","contents_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/contents/{+path}","compare_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/compare/{base}...{head}","merges_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/merges","archive_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/{archive_format}{/ref}","downloads_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/downloads","issues_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/issues{/number}","pulls_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls{/number}","milestones_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/milestones{/number}","notifications_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/notifications{?since,all,participating}","labels_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/labels{/name}","releases_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/releases{/id}","deployments_url":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/deployments","created_at":"2010-08-29T08:20:01Z","updated_at":"2016-10-21T09:46:31Z","pushed_at":"2016-10-21T10:31:51Z","git_url":"git://github.com/go-lang-plugin-org/go-lang-idea-plugin.git","ssh_url":"git@github.com:go-lang-plugin-org/go-lang-idea-plugin.git","clone_url":"https://github.com/go-lang-plugin-org/go-lang-idea-plugin.git","svn_url":"https://github.com/go-lang-plugin-org/go-lang-idea-plugin","homepage":"https://plugins.jetbrains.com/plugin/5047","size":69695,"stargazers_count":3879,"watchers_count":3879,"language":"Java","has_issues":true,"has_downloads":true,"has_wiki":true,"has_pages":true,"forks_count":455,"mirror_url":null,"open_issues_count":401,"forks":455,"open_issues":401,"watchers":3879,"default_branch":"master"}},"_links":{"self":{"href":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/2795"},"html":{"href":"https://github.com/go-lang-plugin-org/go-lang-idea-plugin/pull/2795"},"issue":{"href":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/issues/2795"},"comments":{"href":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/issues/2795/comments"},"review_comments":{"href":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/2795/comments"},"review_comment":{"href":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/comments{/number}"},"commits":{"href":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/pulls/2795/commits"},"statuses":{"href":"https://api.github.com/repos/go-lang-plugin-org/go-lang-idea-plugin/statuses/dd95c29166deb689997948d0007660ad7977d396"}}}}
{"actor":{"display_login":"grenki"}}