SKILL.md
CodeRabbit CI Integration
Overview
Integrate CodeRabbit into your CI/CD pipeline as a merge gate. CodeRabbit posts a GitHub Check on each PR, and you can require this check to pass before merging. This skill covers branch protection rules, GitHub Actions workflows that react to CodeRabbit reviews, and strategies for enforcing review quality in CI.
Prerequisites
- CodeRabbit GitHub App installed on your repository
- GitHub repository with branch protection enabled
.coderabbit.yamlcommitted to repository root- GitHub Actions enabled on the repository
Instructions
Step 1: Enable CodeRabbit as a Required Status Check
1. Go to GitHub repo > Settings > Branches > Branch protection rules
2. Click "Add rule" (or edit existing rule for `main`)
3. Enable "Require status checks to pass before merging"
4. Search for "coderabbitai" in the status checks list
5. Select it as a required check
6. Save changes
Result: PRs cannot be merged until CodeRabbit completes its review.
Step 2: Configure Review Approval Behavior
# .coderabbit.yaml - Control when CodeRabbit blocks merge
reviews:
request_changes_workflow: true # CodeRabbit marks review as "Changes Requested" for issues
# When true: PRs with issues show as "Changes Requested" (blocks merge if reviews required)
# When false: CodeRabbit only posts "Comment" reviews (never blocks merge)
profile: "assertive" # Controls comment volume
# chill: fewer comments, only critical issues
# assertive: balanced, blocks on significant issues
# nitpicky: detailed comments, blocks more frequently
auto_review:
enabled: true
drafts: false # Don't run CI-blocking reviews on drafts
base_branches:
- main
- develop
- "release/*"
ignore_title_keywords:
- "WIP"
- "DO NOT MERGE"
Step 3: Create a Review Gate Workflow
# .github/workflows/coderabbit-gate.yml
name: CodeRabbit Review Gate
on:
pull_request_review:
types: [submitted]
jobs:
check-review:
# Only run when CodeRabbit submits a review
if: github.event.review.user.login == 'coderabbitai[bot]'
runs-on: ubuntu-latest
steps:
- name: Evaluate CodeRabbit review
uses: actions/github-script@v7
with:
script: |
const reviews = await github.rest.pulls.listReviews({
owner: context.repo.owner,
repo: context.repo.repo,
pull_number: context.issue.number,
});
const crReview = reviews.data
.filter(r => r.user.login === 'coderabbitai[bot]')
.pop();
if (!crReview) {
core.info('No CodeRabbit review found yet.');
return;
}
core.info(`CodeRabbit review state: ${crReview.state}`);
if (crReview.state === 'CHANGES_REQUESTED') {
core.setFailed('CodeRabbit requested changes. Address review feedback before merging.');
}
