Giter Site home page Giter Site logo

github-cr-intellij-plugin's Introduction

Plugin configuration

  1. Set your github credentials in your ide, as indicated by jetbrain's documentation
  2. Set a git remote for your root repository, which name must be 'origin' or 'github', and which url is pointing to your github repository
  3. Make sure that you have properly set passwords for git remoted, as indicated by jetbrain's documentation

Known limitations

  • If your project contains several repositories, only pull requests for the root repository are detected

Standing on the shoulders of Giants

gerrit intellij plugin:

Infinite source of inspiration for this plugin.
Its source code is always of great help whenever in doubt about how to interact with the intellij IDE.

github-cr-intellij-plugin's People

Contributors

duxtinto avatar xuluwarrior avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

github-cr-intellij-plugin's Issues

Android Studio support

Plugin crashes when installed on Android Studio 3

Plugin 'main.com.duxtinto.intellij.plugin.github.codereviews' failed to initialize and will be disabled.  Please restart Android Studio.

java.lang.AbstractMethodError
    at com.intellij.openapi.components.impl.ComponentManagerImpl.registerComponentInstance(ComponentManagerImpl.java:417)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.access$300(ComponentManagerImpl.java:58)
    at com.intellij.openapi.components.impl.ComponentManagerImpl$ComponentConfigComponentAdapter.getComponentInstance(ComponentManagerImpl.java:482)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.createComponents(ComponentManagerImpl.java:120)
    at com.intellij.openapi.application.impl.ApplicationImpl.lambda$createComponents$8(ApplicationImpl.java:466)
    at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:176)
    at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:556)
    at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:501)
    at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:66)
    at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:163)
    at com.intellij.openapi.application.impl.ApplicationImpl.createComponents(ApplicationImpl.java:473)
    at com.intellij.openapi.components.impl.ComponentManagerImpl.init(ComponentManagerImpl.java:104)
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:425)
    at com.intellij.openapi.application.impl.ApplicationImpl.load(ApplicationImpl.java:411)
    at com.intellij.idea.IdeaApplication.run(IdeaApplication.java:206)
    at com.intellij.idea.MainImpl$1.lambda$null$0(MainImpl.java:49)
    at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
    at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
    at java.awt.EventQueue.access$500(EventQueue.java:98)
    at java.awt.EventQueue$3.run(EventQueue.java:715)
    at java.awt.EventQueue$3.run(EventQueue.java:709)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
    at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
    at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:343)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
    at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
    at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
    at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

Add License

Would be great if you could add a license for the source. Thanks.

Pull request not showing up

As a reviewer I want to have the ability to see all open pull requests of the project.

Background:
I have created a test repository and a pull request to try the plugin out. Zutatensuppe/review-test#2
But the plugin fails to load the list of pull requests. Could that be because I have not set a reviewer in the pull request? I think there should be an option to see ALL open pull requests regardless of wether I am added as a reviewer specifically.
I tried creating the pull request in github first, then again directly via the IDE, both without success.

grafik

Integration within the Editor

As a reviewee I want to see github comments of pull requests directly in the editor in the Intellij IDE. This will help reducing the overhead of switching context (IDE - Browser) when working on requested changes.

As a reviewer I want to comment on a pull request directly from the IDE.

