coderabbit-ci-integration
A guide to integrating CodeRabbit as a mandatory CI status check for GitHub pull request workflows.
Install
mkdir -p .claude/skills/coderabbit-ci-integration && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/3098" && unzip -o skill.zip -d .claude/skills/coderabbit-ci-integration && rm skill.zipInstalls to .claude/skills/coderabbit-ci-integration
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Configure CodeRabbit as a CI gate with GitHub Actions, branch protection,Key capabilities
- →Enable CodeRabbit as a required status check in GitHub.
- →Configure CodeRabbit review approval behavior in .coderabbit.yaml.
- →Create a GitHub Actions workflow to gate merges on CodeRabbit review status.
- →Add a PR size check workflow to warn about large pull requests.
- →Notify via Slack when CodeRabbit requests changes on a pull request.
- →Programmatically enforce CodeRabbit as a required check using the GitHub API.
How it works
This skill integrates CodeRabbit into a CI/CD pipeline by configuring GitHub branch protection rules and creating GitHub Actions workflows. It enforces CodeRabbit review status as a merge gate and provides mechanisms for notifications and PR size checks.
Inputs & outputs
When to use coderabbit-ci-integration
- →Require CodeRabbit review on all PRs
- →Set up branch protection for merge gates
- →Configure CI pipeline status checks
- →Enforce automated code review quality
About this skill
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.');
}
Step 4: Add PR Size Check with CodeRabbit
# .github/workflows/pr-size-check.yml
name: PR Size Check
on:
pull_request:
types: [opened, synchronize]
jobs:
check-size:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- name: Check PR size
run: |
CHANGES=$(git diff --stat origin/${{ github.base_ref }}...HEAD | tail -1)
LINES=$(echo "$CHANGES" | grep -oP '\d+ insertion' | grep -oP '\d+' || echo 0)
DELETIONS=$(echo "$CHANGES" | grep -oP '\d+ deletion' | grep -oP '\d+' || echo 0)
TOTAL=$((LINES + DELETIONS))
echo "Total lines changed: $TOTAL"
if [ "$TOTAL" -gt 1000 ]; then
echo "::warning::PR has $TOTAL lines changed. CodeRabbit works best with PRs under 500 lines."
echo "Consider splitting into smaller PRs for better review quality."
fi
Step 5: Notify on CodeRabbit Findings
# .github/workflows/coderabbit-notify.yml
name: CodeRabbit Notification
on:
pull_request_review:
types: [submitted]
jobs:
notify:
if: >
github.event.review.user.login == 'coderabbitai[bot]' &&
github.event.review.state == 'changes_requested'
runs-on: ubuntu-latest
steps:
- name: Post Slack notification
uses: slackapi/[email protected]
with:
payload: |
{
"text": "CodeRabbit found issues in PR #${{ github.event.pull_request.number }}: ${{ github.event.pull_request.title }}",
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": "*CodeRabbit Review*: Changes requested on <${{ github.event.pull_request.html_url }}|PR #${{ github.event.pull_request.number }}>"
}
}
]
}
env:
SLACK_WEBHOOK_URL: ${{ secrets.SLACK_WEBHOOK_URL }}
Step 6: Enforce CodeRabbit via Branch Protection API
set -euo pipefail
# Programmatically set CodeRabbit as a required check
OWNER="your-org"
REPO="your-repo"
BRANCH="main"
gh api "repos/$OWNER/$REPO/branches/$BRANCH/protection" \
--method PUT \
--field 'required_status_checks={"strict":true,"contexts":["coderabbitai"]}' \
--field 'required_pull_request_reviews={"required_approving_review_count":1}' \
--field 'enforce_admins=true' \
--field 'restrictions=null'
echo "Branch protection updated: CodeRabbit review required for merge"
Output
- CodeRabbit configured as a required status check on protected branches
- GitHub Actions workflow that gates merges on CodeRabbit approval
- PR size warnings to improve review quality
- Slack notifications for CodeRabbit findings
- Branch protection enforced via API
Error Handling
| Issue | Cause | Solution |
|---|---|---|
| "coderabbitai" not in status checks list | App not installed or no PRs reviewed yet | Install App, create a test PR, then configure |
| Review blocks all PRs | request_changes_workflow: true with aggressive profile | Switch to chill or set to false |
| CI times out waiting for review | Large PR or CodeRabbit backlog | Reviews take 2-15 min depending on PR size |
| Draft PRs blocked | drafts: true in config | Set drafts: false to skip draft PR reviews |
| Status check stays pending | CodeRabbit outage | Check status.coderabbit.ai; admin merge if needed |
Resources
- CodeRabbit Configuration Reference
- GitHub Branch Protection
- GitHub Actions: Pull Request Events
Next Steps
For deployment and multi-repo rollout, see coderabbit-deploy-integration.
When not to use it
- →When CodeRabbit is not installed on the repository.
- →When branch protection is not enabled on the GitHub repository.
- →When a .coderabbit.yaml file is not committed to the repository root.
Prerequisites
Limitations
- →Reviews take 2-15 minutes depending on PR size.
- →CodeRabbit may block all PRs if configured with an aggressive profile and request_changes_workflow: true.
- →Status checks may stay pending during a CodeRabbit outage.
How it compares
This skill automates the setup of CodeRabbit as a required merge gate and integrates it with GitHub Actions, unlike manual configuration which requires individual rule creation and workflow scripting.
Compared to similar skills
coderabbit-ci-integration side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| coderabbit-ci-integration (this skill) | 1 | 27d | Review | Intermediate |
| shellcheck-configuration | 9 | 2mo | No flags | Intermediate |
| wolf-scripts-core | 5 | 9mo | Review | Intermediate |
| final-release-review | 5 | 4mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by jeremylongshore
View all by jeremylongshore →You might also like
shellcheck-configuration
wshobson
Master ShellCheck static analysis configuration and usage for shell script quality. Use when setting up linting infrastructure, fixing code issues, or ensuring script portability.
wolf-scripts-core
Nice-Wolf-Studio
Core automation scripts for archetype selection, evidence validation, quality scoring, and safe bash execution
final-release-review
openai
Perform a release-readiness review by locating the previous release tag from remote tags and auditing the diff (e.g., v1.2.3...<commit>) for breaking changes, regressions, improvement opportunities, and risks before releasing openai-agents-python.
fix
Use when you have lint errors, formatting issues, or before committing code to ensure it passes CI.
verify
Use when you want to validate changes before committing, or when you need to check all React contribution requirements.
bash-defensive-patterns
wshobson
Master defensive Bash programming techniques for production-grade scripts. Use when writing robust shell scripts, CI/CD pipelines, or system utilities requiring fault tolerance and safety.