-
Notifications
You must be signed in to change notification settings - Fork 0
Recipes
Worked configurations for common setups. Everything here composes — mix and match. The Configuration Reference has the full key list.
gitlab:
base_url: https://gitlab.example.com
groups: [platform-team]
review:
agents: [bug, security, design] # trimmed for cost and latency
max_budget_usd: 3 # total cap per review
instructions: |
We prefer table-driven tests. Flag missing OpenAPI updates when
handlers change.
publish:
mode: draft # curate, then publish in one actiongitlab:
instances:
- name: work
base_url: https://gitlab.example.com
token_env: WORK_GITLAB_TOKEN
- name: personal
base_url: https://gitlab.com
# falls back to GITLAB_REVIEWER_GITLAB_TOKEN
default_instance: workgitlab-reviewer --instance personal switches; with no
default_instance, the TUI opens a picker and the GUI serves each
instance under its own URL path.
review:
provider: bedrock
model: eu.anthropic.claude-sonnet-4-6 # Bedrock model/inference-profile ID
bedrock:
region: eu-west-2 # or AWS_REGION
profile: my-profile # or AWS_PROFILEThis sets CLAUDE_CODE_USE_BEDROCK=1 plus your AWS region/profile on the
claude subprocess and passes through ambient AWS credentials (access
keys, session token, config/shared-credentials paths,
AWS_BEARER_TOKEN_BEDROCK). Anything extra your setup needs — e.g. a
corporate proxy — can be forwarded with review.env:
review:
env:
HTTPS_PROXY: http://proxy.corp:3128gitlab-reviewer models lists common inference-profile IDs once
review.provider is bedrock; set review.models if your account uses
different regions or profile names.
Verify with a normal review run — the progress log shows the model the session started with.
Any review.*, checkout.*, or publish.* setting can be overridden per
project:
review:
agents: [bug, security] # default everywhere
projects:
mygroup/payments:
review:
agents: [bug, security, performance, design]
instructions: "This service is latency-critical; flag every allocation in the hot path."
max_budget_usd: 5
publish:
auto_comment: true # strong findings publish themselves
auto_min_severity: critical
mygroup/docs-site:
review:
agents: [docs, style]projects:
mygroup/monorepo:
review:
max_diff_kb: 512 # bigger chunks before splitting passes
exclude: # note: replaces the default list
- "**/go.sum"
- "**/package-lock.json"
- "vendor/**"
- "node_modules/**"
- "**/*.pb.go"
- "**/*_generated.go"
- "third_party/**"
- "**/testdata/**"Your own review focus, applied everywhere
(~/.config/gitlab-reviewer/agents/api-compat.md):
---
description: Guards public API compatibility
categories: [design, bug]
---
You are reviewing for public API compatibility. Flag removed or renamed
exported symbols, changed function signatures, narrowed interfaces, and
HTTP/JSON contract changes without a version bump or deprecation note.A team agent shipped in the repo (.gitlab-reviewer/agents/migrations.md)
— committed, so every teammate's reviews use it:
---
description: Reviews schema migrations for lock hazards
categories: [bug, performance]
severity: major
---
You are reviewing database schema migrations. Focus on long-running
locks, missing indexes for new query patterns, and irreversible
migrations without a documented rollback.Repos that already keep review guidance in Claude Code's
.claude/agents/ work as-is, and so do your personal subagents in
~/.claude/agents/. See Review Agents for precedence
and discovery rules.
If your team maintains Claude Code subagents for specific tools (Terraform, Ansible, CI conventions), let the reviewer delegate to them — and cap the extra token spend:
projects:
mygroup/infra:
review:
use_agents: true
max_budget_usd: 5Teams that keep Claude conventions untracked (via .git/info/exclude)
until they stabilise can still have reviews follow them — switch to a
local-clone checkout mode and the default overlay globs do the rest:
checkout:
mode: root
root: ~/git
clone_missing: trueUntracked **/CLAUDE.md, **/CLAUDE.local.md, and .claude/** files are
copied into the review worktree; committed files are never overridden. See
Checkout Modes.
Have the reviewer sanity-check commit messages and the MR description against the diff — the metadata is injected by the tool, so the sandbox stays closed (Security Model):
review:
# keep the 'docs' agent selected so hygiene findings have a home
agents: [bug, security, performance, docs, style, design]
instructions: |
Also run these MR-hygiene checks, reported as 'docs' findings
(minor/info severity, never blocking), each anchored on a
representative changed line:
- Flag any commit message that describes something not in the diff or
omits a significant change that is in the diff.
- Flag the description if it claims changes not in the diff, omits a
significant change, or leaves the MR template's placeholder comments
(e.g. `<!-- ... -->`) unfilled.Rebase status needs none of this — it is always computed and shown.
publish:
template: "{{.body}}" # no severity/category badge
review:
instructions: |
Write comment bodies in first person, as a colleague would phrase
them. Ask questions rather than issuing verdicts when uncertain.The IAM-roles example — the review can consult AWS documentation, and only in this project (MCP Servers has the security notes):
projects:
mygroup/iam-roles:
review:
mcp_servers:
aws-documentation:
command: uvx
args: [awslabs.aws-documentation-mcp-server@latest]
env:
AWS_DOCUMENTATION_PARTITION: aws
tools: [search_documentation, read_documentation, recommend]