How to review a pull request in IntelliJ IDEA?

67,216

Solution 1

The formal support for GitHub (or BitBucket for that matter) pull request review is still pending (issue IDEA-85079, opened in 2012). It will be implemented in the 2020.2 release (see here).

Since 2016, it has support for GitHub PR in 2018.3, as commented here:

This is mostly read-only mode for now - one could create a local branch from a PR or open it on GitHub to comment/close it - but this is only the first step.

In future releases we plan to add additional functionality - ability to assign PRs IDEA-146659, merge/close them directly from IDE, comment on the PR and specific lines of code - IDEA-64794.

But: (Sept. 2019)

It's not at all obvious how to open the PR page. I had to look up the release notes to discover it's a double click. Discoverability of the PR tab is also poor; it isn't visible by default and there's no way to reach it from the version control tab, which is where I looked first.

Jan. 2020: Dan Oak mentions in the comments that:

CodeStream provides a tool to integrate GitHub PRs into IDEA.
See Pull Request Integrations:

CodeStream can display merged pull request comments in your editor as annotations on the current version of your


2016:

That leaves you with a manual process, fetching a PR, and comparing the branches:

git fetch origin pull/1234/head:pr-1234

For BitBucket:

git fetch origin refs/pull-requests/1234/from:pr-1234

(See also "How to fetch Pull Requests in BitBucket")

Then you can compare branches in IntelliJ.

Solution 2

Most up-to-date information (March 2021)

Now, IntelliJ 2020.2 fully supports reviewing Pull Requests.

Preview of the feature

Accessing the feature

You can either navigate to: Main menu > VCS > Git > View Pull Requests.

Access from top-menu

Or it might be in your left "side-menu" (here the third option from the top):

Access from side-menu

Further information

It seems to be mostly an integration for GitHub (source):

Now the entire GitHub pull request workflow can be done directly from IntelliJ IDEA. It’s possible to browse, assign, manage, and even merge pull requests, view the timeline and inline comments, submit comments and reviews, and accept changes.

A more in-depth description of all the VCS-related features introduced can be found here:

Full GitHub Pull Requests support

We are excited to announce that IntelliJ IDEA 2020.2 will come with full support for GitHub Pull Requests!

We introduced initial support for GitHub Pull Requests with v2018.3, and we’ve been enhancing this functionality ever since. Previously, the IDE had some useful features, such as the GitHub tool window with a list of all pull requests associated with the repository, the Timeline view for a pull request, which opens in the editor, and the ability to view comments in diffs and create comments of your own. But those features were mostly for viewing pull requests and not for interacting with them.

With the upcoming IntelliJ IDEA 2020.2, you’ll be able to browse, assign, manage, and even merge pull requests, view the timeline and in-line comments, submit comments and reviews, and accept changes.

You no longer need to switch between the browser and your IDE. The entire Pull Request workflow can now be completed from within IntelliJ IDEA!

More previews

And two more sneak-peaks for the Review and Merge:

Preview #2

Preview #3


Creating PRs

Moreover, as of 2021.1, you can create Pull Requests, too:

creating a PR

Solution 3

