Claude-code-plugins-plus coderabbit-ci-integration
install
source · Clone the upstream repo
git clone https://github.com/jeremylongshore/claude-code-plugins-plus-skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/jeremylongshore/claude-code-plugins-plus-skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/plugins/saas-packs/coderabbit-pack/skills/coderabbit-ci-integration" ~/.claude/skills/jeremylongshore-claude-code-plugins-plus-coderabbit-ci-integration && rm -rf "$T"
manifest:
plugins/saas-packs/coderabbit-pack/skills/coderabbit-ci-integration/SKILL.mdsource content
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
committed to repository root.coderabbit.yaml- 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/slack-github-action@v1.27.1 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 | with aggressive profile | Switch to or set to |
| CI times out waiting for review | Large PR or CodeRabbit backlog | Reviews take 2-15 min depending on PR size |
| Draft PRs blocked | in config | Set to skip draft PR reviews |
| Status check stays pending | CodeRabbit outage | Check status.coderabbit.ai; admin merge if needed |
Resources
Next Steps
For deployment and multi-repo rollout, see
coderabbit-deploy-integration.