Pause reviews
Sometimes you want Gryndel to stop for a while: during a code freeze, while you move repositories or change model providers, or during an incident when Gryndel itself is misbehaving. You can pause anything from one merge request (GitLab) or pull request (GitHub) up to every workspace on the server. This guide helps you pick the smallest pause that does the job, and explains exactly what happens to the commits pushed while Gryndel was paused.
Do you need to pause at all?
Gryndel only comments and sets a commit status. It never merges or deploys anything, so a code freeze doesn't by itself require pausing it. Pause when you want to:
- avoid model costs or comments during a period nobody will act on them;
- stop Gryndel blocking merges (a failed commit status) during an emergency fix;
- stop Gryndel while something it depends on is changing or broken;
- stop it committing fixes, if a repository uses Suggest and apply fixes. For that alone, setting Suggested fixes to Suggest fixes is enough.
Choose the right level
| Pause | Who can | Good for | How to undo |
|---|---|---|---|
| One merge or pull request | Anyone who may use commands: the Developer role in GitLab, or write access to the repository on GitHub | A work-in-progress branch, a huge refactor, an emergency fix | @gryndel resume |
| Merge or pull requests into one branch | Whoever can merge to that branch | A release branch during a freeze | Change the file back |
| One repository | Workspace admin; on GitLab also the Maintainer role in the project | A repository being migrated, or one where Gryndel is misbehaving | Review processing → Enabled |
| Every repository in the workspace | Workspace admin | A team-wide freeze, keeping @gryndel commands working | Review processing → Enabled in Organization settings |
| The whole workspace | Workspace admin | Changing model providers, an incident, a long break | Turn reviews on |
| Every workspace | GitLab administrators (GitLab only) | A server-wide incident or maintenance | Turn Gryndel on |
What happens on resume differs between levels. This is the summary; each section has the details.
| Level | Commits pushed while paused | On resume |
|---|---|---|
| One merge or pull request | Recorded as skipped | Only the next push is reviewed. Comment @gryndel review to review the current commit now. |
| One branch | Recorded as skipped | Only the next push is reviewed. |
| One repository | Not recorded at all: Gryndel no longer listens to the repository | Gryndel reviews the latest commit of each open merge or pull request that it hasn't reviewed yet, shortly after you save. |
| Every repository (organization) | Recorded as skipped | Not reviewed automatically. The next push is reviewed, or comment @gryndel review. |
| Workspace, or every workspace | Not recorded at all | Gryndel reviews the latest commit of each open merge or pull request that hasn't been reviewed yet, shortly after you turn it back on. |
In every case only the latest commit of a merge or pull request is reviewed, never each commit that was pushed during the pause.
One merge or pull request
Who: on GitLab, anyone with the Developer role or higher on the project; on GitHub, anyone with write access to the repository.
- On the merge or pull request, comment
@gryndel pause. - Gryndel replies that automatic reviews of this merge or pull request are paused.
While it's paused, pushes aren't reviewed and show as skipped on
Pull requests. @gryndel review still runs a review when you ask for one,
and other commands work as usual. To stop a review that's already running, comment
@gryndel cancel.
To resume: comment @gryndel resume. Gryndel replies that the next push is reviewed. To
review the current commit now, also comment @gryndel review.
Merge or pull requests into one branch
When: you want to stop reviews of merge or pull requests into a release branch, without touching other branches.
Gryndel reads .gryndel.yaml from the branch a merge or pull request will merge into. Merge this
change into the release branch:
reviews:
enabled: false
Merge or pull requests into that branch are then skipped, including reviews requested with
@gryndel review. To undo it, remove the setting from the branch. Commits skipped meanwhile
aren't reviewed until the next push or @gryndel review.
This doesn't work if Review processing is locked in Organization settings. The Effective configuration preview in Gryndel reads .gryndel.yaml from the
repository's default branch, so it doesn't show a setting that is only on the release branch.
One repository
Who: a workspace admin. On GitLab you also need the Maintainer role on the project, because pausing changes Gryndel's webhook using your own GitLab access, and GitLab may first ask you to allow Gryndel to make changes as you. On GitHub nothing else is needed: Gryndel hears about every repository through its GitHub App, so pausing only changes Gryndel's own records.
- Open Repositories and click Configure on the repository.
- On the Reviews tab, set Review processing to Paused.
- Click Save settings.
Ticking the repository and clicking Disable selected does the same thing. See Pause or turn off.
What happens:
- Gryndel stops listening to the repository's merge or pull requests. On GitLab it turns off its webhook on the project; on GitHub it ignores the App's events for that repository. Commits pushed meanwhile don't appear on Pull requests at all.
@gryndelcommands on the repository's merge or pull requests aren't answered, because Gryndel ignores the comments too.- A review that's already running is marked
skipped, and stops before posting any findings it hasn't posted yet. - Failed reviews can't be replayed while the repository is paused.
- The repository list shows Disabled in its Reviews column.
To resume: set Review processing back to Enabled and click Save settings (or use Enable selected). On GitLab, Gryndel turns its webhook back on. Shortly afterwards it reviews the latest commit of every open merge or pull request that it hasn't reviewed yet. Commits that were pushed and then replaced during the pause aren't reviewed.
If saving fails, see If turning reviews on or off fails.
Every repository in the workspace
Who: a workspace admin.
When: you want all reviews to stop, but people should still be able to use @gryndel
commands, such as explain on existing findings. Gryndel keeps listening to the
repositories.
- On Repositories, click Organization settings.
- On the Reviews tab, set Review processing to Paused.
- Tick 🔒 Lock next to it. Don't skip this. Turning a repository on with
Enable selected saves Enabled in that repository's own settings, and a repository's
own setting (or its
.gryndel.yaml) overrides an unlocked organization value. Without the lock, most repositories keep reviewing. - Click Save settings.
What happens: Gryndel still receives events, but new commits are recorded as skipped.
Commands are answered as usual, except that @gryndel review doesn't start a review: the
request is recorded as skipped.
To resume: set Review processing back to Enabled, untick the lock if you no longer
need it, and save. Commits skipped during the pause are not reviewed automatically. They're
reviewed at the next push, or when someone comments @gryndel review on the merge or pull
request. If
you need everything caught up on its own afterwards, turn the workspace
off instead.
The whole workspace
Who: a workspace admin.
- In the sidebar, under MANAGE, open Workspace.
- Under Reviews in this workspace, click Turn reviews off.
What happens:
- Gryndel stops receiving events for the workspace. Nothing is stored, so commits pushed meanwhile don't appear on Pull requests at all.
@gryndelcommands aren't answered. Instead Gryndel replies that it's turned off and to contact an administrator of the workspace.- The first time anything happens on an open merge or pull request, Gryndel posts one comment there saying it's turned off. It doesn't repeat it on every push.
- Reviews already waiting in the queue are
skipped. Reviews already running finish. - Every page in Gryndel shows a banner saying reviews are turned off, with a link to manage it.
To resume: click Turn reviews on. Shortly afterwards, Gryndel reviews the latest commit of every open merge or pull request in enabled repositories that it hasn't reviewed yet, including ones whose reviews were skipped when you turned it off.
Every workspace
Who: a GitLab administrator (an administrator of the GitLab server itself). This switch exists only on GitLab: people signed in with GitHub don't see it.
- Open Workspace. GitLab administrators see a Gryndel for everyone section.
- Click Turn Gryndel off for everyone, then confirm with Turn Gryndel off.
Every workspace, GitHub ones included, behaves as if its reviews were turned off, and merge and pull requests are told to contact the Gryndel administrator. Other people see the section only while Gryndel is off.
To resume: click Turn Gryndel on. Each workspace that wasn't turned off on its own catches up as described in The whole workspace.
Recipes
| Situation | Suggested pause |
|---|---|
Release freeze on release/* branches, development continues on main | Merge or pull requests into one branch, or nothing at all |
| Moving a repository to a new GitLab group or GitHub account | One repository, paused before, resumed after |
| Switching to a new model provider | The whole workspace while you test the new provider |
| Gryndel is posting wrong comments everywhere after a model change | The whole workspace, then fix the model in Model settings |
| Production incident, hotfix needs to merge now | @gryndel pause on the hotfix merge or pull request. If its status already failed, someone allowed to merge past it (a GitLab Maintainer, or on GitHub someone allowed to bypass branch protection) can merge anyway, or dismiss the finding and comment @gryndel review. |
| Holiday shutdown | The whole workspace |
Check it worked
| Level | Check |
|---|---|
| One merge or pull request | @gryndel status says automatic reviews are paused. |
| A repository | Its Reviews column says Disabled. |
| The workspace | The Reviews in this workspace badge says Off, and every page shows the banner. |
After resuming, open Pull requests and check that new reviews are
queued or running. If nothing appears, see
A review never starts.