GitHub pull requests in IntelliJ IDEA, PyCharm and other JetBrains IDEs
JetBrains IDEs bundle a GitHub plugin, and for pull requests it does a lot for free: a Pull Requests tool window with filters (a "Review requests" filter among them), review in the diff with approve and request changes, suggested changes applied locally, viewed marks, merging, squashing or rebasing, and creating pull requests. It shows one repository at a time, though: a project with several GitHub repositories switches between them with "Change Repository or Account". The request to show the pull requests of several repositories in one list (IJPL-72813) has been Shelved, and requests for GitHub notifications (IJPL-74105) and auto-merge (IJPL-74187) are open. These are the plugins on JetBrains Marketplace for GitHub pull requests that we found.
Disclosure: Lesstep makes one of them (Pull Request Inbox for GitHub). The others are described from their JetBrains Marketplace pages (descriptions, change notes, version lists and US prices). Where those do not say something, this page says "not stated in its description" instead of guessing. GitHub is a trademark of GitHub, Inc. Pull Request Inbox for GitHub is not affiliated with, sponsored or endorsed by GitHub, Inc. Corrections are welcome at support@lesstep.com. 日本語
Which one fits
- You review one repository at a time and want it free: the GitHub plugin built into the IDE already reviews, approves and merges. Pull Request Inbox (ours) is free for reading.
- You want the pull requests of several repositories in one list: GitHub PRs Monitor polls the repositories of your open projects and of recent projects you have closed; Pull Request Viewer lists the repositories you configure; PR-FlowTracker has a multi-repo mode across the repositories you activate. Pull Request Inbox (ours) lists the GitHub repositories open in the project, their owner (a user or an organization), or all of GitHub.
- You want to be told when someone asks for your review: GitHub PRs Monitor is built around notifications and reminders: new and edited comments, review requests, approvals, @-mentions, and a reminder while a pull request still awaits your review. GitHub Notifications (free) lists your unread GitHub notifications and needs the GitHub CLI. Pull Request Inbox (ours) notifies you when a new review request arrives.
- You are on IDE 2024.1 to 2024.3: PR-FlowTracker (2023.2 and later) and Pull Request Inbox (ours, 2024.1 and later) cover them, Pull Request Viewer from 2024.3 on. GitHub PRs Monitor and Git Desk build for 2025.1 and later.
- You review Bitbucket, GitLab or Azure DevOps pull requests too and want one plugin: Pull Request Viewer covers GitHub, Bitbucket Cloud and Azure DevOps Services; Git Desk covers GitHub and GitLab.
- You want to turn on auto-merge from the IDE: the built-in plugin has no such action (IJPL-74187 is open), and none of the other plugins here mentions it. Pull Request Inbox (ours) has it among the paid actions.
- You mainly review, want reading to stay free, and want no AI features and no telemetry: Pull Request Inbox for GitHub (Lesstep's).
The main options
Built into JetBrains IDEs
- IDEs
- The GitHub plugin bundled with IntelliJ IDEA 2024.1 and 2025.3, the 2026.3 early-access build and Rider 2026.2 was checked, with the IntelliJ IDEA 2026.2 help.
- GitHub
- GitHub and GitHub Enterprise accounts, logged in through the IDE: on github.com with Log In via GitHub or a token, on GitHub Enterprise with a token (what it shows when GitHub refuses the token).
- Pull requests
- The pull requests of one repository of the project at a time ("Change Repository or Account" switches), filtered by state, author, label, assignee and review status, with quick filters for your pull requests, the ones assigned to you and review requests ("Awaiting review from you"). Review in the diff with single comments or a pending review, then approve, request changes or comment; suggested changes applied locally; viewed marks; merge checks (required checks, conflicts, unresolved conversations, required approvals); merge, squash and merge, or rebase; close, reopen, request reviewers; check out the branch (the 2026.3 early-access build also opens it in a Git worktree); create pull requests, also as drafts.
- Not included
- A list across repositories, a notification when you are asked for a review, and auto-merge: we found no such action or text in the plugin's files. The requests are linked above.
- Price
- Included with the IDE.
GitHub PRs Monitor
- IDEs
- Which IDEs is not stated in its description; it needs the bundled GitHub and Git plugins. Builds for 2025.1 and later; Marketplace offers no version for 2024.1 to 2024.3.
- GitHub
- The GitHub account set up in the IDE. GitHub Enterprise is not stated in its description.
- Pull requests
- Polls the open pull requests of your repositories, in open projects and in recent projects you have closed, for comments, reviews, review requests and approval changes, and lists them in a tool window, with a filter by pull request author. Desktop notifications for new and edited comments, review requests, approvals or requested changes, and @-mentions; reminders for unread comments and for pull requests still awaiting your review, which can be snoozed. Replying, approving or merging from the plugin is not stated in its description.
- Price
- Freemium: settings per project and a custom polling interval for closed projects are paid; $1 a month or $10 a year for individuals, $5 a month or $50 a year per user for organizations, 7-day trial.
Pull Request Viewer for Bitbucket, GitHub & Azure DevOps
- IDEs
- Its description says IntelliJ IDEA. Builds for 2024.3 and later.
- GitHub
- Its description names GitHub; GitHub Enterprise is not stated.
- Pull requests
- A queue across the repositories you configure, with All Open, Needs My Review and My PRs filters and a search; native diffs (the whole pull request, or commit by commit); inline comments and threads; files marked reviewed, with changes since your review detected; review decisions. Version 2026.4.0 (October 2026) dropped scheduled review-request polling, according to its change notes.
- Also
- Bitbucket Cloud and Azure DevOps Services in the same plugin; CI triage with GitHub Actions runs, jobs and logs.
- Price
- Paid: $15 a year for individuals, $30 a year per user for organizations, 30-day trial.
PR-FlowTracker
- IDEs
- "Your JetBrains IDE", according to its description, which recommends macOS and Linux and says it also works on Windows. Builds for 2023.2 to 2026.2.
- GitHub
- Its description names GitHub; GitHub Enterprise is not stated.
- Pull requests
- Open pull requests with their changes, review requests and conflicts. Its change notes of May and June 2025 add a multi-repo mode across the repositories you activate, quick filters, reports across repositories, and a Pull Request Actions tab to submit reviews (comment, approve or request changes), merge with a chosen strategy, and set labels and assignees. Notifications are not stated.
- Price
- Paid: $1 a month or $10 a year, the same for individuals and organizations, and less in the second and third years; 30-day trial.
Pull Request Inbox for GitHub (Lesstep)
- IDEs
- 2024.1 and later: IntelliJ IDEA, PyCharm, WebStorm, Rider and the other JetBrains IDEs with Git. It does not depend on the bundled GitHub plugin.
- GitHub
- github.com, GitHub Enterprise Server and GHE.com, each with its own personal access token in the IDE's password safe; public repositories on github.com can be read without a token. The IDE's proxy settings and trusted certificates are used.
- Pull requests
- One list of the pull requests waiting for your review, reviewed by you or opened by you: from every GitHub repository open in the project (with the repository's name on each row), from their owner (a user or an organization), or from everywhere on GitHub; each row shows what is new since you last looked. A notification when a new review request arrives. All changed files in one diff window, fetched from GitHub; viewed marks that a later push to the file clears; line conversations in the diff, open ones first and resolved ones folded away; merge checks in plain words; check runs and commit statuses; checking out the branch, also from a fork.
- Also
- No AI features and no telemetry; its page says it talks only to the GitHub hosts you set up. English and Japanese.
- Price
- Reading is free: the inbox, diffs, viewed marks, conversations, merge checks, checks and statuses, and checking out the branch. Approving, requesting changes, commenting, replying, resolving, merging and auto-merge, updating the branch, marking as ready or as draft, closing and creating pull requests: $1.50 a month or $15 a year for individuals, $3 a month or $30 a year per user for organizations, 30-day trial.
Smaller or narrower entries also exist. Git Desk (paid, $19 for a perpetual license, 14-day trial, in beta, IDE 2025.1 and later) lists GitHub pull requests and GitLab merge requests across the repositories you configure, with a repository filter; it needs an access token, and also has merge sessions for conflicts, a repository list and worktrees. OrbiTrack (free) describes itself in one line: GitHub issues and pull requests across organizations and repositories in one IDE interface. Its versions are for IDE 2025.1 to 2026.1; Marketplace offers none for 2026.2. Github Tools (free) keeps track of the repositories of your organizations with their pull requests, releases and more; its last version is from April 2021. PR-FreeTracker (free, IDE 2023.2 to 2025.2) is a lighter edition of PR-FlowTracker, with a report and quick filters. GitHub Notifications (free, IDE 2024.3 and later) lists your unread GitHub notifications (the latest 50) with filters; it needs the GitHub CLI. Other free plugins for GitHub pull requests in the IDE:PR Insights (2025.2 and later; optional notifications for pull requests you watch), PR Pilot (2025.2 and later; also Bitbucket Cloud; AI summaries), Smart PR Review (2025.1 and later; also Azure DevOps), Review Lens (2026.1 and later; checks the pull request out in the window you have open; needs the GitHub CLI), Anchor - Remote VCS (in beta, 2025.3 and later; issues, pull requests and branches) and Bidaide (2026.1 and later; through the GitHub CLI, with Android device tools). Upstack (free, 2026.2 and later) is a front end for stacked pull requests through the GitHub CLI.
Prices are the US year-one prices Marketplace listed on October 23, 2026; other countries and later years can differ. Dates are from the same pages (in UTC).
The built-in plugin's own lines, checked in its source
The bundled plugin shows lines of its own rather than GitHub's text, in its merge checks and when GitHub refuses a request or cannot be reached. We read them in the source of IntelliJ IDEA's GitHub plugin (October 30, 2026) and put each with the page on what is behind it on the GitHub side:
- "You are not authorized to merge request into this branch": the target branch has a branch protection rule and you cannot push to it, as with a locked branch or Restrict who can push; the rules of a ruleset, such as Restrict updates, are not what this line reads (GitHub: a locked branch or restricted updates stop the merge).
- "Branch has conflicts that must be resolved", with Resolve, which rebases or merges in your local repository; while GitHub is still working it out, the line reads "Checking branch for conflicts" (GitHub: a pull request has merge conflicts).
- The checks line, from "All required checks have passed" to "Checks failed": a required check that concluded neutral or skipped leaves it at "Checks failed" once nothing is running, although GitHub counts both as passed, and a required check that has not reported on the last commit is not counted, so the line can read passed while GitHub still waits for it (GitHub: a required check stays "Expected — Waiting for status to be reported").
- "Incorrect credentials." with "Request response: Bad credentials." at login, and "User authorization failed" with Log in again… in the Pull Requests tool window (GitHub: 401 "Bad credentials").
- A 403 for a missing permission or for single sign-on also reads "User authorization failed", without GitHub's message ("Resource not accessible by personal access token", "Resource protected by organization SAML enforcement").
- A rate limit shows GitHub's message, but a secondary limit's 403 reads "User authorization failed" (GitHub: "API rate limit exceeded").
- "Can't get repository" with a note on OAuth App access restrictions when GitHub cannot resolve the repository (GitHub: 404 "Not Found").
- "Server is unreachable" or "Invalid authentication data." at login, and
/api/v3added after whatever address is typed (GitHub Enterprise Server not reached). - "No changes between" or "Pull request already exists", checked before a pull request is created with the GraphQL API; a local branch that tracks the base branch itself reads "No changes" (GitHub: why the pull request was not created).
- Checkout Branch fetches the head branch by name, from the fork itself for a pull request from a fork, so a deleted branch reads "Fetch failed"; when GitHub returns no head repository, nothing appears (GitHub: a pull request is not checked out locally).
- A merge GitHub refuses, with a 405 or a 409, shows nothing on screen, only a line in the IDE's log; Merge… stays off unless GitHub's merge state is
CLEAN,HAS_HOOKSorUNSTABLE(GitHub: "Pull Request is not mergeable"). - No Approve on your own pull request, Request Changes and Comment off until something is written, and "Failed to submit review" with GitHub's message (GitHub: why the review was refused).
- The merge methods follow only the repository's three settings, read once when it connects, not a branch's linear history or a ruleset (GitHub: why the merge method was refused).
- After a merge, the timeline reads "BRANCH has been deleted." whenever it cannot offer deletion, even while the branch is still there, and its Restore… only opens the browser (GitHub: the branch is not deleted after merging).
- A draft gets only Post Pull Request, nothing turns a pull request back into a draft, and Post, Close and Reopen are on for the author or Triage and above (GitHub: why draft, ready for review or close was refused).
- The reviewer list holds every team of the organization and, without write permission, the repository's contributors, so it can offer someone GitHub refuses; removals are sent before additions (GitHub: a review request is refused).
- Labels and assignees are sent as the whole list (
PUTfor labels,PATCHfor assignees), which GitHub then sets exactly (GitHub: a label or an assignee is not added). - Resolve and Unresolve work only while GitHub returns
viewerCanResolveorviewerCanUnresolve, and a refused change shows only in the log (GitHub: why the conversation was not resolved). - A reply only while GitHub returns
viewerCanReply, sent to the first comment of the thread, and the text kept when it is refused (GitHub: why the comment or reply was not posted). - A comment on lines only on the lines of the diff's hunks, sent with GraphQL (
addPullRequestReview, oraddPullRequestReviewThreadinto a pending review), not the REST endpoint (GitHub: why a comment on lines was refused). - A suggestion is applied in your local repository, not by GitHub: Apply Locally changes the file, Commit… makes a local commit you push yourself, and both are off on another branch and on a resolved or outdated thread (GitHub: why a suggested change cannot be applied).
- The Viewed mark is GitHub's own
viewerViewedStateand onlyVIEWEDcounts, so a file GitHub unmarked after a push (DISMISSED) is not viewed in the IDE either (GitHub: a pull request file is no longer marked Viewed). - The OUTDATED tag follows GitHub's
isOutdated, and in the diff an outdated thread is placed by following its original line through the pull request's commits (GitHub: why a line comment is outdated, or not on the diff). - Close and Reopen are on for the author or Triage and above, as reported when the IDE connected, and send the REST
PATCHwithstate; a refusal shows only in the log (GitHub: a pull request cannot be closed or reopened). - A request for changes is shown per reviewer ("is waiting for updates"), but the pull request counts as approved once enough reviewers approve, and there is no Dismiss in the IDE (GitHub: changes requested, and dismissing a review).
- The pull request list is a GitHub search in one repository, 50 a page, and it starts on the last filter used or on Assigned to you, so the others are missing until you change the filter (GitHub: why the pull request list is incomplete).
- The changes come from the list of files and from each commit, never from the pull request as a diff, so the 406
too_largedoes not come from the IDE, while the list's limit of 3,000 files still applies (GitHub: the diff of a pull request answered 406, or files are missing). - Review requests in the list is
is:open review-requested:@mein one repository, so requests to your teams are in it; there is nouser-review-requestedfilter, but it can be typed (GitHub: why the review request is not shown). - The checks come from one GraphQL request for the last commit: commit statuses and check runs together, up to 100 check suites with up to 100 check runs each (GitHub: why the checks do not show).
- Rebase is on when GitHub's
canBeRebasedis true, rebase merging is allowed and the account has Write, without the merge state that Merge… and Squash and Merge… need (GitHub: Rebase and merge is not available). - There is no auto-merge in the IDE: Merge… and Squash and Merge… are on only when the pull request can be merged now (or, while it is blocked or behind, for an admin) (GitHub: why auto-merge was refused).
- There is no Update branch in the IDE and no line saying a branch is behind; Resolve shows only for conflicts (GitHub: the Update branch button does not show).
- The IDE neither reads whether a comment is hidden nor hides or unhides one; its comment requests add, edit, delete and react (GitHub: a pull request comment is hidden).
- A new pull request's description starts with the first template with text from GraphQL
pullRequestTemplates, read once per connection, with no choice of template (GitHub: the pull request template does not show). - For a new pull request, the base branches offered are the clone's remote-tracking branches, and whether to push is decided from the clone, without asking GitHub (GitHub: why the branch was not found).
- The changed files are GitHub's REST list of the pull request's files, read to the last page, and each diff compares whole files read from the fetched commits (GitHub: a file diff is not shown in a pull request).
- An image or an SVG in a pull request opens on each side in the IDE's editor for its type, and Markdown and other text files are compared as text (GitHub: a pull request does not show an image or document diff).
- A file whose only change is its line endings shows no changed lines in the IDE's diff, with the notice Contents have differences only in line separators (GitHub: a pull request shows every line of a file changed).
- The IDE reads one author per commit and not GitHub's
authorslist, so Co-authored-by lines stay message text (GitHub: a co-author is not credited for a commit). - The IDE reads neither the code owner rule nor which reviewer is a code owner, only GitHub's
reviewDecision(GitHub: a pull request waits for a code owner's review). - The IDE requests a team review by the team's slug and leaves the members to GitHub, then reads the requests as GitHub holds them (GitHub: a team review request was replaced by team members).
- The IDE does not read a Required reviewers rule; it counts approvals against one number and does not check which team they came from (GitHub: the merge waits for a team's approval).
- The IDE does not read the last-push approval rule or which commit a review was given on, so an earlier approval still counts there unless GitHub dismissed it (GitHub: the most recent push needs an approval from someone else).
- The IDE reads review threads and can resolve them through GitHub, but does not read whether the branch requires it (GitHub: the merge waits for conversations to be resolved).
- The IDE fetches the base branch's
requiresSignaturesbut does not read whether a commit is signed or verified (GitHub: the merge is blocked by unsigned commits). - By default the IDE turns off Force Push for branches matching GitHub's branch protection rules (loaded after a fetch, pattern only), but does not load rulesets (GitHub: a force push is blocked).
- For a branch the remote rejected, the IDE's push notification names only the branches, not GitHub's reason, and Create pull request is offered only after a successful push of a branch other than the default one (GitHub: "GH006: Protected branch update failed" and "GH013: Repository rule violations found").
Other comparisons
- Azure DevOps pull requests in JetBrains IDEs
- Bitbucket pull requests in JetBrains IDEs
- GitLab merge requests in JetBrains IDEs
- Forgejo and Gitea pull requests in JetBrains IDEs
- GitLab pipelines in JetBrains IDEs
- Jenkins builds in JetBrains IDEs
- GitHub Actions runs in JetBrains IDEs
Sources
- The GitHub plugin bundled with IntelliJ IDEA 2024.1.7 and 2025.3, the 2026.3 early-access build (263.7031.23) and Rider 2026.2.3.1, as downloaded by the IntelliJ Platform Gradle Plugin: its English message bundles, read on October 22, 2026; and the IntelliJ IDEA 2026.2 help topics Review incoming GitHub pull requests and Create and merge GitHub pull requests
- JetBrains issue tracker, states on October 23, 2026: the issues linked above
- Plugins: their JetBrains Marketplace pages, linked above (descriptions, change notes, version and compatibility lists, prices and trial lengths as of October 23, 2026), and for Pull Request Inbox for GitHub its own page
- How the list was made: Marketplace searches on October 23, 2026 for 21 terms, among them "github pull request", "github pr", "github review", "github code review", "review requests", "pr review", "pull request review", "pull request inbox", "github enterprise", "github notifications", "pull request", "code review", "reviewer" and "github", with and without an IDE version filter (2024.1, 2024.3, 2025.2 and 2026.2; the broader terms only without a filter and for 2026.2, first 100 results); every result whose name, summary or description mentions GitHub together with pull requests, PRs or code review was looked at, and the ones about pull requests were read. Other plugins may exist that these searches do not return.