Skip to main content

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​

PauseWho canGood forHow to undo
One merge or pull requestAnyone who may use commands: the Developer role in GitLab, or write access to the repository on GitHubA work-in-progress branch, a huge refactor, an emergency fix@gryndel resume
Merge or pull requests into one branchWhoever can merge to that branchA release branch during a freezeChange the file back
One repositoryWorkspace admin; on GitLab also the Maintainer role in the projectA repository being migrated, or one where Gryndel is misbehavingReview processing → Enabled
Every repository in the workspaceWorkspace adminA team-wide freeze, keeping @gryndel commands workingReview processing → Enabled in Organization settings
The whole workspaceWorkspace adminChanging model providers, an incident, a long breakTurn reviews on
Every workspaceGitLab administrators (GitLab only)A server-wide incident or maintenanceTurn Gryndel on

What happens on resume differs between levels. This is the summary; each section has the details.

LevelCommits pushed while pausedOn resume
One merge or pull requestRecorded as skippedOnly the next push is reviewed. Comment @gryndel review to review the current commit now.
One branchRecorded as skippedOnly the next push is reviewed.
One repositoryNot recorded at all: Gryndel no longer listens to the repositoryGryndel 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 skippedNot reviewed automatically. The next push is reviewed, or comment @gryndel review.
Workspace, or every workspaceNot recorded at allGryndel 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.

  1. On the merge or pull request, comment @gryndel pause.
  2. 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.

  1. Open Repositories and click Configure on the repository.
  2. On the Reviews tab, set Review processing to Paused.
  3. 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.
  • @gryndel commands 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.

  1. On Repositories, click Organization settings.
  2. On the Reviews tab, set Review processing to Paused.
  3. 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.
  4. 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.

  1. In the sidebar, under MANAGE, open Workspace.
  2. 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.
  • @gryndel commands 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.

  1. Open Workspace. GitLab administrators see a Gryndel for everyone section.
  2. 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​

SituationSuggested pause
Release freeze on release/* branches, development continues on mainMerge or pull requests into one branch, or nothing at all
Moving a repository to a new GitLab group or GitHub accountOne repository, paused before, resumed after
Switching to a new model providerThe whole workspace while you test the new provider
Gryndel is posting wrong comments everywhere after a model changeThe 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 shutdownThe whole workspace

Check it worked​

LevelCheck
One merge or pull request@gryndel status says automatic reviews are paused.
A repositoryIts Reviews column says Disabled.
The workspaceThe 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.