Background/More Info:
The integration could be done similar to the one in the Jetbrains Upsource Plugin (https://plugins.jetbrains.com/plugin/7431-upsource-integration). Not everything is perfect there, but it is a good start.

  • When opening a review there is an overview of all the changed files and github comments
  • Clicking on a file allows jumping to the file
  • Clicking on a comment jumps to the file at the position of the comment
  • Comments in the editor itself are indicated by a comment-bubble icon at the side, clicking on the icons opens the comments to be interacted with (read/reply/mark resolved/etc.)

(Maybe i m just doing something wrong, but when clicking on a pull request, the github page with the pull request is opened.)

Provide readme/documentation

I've installed the plugin and the GitHub Reviews tab just says "Nothing to see here"

I'm assuming that I need to configure it somewhere but can't see where.

I'm working on a private repository if that makes any difference.

IntelliJ 2018.1.1 EAP causes Exception

StackTrace after IDE startup:

Parse exception while converting JSON to object class com.duxtinto.intellij.plugin.github.codereviews.net.codereviews.apiv3.RequestedReviewersResponse org.jetbrains.plugins.github.exceptions.GithubJsonException: Parse exception while converting JSON to object class com.duxtinto.intellij.plugin.github.codereviews.net.codereviews.apiv3.RequestedReviewersResponse at org.jetbrains.plugins.github.api.GithubApiUtil.fromJson(GithubApiUtil.java:75) at com.duxtinto.intellij.plugin.github.codereviews.ide.acl.services.github.codereviews.IdeaCodeReviewerLoader.loadAllForPullRequest(IdeaCodeReviewerLoader.kt:25) at com.duxtinto.intellij.plugin.github.codereviews.net.codereviews.apiv3.CodeReviewerFetcher.fetchAllByPullRequest(CodeReviewerFetcher.kt:19) at com.duxtinto.intellij.plugin.github.codereviews.data.pullrequests.PullRequestRepository.getAllMyRequestedBy(PullRequestRepository.kt:38) at com.duxtinto.intellij.plugin.github.codereviews.domain.pullrequests.GetAllMyRequestedForRepoInteractor.run(GetAllMyRequestedForRepoInteractor.kt:11) at com.duxtinto.intellij.plugin.github.codereviews.domain.pullrequests.GetAllMyRequestedForRepoInteractor.run(GetAllMyRequestedForRepoInteractor.kt:6) at com.duxtinto.intellij.plugin.github.codereviews.ide.acl.events.repositories.GitChangeListener.mappingChanged(GitChangeListener.kt:26) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117) at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:426) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:387) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:376) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:364) at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:357) at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:43) at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:208) at com.sun.proxy.$Proxy117.mappingChanged(Unknown Source) at com.intellij.dvcs.repo.VcsRepositoryManager.checkAndUpdateRepositoriesCollection(VcsRepositoryManager.java:225) at com.intellij.dvcs.repo.VcsRepositoryManager.directoryMappingChanged(VcsRepositoryManager.java:89) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:498) at com.intellij.util.messages.impl.MessageBusConnectionImpl.deliverMessage(MessageBusConnectionImpl.java:117) at com.intellij.util.messages.impl.MessageBusImpl.doPumpMessages(MessageBusImpl.java:426) at com.intellij.util.messages.impl.MessageBusImpl.pumpWaitingBuses(MessageBusImpl.java:387) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:376) at com.intellij.util.messages.impl.MessageBusImpl.pumpMessages(MessageBusImpl.java:364) at com.intellij.util.messages.impl.MessageBusImpl.sendMessage(MessageBusImpl.java:357) at com.intellij.util.messages.impl.MessageBusImpl.access$200(MessageBusImpl.java:43) at com.intellij.util.messages.impl.MessageBusImpl$2.invoke(MessageBusImpl.java:208) at com.sun.proxy.$Proxy74.directoryMappingChanged(Unknown Source) at com.intellij.openapi.vcs.impl.projectlevelman.NewMappings.mappingsChanged(NewMappings.java:186) at com.intellij.openapi.vcs.impl.projectlevelman.NewMappings.activateActiveVcses(NewMappings.java:125) at com.intellij.openapi.vcs.impl.projectlevelman.NewMappings.lambda$new$0(NewMappings.java:94) at com.intellij.openapi.vcs.impl.VcsInitialization.execute(VcsInitialization.java:103) at com.intellij.openapi.vcs.impl.VcsInitialization.access$000(VcsInitialization.java:43) at com.intellij.openapi.vcs.impl.VcsInitialization$1.run(VcsInitialization.java:67) at com.intellij.openapi.progress.impl.CoreProgressManager$TaskRunnable.run(CoreProgressManager.java:750) at com.intellij.openapi.progress.impl.CoreProgressManager.lambda$runProcess$1(CoreProgressManager.java:157) at com.intellij.openapi.progress.impl.CoreProgressManager.registerIndicatorAndRun(CoreProgressManager.java:580) at com.intellij.openapi.progress.impl.CoreProgressManager.executeProcessUnderProgress(CoreProgressManager.java:525) at com.intellij.openapi.progress.impl.ProgressManagerImpl.executeProcessUnderProgress(ProgressManagerImpl.java:85) at com.intellij.openapi.progress.impl.CoreProgressManager.runProcess(CoreProgressManager.java:144) at com.intellij.openapi.progress.impl.CoreProgressManager$4.run(CoreProgressManager.java:395) at com.intellij.openapi.application.impl.ApplicationImpl$1.run(ApplicationImpl.java:305) at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) at java.util.concurrent.FutureTask.run(FutureTask.java:266) at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149) at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624) at java.lang.Thread.run(Thread.java:748) Caused by: com.google.gson.JsonSyntaxException: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at path $ at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:224) at com.google.gson.Gson.fromJson(Gson.java:888) at com.google.gson.Gson.fromJson(Gson.java:953) at com.google.gson.Gson.fromJson(Gson.java:926) at org.jetbrains.plugins.github.api.GithubApiUtil.fromJson(GithubApiUtil.java:70) ... 53 more Caused by: java.lang.IllegalStateException: Expected BEGIN_OBJECT but was BEGIN_ARRAY at path $ at com.google.gson.internal.bind.JsonTreeReader.expect(JsonTreeReader.java:162) at com.google.gson.internal.bind.JsonTreeReader.beginObject(JsonTreeReader.java:87) at com.google.gson.internal.bind.ReflectiveTypeAdapterFactory$Adapter.read(ReflectiveTypeAdapterFactory.java:213) ... 57 more