I find it easier to append fetch = +refs/pull/*/head:refs/remotes/origin/pr/* under [remote "origin"] section inside .git/config so it looks like this:

[remote "origin"]
    fetch = +refs/heads/*:refs/remotes/origin/*
    url = xxxxxxxxxxxxxxx.git
    fetch = +refs/pull/*/head:refs/remotes/origin/pr/*

And then git fetch origin fetches all pull requests. I think this should work for BitBucket too though I haven't tested it.

Solution 4

To view the Pull request and changes, use the following steps in Intellij:

  1. Go to version control.
  2. Click logs. There will a list of all commits.
  3. Select a perticular commits.
  4. On the right window, you will get the list of changes in this commit.
  5. Select show parent changes.
  6. Click on the files which show changes and then you will able to see all the code changes.
Share:
67,216
galusben
Author by

galusben

Updated on July 19, 2022

Comments

  • galusben
    galusben almost 2 years

    We are using git, Bitbucket, and IntelliJ IDEA. The project is mainly written in Java and Groovy.

    Is there a good way to review pull requests right from IntelliJ?

  • galusben
    galusben over 7 years
    I was looking for a bitbucket solution, but I guess this will come even after the github one.
  • VonC
    VonC over 7 years
    @gba Actually, the problem (and current solution) is the same for bitBucket pull requests
  • VonC
    VonC over 7 years
    @gba I have edited the answer to include the refspec valid for BitBucket (instead of just GitHub)
  • Shashwat Kumar
    Shashwat Kumar over 6 years
    I don't get then you compare branches in intellij. After fetching pull request, what to do. Pull request is not shown as branch.
  • VonC
    VonC over 6 years
    @ShashwatKumar the refspec refs/pull-requests/1234/from:pr-1234 should create the local branch pr-1234. If not, please open a new questio describing your issue and current setup.
  • Shashwat Kumar
    Shashwat Kumar over 6 years
    Yup got it. Probably branch name pull/1234/from us wrong
  • AlikElzin-kilaka
    AlikElzin-kilaka about 6 years
    @VonC - How do you leave PR comments in this process?
  • VonC
    VonC about 6 years
    @AlikElzin-kilaka I don't know if PR comments are supported on the client side (here, the IDE IntelliJ IDEA): this is more a server-side feature (on GitHub or BitBucket directly)
  • galusben
    galusben almost 5 years
    A pull request may have multiple commits. Also, I would expect full integration with github and bitbucket for adding comments, tasks, approving, merging etc’. Thanks anyway :-)
  • http8086
    http8086 over 4 years
    For BitBucket: that's nice. but how about gitlab?
  • VonC
    VonC over 4 years
    @workplaylifecycle There exists a manual process with merge requests for GitLab (which are the equivalent of pull requests for GitHub or BitBucket). See docs.gitlab.com/ee/user/project/merge_requests/…
  • rvazquezglez
    rvazquezglez over 4 years
    I think it works only for Github, I tried to do it for a project hosted on Bitbucket and the "View pull request" option wasn't there. However, when I tried with a Github project it is there.
  • rpajaziti
    rpajaziti over 4 years
    Thanks a lot @KayV. You helped a lot, even though i did knew about this, i forgot to use it on PR's.
  • Dan Oak
    Dan Oak over 4 years
    codestream.com provides a tool to integrate GitHub PRs into IDEA. See github.com/TeamCodeStream/CodeStream/wiki/Pull-Request-Integ‌​rations
  • VonC
    VonC over 4 years
    @DanOak Thank you for this update. I have included your comment in the answer for more visibility.
  • bahti
    bahti about 4 years
    I am not seeing either with GHE.
  • mochadwi
    mochadwi about 4 years
    same with gitlab, it only support github by default
  • vaughan
    vaughan about 4 years
    Find Pull Request plugin (plugins.jetbrains.com/plugin/8262-find-pull-request) can help add comments if you prefer not to use the modal diff view in IntelliJ PR tool window.
  • brianc
    brianc over 3 years
    @VonC codestream.com now has a more robust GitHub PR integration (you can create/comment/merge PRs) see codestream.com/blog/codestream-9-0-puts-github-in-your-ide
  • VonC
    VonC over 3 years
    @brianc I agree. I believe I do mention Codestream in the answer.
  • Netsab612
    Netsab612 over 3 years
    Idem, sadly, it doesn't display the option for my Gitlab project
  • ssgao
    ssgao over 3 years
    Doesn't seem like code navigation is turned on. Kinda defeat the purpose of having it inside the IDE. I wonder if that feature is in the backlog
  • markeissler
    markeissler about 3 years
    This works in Goland as well. Important to note is that if you are using .ssh/config, Jetbrains has set this up so that the hostname must match github.com exactly. Not a great way to implement this feature! A work around (if you have multiple github accounts in .ssh/config is to name the host as [email protected], set the user to git and that sort of works (update: can view comments, commits, not diffs). Also, you may need to delete your github account (in Intellij/Goland, etc) and add it again via the PR interface when it prompts for login, or you could get an already added error.
  • Yeikel
    Yeikel about 3 years
    This does not seem to work with Github enterprise as @bahti pointed out :(
  • spyro
    spyro about 3 years
    Seems not to work with GitLab, I entered my server, created an access token but I just can't find the view.
  • ytoledano
    ytoledano about 3 years
    This does work for me with Guthub Enterprise
  • jlee
    jlee over 2 years
    does anyone know if there is way to use the suggest changes feature directly from intelliJ?