CO

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.zip

Installs 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,
73 charsno explicit “when” trigger
Intermediate

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

You give it
GitHub repository events, CodeRabbit review status, pull request details
You get back
Configured branch protection rules, GitHub Actions workflows, and notifications

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.yaml committed 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

IssueCauseSolution
"coderabbitai" not in status checks listApp not installed or no PRs reviewed yetInstall App, create a test PR, then configure
Review blocks all PRsrequest_changes_workflow: true with aggressive profileSwitch to chill or set to false
CI times out waiting for reviewLarge PR or CodeRabbit backlogReviews take 2-15 min depending on PR size
Draft PRs blockeddrafts: true in configSet drafts: false to skip draft PR reviews
Status check stays pendingCodeRabbit outageCheck status.coderabbit.ai; admin merge if needed

Resources

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

CodeRabbit GitHub App installed on your repositoryGitHub repository with branch protection enabled.coderabbit.yaml committed to repository rootGitHub Actions enabled on the repository

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.

SkillInstallsUpdatedSafetyDifficulty
coderabbit-ci-integration (this skill)127dReviewIntermediate
shellcheck-configuration92moNo flagsIntermediate
wolf-scripts-core59moReviewIntermediate
final-release-review54moReviewIntermediate

Try saying

Example prompts that trigger this skill in your AI assistant.

More by jeremylongshore

View all by jeremylongshore

analyzing-logs

jeremylongshore

Analyze application logs to detect performance issues, identify error patterns, and improve stability by extracting key insights.

14123

ollama-setup

jeremylongshore

Configure auto-configure Ollama when user needs local LLM deployment, free AI alternatives, or wants to eliminate hosted API costs. Trigger phrases: "install ollama", "local AI", "free LLM", "self-hosted AI", "replace OpenAI", "no API costs". Use when appropriate context detected. Trigger with relevant phrases based on skill purpose.

1167

backtesting-trading-strategies

jeremylongshore

Backtest crypto and traditional trading strategies against historical data. Calculates performance metrics (Sharpe, Sortino, max drawdown), generates equity curves, and optimizes strategy parameters. Use when user wants to test a trading strategy, validate signals, or compare approaches. Trigger with phrases like "backtest strategy", "test trading strategy", "historical performance", "simulate trades", "optimize parameters", or "validate signals".

1071

generating-database-seed-data

jeremylongshore

Process this skill enables AI assistant to generate realistic test data and database seed scripts for development and testing environments. it uses faker libraries to create realistic data, maintains relational integrity, and allows configurable data volumes. u... Use when working with databases or data models. Trigger with phrases like 'database', 'query', or 'schema'.

1033

cursor-codebase-indexing

jeremylongshore

Execute set up and optimize Cursor codebase indexing. Triggers on "cursor index setup", "codebase indexing", "index codebase", "cursor semantic search". Use when working with cursor codebase indexing functionality. Trigger with phrases like "cursor codebase indexing", "cursor indexing", "cursor".

885

testing-mobile-apps

jeremylongshore

Execute mobile app testing on iOS and Android devices/simulators. Use when performing specialized testing. Trigger with phrases like "test mobile app", "run iOS tests", or "validate Android functionality".

810

Search skills

Search the agent skills registry