Crash on toolbar open

I've just installed the plugin, set up github token, opened toolar and got the crash:

project.getComponent(TaskManager::class.java) must not be null
java.lang.IllegalStateException: project.getComponent(TaskManager::class.java) must not be null
	at com.duxtinto.intellij.plugin.github.codereviews.di.impl.dagger.modules.idea.IdeaTaskModule.provideTaskManager(IdeaTaskModule.kt:14)
	at com.duxtinto.intellij.plugin.github.codereviews.di.impl.dagger.modules.idea.IdeaTaskModule_ProvideTaskManagerFactory.get(IdeaTaskModule_ProvideTaskManagerFactory.java:28)
	at com.duxtinto.intellij.plugin.github.codereviews.di.impl.dagger.modules.idea.IdeaTaskModule_ProvideTaskManagerFactory.get(IdeaTaskModule_ProvideTaskManagerFactory.java:10)
	at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at com.duxtinto.intellij.plugin.github.codereviews.ide.acl.services.tasks.IdeaTaskActivator_Factory.get(IdeaTaskActivator_Factory.java:27)
	at com.duxtinto.intellij.plugin.github.codereviews.ide.acl.services.tasks.IdeaTaskActivator_Factory.get(IdeaTaskActivator_Factory.java:9)
	at com.duxtinto.intellij.plugin.github.codereviews.domain.issues.SwitchToIssueInteractor_Factory.get(SwitchToIssueInteractor_Factory.java:21)
	at com.duxtinto.intellij.plugin.github.codereviews.domain.issues.SwitchToIssueInteractor_Factory.get(SwitchToIssueInteractor_Factory.java:7)
	at com.duxtinto.intellij.plugin.github.codereviews.presentation.pullrequestlist.events.PullRequestListMouseListener_Factory.get(PullRequestListMouseListener_Factory.java:23)
	at com.duxtinto.intellij.plugin.github.codereviews.presentation.pullrequestlist.events.PullRequestListMouseListener_Factory.get(PullRequestListMouseListener_Factory.java:8)
	at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at com.duxtinto.intellij.plugin.github.codereviews.presentation.pullrequestlist.PullRequestListView_Factory.get(PullRequestListView_Factory.java:33)
	at com.duxtinto.intellij.plugin.github.codereviews.presentation.pullrequestlist.PullRequestListView_Factory.get(PullRequestListView_Factory.java:10)
	at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at com.duxtinto.intellij.plugin.github.codereviews.presentation.reviewee.RevieweeView_Factory.get(RevieweeView_Factory.java:33)
	at com.duxtinto.intellij.plugin.github.codereviews.presentation.reviewee.RevieweeView_Factory.get(RevieweeView_Factory.java:10)
	at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at com.duxtinto.intellij.plugin.github.codereviews.ide.acl.presentation.toolwindow.ToolWindowContentPresenter_Factory.get(ToolWindowContentPresenter_Factory.java:61)
	at com.duxtinto.intellij.plugin.github.codereviews.ide.acl.presentation.toolwindow.ToolWindowContentPresenter_Factory.get(ToolWindowContentPresenter_Factory.java:13)
	at dagger.internal.DoubleCheck.get(DoubleCheck.java:47)
	at com.duxtinto.intellij.plugin.github.codereviews.di.impl.dagger.DaggerApplicationContainer$ProjectContainerImpl.injectToolWindowFactory(DaggerApplicationContainer.java:585)
	at com.duxtinto.intellij.plugin.github.codereviews.di.impl.dagger.DaggerApplicationContainer$ProjectContainerImpl.inject(DaggerApplicationContainer.java:572)
	at com.duxtinto.intellij.plugin.github.codereviews.ide.acl.presentation.toolwindow.ToolWindowFactory.createToolWindowContent(ToolWindowFactory.kt:20)
	at com.intellij.openapi.wm.impl.ToolWindowImpl.ensureContentInitialized(ToolWindowImpl.java:573)
	at com.intellij.openapi.wm.impl.ToolWindowImpl.getContentManager(ToolWindowImpl.java:407)
	at com.intellij.openapi.wm.impl.commands.RequestFocusInToolWindowCmd.processRequestFocus(RequestFocusInToolWindowCmd.java:73)
	at com.intellij.openapi.wm.impl.commands.RequestFocusInToolWindowCmd.lambda$run$0(RequestFocusInToolWindowCmd.java:61)
	at com.intellij.openapi.util.ExecutionCallback.doWhenExecuted(ExecutionCallback.java:100)
	at com.intellij.openapi.util.ActionCallback.doWhenDone(ActionCallback.java:111)
	at com.intellij.openapi.wm.impl.commands.RequestFocusInToolWindowCmd.run(RequestFocusInToolWindowCmd.java:61)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.ToolWindowsPane$AddDockedComponentCmd.run(ToolWindowsPane.java:768)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:93)
	at com.intellij.openapi.wm.impl.CommandProcessor.run(CommandProcessor.java:74)
	at com.intellij.openapi.wm.impl.commands.FinalizableCommand.finish(FinalizableCommand.java:36)
	at com.intellij.openapi.wm.impl.commands.ApplyWindowInfoCmd.run(ApplyWindowInfoCmd.java:50)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.runNextEvent(LaterInvocator.java:424)
	at com.intellij.openapi.application.impl.LaterInvocator$FlushQueue.run(LaterInvocator.java:407)
	at java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)
	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:762)
	at java.awt.EventQueue.access$500(EventQueue.java:98)
	at java.awt.EventQueue$3.run(EventQueue.java:715)
	at java.awt.EventQueue$3.run(EventQueue.java:709)
	at java.security.AccessController.doPrivileged(Native Method)
	at java.security.ProtectionDomain$JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)
	at java.awt.EventQueue.dispatchEvent(EventQueue.java:732)
	at com.intellij.ide.IdeEventQueue.defaultDispatchEvent(IdeEventQueue.java:822)
	at com.intellij.ide.IdeEventQueue._dispatchEvent(IdeEventQueue.java:650)
	at com.intellij.ide.IdeEventQueue.dispatchEvent(IdeEventQueue.java:366)
	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)
	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)
	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)
	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)
	at java.awt.EventDispatchThread.run(EventDispatchThread.java:82)

