Pull Request Inbox for Forgejo and Gitea
A free inbox for Forgejo and Gitea pull requests (PRs), on Codeberg, gitea.com and your own Forgejo or Gitea server, in IntelliJ IDEA, PyCharm, WebStorm, Rider and the other JetBrains IDEs: what is waiting for your review, and what changed since you last looked. No AI features, no telemetry.
Get it on JetBrains Marketplace · reading is free, Pro has a 30-day trial
Comparing Forgejo and Gitea pull request plugins for IntelliJ IDEA, PyCharm or Rider? See the options side by side.
The Forgejo Actions and Gitea Actions runs of the same repositories, with their jobs and logs, in the same IDE: our Forgejo and Gitea pipeline plugin.
This plugin is not affiliated with, endorsed, sponsored, or approved by the Forgejo project, Codeberg e.V., or the Gitea project and its owners. Forgejo, Gitea and Codeberg are names of their respective owners.
Review inbox
- PRs waiting for your review, from the repositories you have open, from their owner (a user or an organization) or from everywhere on the server
- Each row shows what is new to you (new, new commits, new activity), approvals and change requests, comments and when it last changed
- A notification when a new review request arrives (the list refreshes every 5 minutes while it is open)
- Multi-repository projects: every Forgejo or Gitea clone in the project is listed, not only the first one
Reviewing
- All changed files in one diff viewer, fetched from the server (nothing to fetch locally); step through them file by file
- Mark files as viewed; a later push that changes a file clears its mark (files it did not touch keep theirs; after a force push the server cannot compare, all marks start over), and files changed since your last visit are flagged
- Line conversations (inline comments) appear in the diff gutter; comment on the selected lines straight from the diff (Gitea has no line ranges, so there the comment goes on the first selected line)
- Open conversations first, resolved ones folded away, and review summaries with their verdicts. Reply to a conversation (Forgejo has no reply API yet, so there the reply is posted as a new comment on the same line). Resolve and reopen on Gitea 1.26 or later; elsewhere, including Forgejo, which has no API for it yet, the plugin offers to open the conversation's page
- Merge checks in plain words: approvals the branch still needs, changes requested, required checks, conflicts, a target branch that moved on; and every commit status, with its link
- Check out the branch, also from a fork
Finishing
- Approve or request changes (with what to change)
- Merge the ways the repository allows (merge commit, rebase, rebase with a merge commit, squash, fast-forward only), with your own commit title, deleting the branch, or, while checks are still running, merge when they succeed
- Update the branch with the target's new commits, mark as ready or as work in progress (the WIP: title prefix), close, or create a pull request (or a WIP one) from your current branch
Free and paid
Free: the review inbox, diffs, viewed marks, conversations, merge checks, commit statuses and checking out the branch. Paid, with a 30-day free trial: approve, request changes, comment, reply, resolve, merge, update the branch, mark as ready, close and create pull requests. Licenses are sold through JetBrains Marketplace: US$1.50 a month or US$15 a year for individuals, US$3 a month or US$30 a year per user for organizations (Marketplace shows the price in your currency).
Buying for a team: an organization license is managed in JetBrains Account, where an administrator assigns it to developers; the on-premises JetBrains License Server can serve it too. Pay by card or PayPal; for a purchase order or a bank transfer, ask for a quote with Get Quote on the plugin's Marketplace pricing page.
Install
Install it from JetBrains Marketplace, or in your IDE open Settings | Plugins | Marketplace and search for Pull Request Inbox for Forgejo and Gitea. Then open a project whose Git remote is on Codeberg or on your own Forgejo or Gitea server (set its address in the plugin settings) and find Forgejo PRs in the right tool window bar.
Works with
- Codeberg (codeberg.org): HTTPS and SSH remotes
- Your own Forgejo or Gitea server: set its address in Settings | Tools | Pull Request Inbox for Forgejo and Gitea; a server that runs below a path works too
- gitea.com, code.forgejo.org and a server whose host name has a part beginning with forgejo or gitea (such as gitea.example.com) are recognised from the remote and read without a token
- The IDE's proxy settings (including proxy authentication) and trusted certificates, for self-signed or company certificates
- Tested against Forgejo 11, 15 and 17 and Gitea 1.25, 1.26 and 28.2 on October 22, 2026: creating, commenting on lines, replying, requesting changes, approving, updating the branch, merging, and merging when the required checks pass. A comment on several lines keeps its range on Forgejo 16 and later; on Gitea and older Forgejo it goes on the first line
- IntelliJ IDEA, PyCharm, WebStorm, Rider and the other JetBrains IDEs 2024.1 or later with Git, and Android Studio Koala (2024.1.1) or later
Access token
Public repositories can be read without a token: pull requests, conversations, checks and diffs. For private repositories and your review inbox, create an access token with the scopes write:repository, write:issue and read:user to approve, comment and merge as well (choose them from the start if you want to try Pro), or read:repository, read:issue and read:user to read only (how to create one on Codeberg; the scopes on Forgejo and Gitea; the plugin settings have a link to your server's token page). Enter it in Settings | Tools | Pull Request Inbox for Forgejo and Gitea: one token for Codeberg and one for your own server, each kept in the IDE's password safe and sent only to its own server. If the server answers "token does not have at least one of required scope(s)", see which permission to add; if it answers 401 ("token is required", "invalid username, password or token", "user does not exist [uid: 0, name: ]"), see what the 401 means; if it answers 404 ("The target couldn't be found.", "not found"), see missing, private or renamed; if a list answers 400 "user does not exist [uid: 0, name: …]", see why the server refused the search; if the changed files of a pull request come 50 at a time or changed_files does not match them, see how the server lists them; if a merge is refused (405 "Please try again later", 409 "head out of date"), see why the server refused it; if a merge when the checks succeed is refused or never happens (409 "already scheduled", a 500 with no message), see what the scheduled merge waits for; if a review is refused (422 "approve your own pull is not allowed", "requires a body"), see why the server refused the review; if updating the branch is refused (403 with no message, 409 "merge failed because of conflict"), see why the server refused the update; if creating a pull request answers 409 "pull request already exists for these targets", see why the server did not create it; if a comment answers 403 "You cannot change a locked issue." or "user is blocked", see why the comment was refused; if the required checks keep a merge waiting ("Some required checks are missing.", "Some required checks were not successful."), see how the server reads the required checks.
No AI features, no cloud of ours
The plugin talks only to your Forgejo or Gitea servers: codeberg.org, the server you set and, without a token, gitea.com, code.forgejo.org or a server your Git remote points at whose host name has a part beginning with forgejo or gitea. Your code and comments are not sent to any AI service or to any server of ours, and there is no telemetry.
日本語
IDE の言語が日本語のとき、プラグインの画面は日本語で表示されます(プルリクエストの題やコメントなど、サーバーから来る文はそのまま)。お問い合わせは日本語でも受け付けます。日本語の説明