Review
GitLab merge requests and GitHub pull requests inside the app, with commits, changes, discussions, approvals and pipelines.
Review is the view of a group's merge requests on its code host, with their commits, changes, discussions and pipelines. You comment, approve and merge there. GitHub calls a merge request a pull request, and the app uses that name for groups on GitHub.
When Review shows
Review appears only when the group's origin remote points to a code host you are signed in to. A remote on the GitLab host set in Settings is treated as GitLab; a remote on github.com is treated as GitHub. You sign in to each code host separately.
Sign in
Open Settings › Integrations and sign in to GitHub. Signing in uses the device flow and needs no field: the app opens github.com/login/device and puts the code on the clipboard.
- Only github.com is supported, not GitHub Enterprise Server.
- The scope is
repo. - The token does not expire, and is kept in the system keyring.
Without a system keyring, as under WSL without Secret Service, logins go in the config folder instead.
What you can do
| Action | GitLab | GitHub |
|---|---|---|
| List merge requests or pull requests | Yes | Yes |
| Read commits and changes | Yes | Yes |
| Comment and reply | Yes | Yes |
| Resolve a thread | Yes, a discussion | Yes, through GraphQL |
| Approve | Yes | Yes, a review with the APPROVE event |
| Take an approval back | Yes, revoke | Yes, by dismissing the review |
| Merge | Yes | Yes |
| Pipelines and Actions | Read only | Read only |
Notes on GitHub
- The app does not read branch protection rules, so it shows how many approvals a pull request has, not how many it still needs.
- Dismissing a review is only allowed to people with write access.
- Actions runs have no duration in the list.
- The changes of a pull request are shown against the merge base GitHub's compare API returns.
Notes on GitLab
- Each instance needs its own OAuth application; GitLab offers no way around that.
- When the repository is cloned locally, branch contents come from local git; otherwise they come from the API.
For how both code hosts share one view, see Crates.