allow other remote than origin to be used

Hi, i was messing around with this plugin for a bit, but it would be great if it can work on upstream repo rather than origin, since in usually, i put my fork in the origin remote, and put the original repo in the upstream remote.

Code review: Show if comments are available

I can see in the GitHub Reviews tab if code reviews are avaible. But I do not see immediately if there are comments. I have to double click on a code review to get the little triangle and then check the comments.

Maybe there is a way to check for comments while syncing.

Line numbers for comments are not correct

Currently, the position JSON property is used as a line number when clicking on review comments and going to a file.

However, this does not go to the correct line number!

The GitHub API documentation says this:

Note: To comment on a specific line in a file, you need to first determine the position of that line in the diff. The GitHub REST API v3 offers the application/vnd.github.v3.diff media type. To see a pull request diff, add this media type to the Accept header of a call to the single pull request endpoint.

The position value equals the number of lines down from the first "@@" hunk header in the file you want to add a comment. The line just below the "@@" line is position 1, the next line is position 2, and so on. The position in the diff continues to increase through lines of whitespace and additional hunks until the beginning of a new file.

So, what this means for getting the correct line number of a comment is:

  1. You'd have to get the diff by doing a call to /repos/$owner/$repo/pulls/$id with the header Accept: application/vnd.github.v3.diff
  2. You'd have to look in the diff for the start of the file of the comment, it looks like this:
diff --git a/[OLD_PATH] b/[NEW_PATH]
index 1234578..123468576 123456
--- a/[OLD_PATH]
+++ b/[NEW_PATH]
@@ -123,12 +123,12 @@
[CODE]
  1. Finally, you have to go down position lines, parsing and incorporating the @@ lines on the way, to stay at the correct line number.

So, for this diff:

@@ -122,12 +123,12 @@
 some.code1();
+some.code2();
 some.code3();
@@ -143,12 +145,12 @@
 some.code4();
-some.code5();

position 1 would be some.code1();, or line 123.
position 3 would be some.code3();, or line 125.
position 5 would be some.code4();, or line 145.

IDEA fails to start if GitHub is unreachable

I use GitHub Enterprise which requires a connection to a VPN. If I'm not connected to the VPN, then IDEA fails to start:
image

The JetBrains Github plugin fails more gracefully in the same scenario

IntelliJ IDEA 2017.3.4 (Ultimate Edition)
Build #IU-173.4548.28, built on January 29, 2018
JRE: 1.8.0_152-release-1024-b11 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o
Mac OS X 10.13.3

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.