Revue
DocumentationForgejo, Codeberg, Gitea

Forgejo, Codeberg and Gitea

Review pull requests on Codeberg, your own Forgejo server or a Gitea server, on as many servers as you like.

Forgejo and Gitea share the same API, so Revue works with both: Codeberg, a company server, or one you run yourself. Each server is separate, and you can connect accounts on several of them.

Sign in#

  1. On the welcome screen click Forgejo, or in Settings → Accounts click Add Forgejo account.
  2. Type the server's address (it starts as https://codeberg.org). codeberg.org or git.example.com works too.
  3. Click Sign in with browser. A tab opens on that server.
  4. Sign in there if it asks, then click Authorize Application.
  5. Come back to Revue. It connects by itself.

For the browser sign-in, the server needs an OAuth application for Revue. If Revue doesn't know one for your server yet, the form shows a box To sign in with the browser, set … up for Revue once. Follow the guide below, or use a token instead.

Guide: Set up a Forgejo server for OAuth sign-in#

You do this once per server (and per person, unless an admin makes one application for everyone). It works on Forgejo and Gitea alike.

  1. In Revue, type the server's address in the Forgejo form.
  2. Click Open … applications. The server's Settings → Applications page opens in your browser.
  3. Find Manage OAuth2 applications.
  4. Name the application Revue.
  5. Untick Confidential client. Revue is a desktop app, so it's a public client and keeps no secret.
  6. As the redirect URI, paste http://127.0.0.1:47392/callback (the Copy button in Revue copies it).
  7. Click Create application on the server.
  8. Copy the Client ID it shows, and paste it into the field in Revue (OAuth app client ID on this server).
  9. Click Sign in with browser.

Revue keeps the client ID (in your Revue account, if you use one), so signing in to that server again, on any of your computers or in the web account, needs no setup. To use the same application in the web account, add its redirect address (shown there) on another line of the application's redirect URIs.

Advanced: what the browser sign-in asks for
  • Revue asks for the scopes read:user, write:repository, write:issue and read:notification. Older servers that don't know scopes grant the account's full access.
  • It uses PKCE, so no client secret is needed.
  • The access token lasts a few hours. Revue renews it by itself with the refresh token, which works once only (see Accounts and signing in).
  • If the client ID field is empty and Revue knows no app for the server, it says: First set up … for Revue (the steps above), then paste the Client ID it shows.

Guide: Sign in with an access token#

  1. Type the server's address.

  2. Click Advanced: use a token instead.

  3. Click Create token. The server's Settings → Applications page opens.

  4. Generate a new token with these permissions, and copy it:

    PermissionWhat Revue uses it for
    read:userWho you are
    write:repositoryRead code and pull requests, post reviews
    write:issueFind your pull requests, comment on them
    read:notificationDesktop notifications of review requests, approvals and comments (see Settings → Notifications)
  5. Paste it into Forgejo access token and click Connect Forgejo.

If the server says no, Revue explains: … didn't accept this token. Check it was created on … (the server above) and pasted whole.

Several servers#

Every Forgejo account belongs to one server. Add one account per server: Codeberg and your company's server, say. Settings → Accounts shows each account's server under its name, and pull request links open with an account on their own server.

On the Repositories page, each Forgejo repository is tagged with its server (or grouped under it). See Repositories and branches.

What's different on Forgejo#

Most of Revue works the same as on GitHub. Some things work differently, because of what Forgejo's API offers:

  • Comments on a range of lines are posted on its last line: Forgejo comments sit on one line.
  • File comments (not on a line) go into the review's summary.
  • A reply is posted as a one-comment review on the thread's line, the way Forgejo's website does it.
  • Resolving conversations: the API can't, so Revue only shows whether they're resolved. Resolve them on the website.
  • Viewed marks on files stay in Revue.
  • Draft pull requests are marked by the title: it starts with WIP: ([WIP] counts too). Revue adds or removes WIP: for you when you make a pull request a draft or ready.
  • Reactions work on the description and on comments, not on review summaries.
  • Reviews you started on the website but didn't submit aren't shown.
  • Commit ranges (since your review, a single commit) are diffed by Revue from each file's two versions, since the API doesn't give patches for them.
  • No check logs: commit statuses show, but logs can't be opened in Revue.
Advanced: what the pull request list covers
  • To review and Mine come from searches across the server: pull requests you're asked to review, wrote, reviewed, are mentioned in or assigned to.
  • All in my repos lists the latest open pull requests of the 15 most active repositories those are in. Searching the list reaches up to 30.
  • Ignored repositories (see Settings reference) aren't asked.
  • In a repository's Pull requests list, Forgejo can't filter to the ones waiting for your review.
  • A commit range touching more than 300 files shows the first 300.
  • https://codeberg.org/owner/repo/pulls/12
  • the same on any other server: https://git.example.com/owner/repo/pulls/12, http://localhost:3000/owner/repo/pulls/12

Any address on a server other than github.com and bitbucket.org with /pulls/<number> is read as a Forgejo pull request. To open it, you need an account on that server. See Links and opening from anywhere.

Gitea#

Gitea servers work like Forgejo ones: the same sign-in (browser or token), the same permissions and the same features. Pick Forgejo on the sign-in screen and type the Gitea server's address.