Code Reviewer + CodeRabbit Collector
Enforce Code Reviewer using data collected by CodeRabbit Collector. Automatically check devex build and ci standards on every PR.
How CodeRabbit Collector Powers This Guardrail
The CodeRabbit Collector gathers metadata from your systems. This data flows into Lunar's Component JSON, where the Code Reviewer guardrail evaluates it against your standards.
When enabled, this check runs automatically on every PR and in AI coding workflows, providing real-time enforcement with actionable feedback.
Quick Start Configuration
Add both the collector and policy to your lunar-config.yml to enable this guardrail.
# Step 1: Enable the CodeRabbit Collector
collectors:
- uses: github://earthly/lunar-lib/collectors/coderabbit@v1.0.5
# with: ...
# Step 2: Enable the AI Guardrails
policies:
- uses: github://earthly/lunar-lib/policies/ai@v1.0.5
include: [code-reviewer]
# with: ...
What CodeRabbit Collector Collects
This collector gathers the following data that the Code Reviewer guardrail evaluates.
code-reviewer
Detects CodeRabbit check-runs on pull requests by querying the GitHub check-runs API for the coderabbitai app. Waits for scan completion and writes a normalized entry to ai.code_reviewers[].
config
Detects CodeRabbit configuration files (.coderabbit.yaml or .coderabbit.yml) in the repository root. Records config file presence and path.
Example Data Flow
Here's an example of the data that CodeRabbit Collector writes to the Component JSON, which Code Reviewer then evaluates.
{
"ai": {
"code_reviewers": [
{
"tool": "coderabbit",
"check_name": "coderabbitai",
"detected": true,
"last_seen": "2024-01-15T10:30:00Z"
}
],
"native": {
"coderabbit": {
"config_file": ".coderabbit.yaml",
"config_exists": true
}
}
}
}
Configuration Options
AI Guardrails Inputs
| Input | Required | Default | Description |
|---|---|---|---|
canonical_filename |
Optional |
AGENTS.md
|
The canonical (vendor-neutral) instruction filename |
min_lines |
Optional |
10
|
Minimum number of lines for the root instruction file (0 to disable) |
max_lines |
Optional |
300
|
Maximum number of lines for the root instruction file (0 to disable) |
max_total_bytes |
Optional |
32768
|
Maximum combined bytes across all instruction files (0 to disable) |
required_sections |
Optional |
Project Overview,Build Commands
|
Comma-separated required section heading substrings (case-insensitive) |
min_annotation_percentage |
Optional |
0
|
Minimum percentage of commits that should have AI annotations (0 = awareness mode) |
Ready to Automate Your Standards?
See how Lunar can turn your AGENTS.md, engineering wiki, compliance docs, or postmortem action items into automated guardrails with our 100+ built-in guardrails.