coderabbit-reference-architecture

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

CodeRabbit Reference Architecture

CodeRabbit参考架构

Overview

概述

Configure CodeRabbit AI code review for team workflows. Covers repository configuration, custom review instructions, path-based rules, and integration with CI pipelines for automated review enforcement.
为团队工作流配置CodeRabbit AI代码审查。内容涵盖仓库配置、自定义审查指令、基于路径的规则,以及与CI流水线集成以实现自动化审查强制执行。

Prerequisites

前提条件

  • CodeRabbit GitHub/GitLab app installed
  • Repository admin access for configuration
  • Understanding of team coding standards
  • CI pipeline for review status checks
  • 已安装CodeRabbit GitHub/GitLab应用
  • 拥有仓库管理员权限以进行配置
  • 了解团队编码标准
  • 具备用于审查状态检查的CI流水线

Architecture Diagram

架构图

┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  Developer   │────▶│  Pull        │────▶│  CodeRabbit  │
│  Push/PR     │     │  Request     │     │  AI Review   │
└──────────────┘     └──────────────┘     └──────┬───────┘
                     ┌────────────────────────────┤
                     │                            │
                     ▼                            ▼
              ┌──────────────┐          ┌──────────────┐
              │ Line-level   │          │ Summary      │
              │ Comments     │          │ Review       │
              └──────┬───────┘          └──────┬───────┘
                     │                          │
                     ▼                          ▼
              ┌──────────────┐          ┌──────────────┐
              │ Developer    │          │ CI Status    │
              │ Response     │          │ Check        │
              └──────────────┘          └──────────────┘
┌──────────────┐     ┌──────────────┐     ┌──────────────┐
│  Developer   │────▶│  Pull        │────▶│  CodeRabbit  │
│  Push/PR     │     │  Request     │     │  AI Review   │
└──────────────┘     └──────────────┘     └──────┬───────┘
                     ┌────────────────────────────┤
                     │                            │
                     ▼                            ▼
              ┌──────────────┐          ┌──────────────┐
              │ Line-level   │          │ Summary      │
              │ Comments     │          │ Review       │
              └──────┬───────┘          └──────┬───────┘
                     │                          │
                     ▼                          ▼
              ┌──────────────┐          ┌──────────────┐
              │ Developer    │          │ CI Status    │
              │ Response     │          │ Check        │
              └──────────────┘          └──────────────┘

Instructions

操作步骤

Step 1: Create Repository Configuration

步骤1:创建仓库配置

yaml
undefined
yaml
undefined

.coderabbit.yaml - Root configuration

.coderabbit.yaml - Root configuration

language: "en-US" early_access: false
reviews: profile: "assertive" # Options: chill, assertive, proactive request_changes_workflow: true high_level_summary: true poem: false review_status: true collapse_walkthrough: false path_instructions: - path: "src/api/" instructions: | Review for REST API best practices: - Validate all inputs with zod schemas - Return proper HTTP status codes - Include error response bodies per RFC 7807 # 7807 = configured value - Check for SQL injection in query parameters - path: "src/components/" instructions: | Review React components for: - Proper use of hooks (no conditional hooks) - Memoization where appropriate - Accessibility (aria labels, keyboard navigation) - Component size (flag if >200 lines) # HTTP 200 OK - path: "**/.test." instructions: | Review tests for: - Meaningful test descriptions - Edge cases covered - No implementation details tested - Proper async handling
auto_review: enabled: true drafts: false base_branches: - "main" - "develop" ignore_title_keywords: - "WIP" - "DO NOT MERGE"
chat: auto_reply: true
undefined
language: "en-US" early_access: false
reviews: profile: "assertive" # Options: chill, assertive, proactive request_changes_workflow: true high_level_summary: true poem: false review_status: true collapse_walkthrough: false path_instructions: - path: "src/api/" instructions: | Review for REST API best practices: - Validate all inputs with zod schemas - Return proper HTTP status codes - Include error response bodies per RFC 7807 # 7807 = configured value - Check for SQL injection in query parameters - path: "src/components/" instructions: | Review React components for: - Proper use of hooks (no conditional hooks) - Memoization where appropriate - Accessibility (aria labels, keyboard navigation) - Component size (flag if >200 lines) # HTTP 200 OK - path: "**/.test." instructions: | Review tests for: - Meaningful test descriptions - Edge cases covered - No implementation details tested - Proper async handling
auto_review: enabled: true drafts: false base_branches: - "main" - "develop" ignore_title_keywords: - "WIP" - "DO NOT MERGE"
chat: auto_reply: true
undefined

Step 2: Configure Path-Based Review Rules

步骤2:配置基于路径的审查规则

yaml
undefined
yaml
undefined

.coderabbit.yaml continued

.coderabbit.yaml continued

reviews: path_filters: # Skip auto-generated files - "!/*.generated.ts" - "!/generated/" - "!package-lock.json" - "!pnpm-lock.yaml" - "!/*.min.js" - "!dist/**"
# Always review security-sensitive paths
- "+src/auth/**"
- "+src/middleware/**"
- "+**/migrations/**"
tools: eslint: enabled: true biome: enabled: true shellcheck: enabled: true markdownlint: enabled: true
undefined
reviews: path_filters: # Skip auto-generated files - "!/*.generated.ts" - "!/generated/" - "!package-lock.json" - "!pnpm-lock.yaml" - "!/*.min.js" - "!dist/**"
# Always review security-sensitive paths
- "+src/auth/**"
- "+src/middleware/**"
- "+**/migrations/**"
tools: eslint: enabled: true biome: enabled: true shellcheck: enabled: true markdownlint: enabled: true
undefined

Step 3: Custom Review Instructions for Team Standards

步骤3:为团队标准自定义审查指令

yaml
undefined
yaml
undefined

.coderabbit.yaml - Team-specific instructions

.coderabbit.yaml - Team-specific instructions

reviews: path_instructions: - path: "**" instructions: | Team coding standards: 1. All exported functions must have JSDoc comments 2. Use named exports, never default exports 3. Prefer const assertions for literal types 4. Error handling: never catch and ignore silently 5. Logging: use structured logger, never console.log in production
- path: "src/db/**"
  instructions: |
    Database layer rules:
    - All queries must use parameterized statements
    - Include index hints for complex queries
    - Transactions required for multi-table mutations
    - Migration files must be reversible

- path: ".github/workflows/**"
  instructions: |
    CI/CD pipeline rules:
    - Pin all action versions to SHA, not tags
    - Never use secrets in step names or logs
    - Include timeout-minutes on all jobs
    - Use OIDC for cloud provider auth
undefined
reviews: path_instructions: - path: "**" instructions: | Team coding standards: 1. All exported functions must have JSDoc comments 2. Use named exports, never default exports 3. Prefer const assertions for literal types 4. Error handling: never catch and ignore silently 5. Logging: use structured logger, never console.log in production
- path: "src/db/**"
  instructions: |
    Database layer rules:
    - All queries must use parameterized statements
    - Include index hints for complex queries
    - Transactions required for multi-table mutations
    - Migration files must be reversible

- path: ".github/workflows/**"
  instructions: |
    CI/CD pipeline rules:
    - Pin all action versions to SHA, not tags
    - Never use secrets in step names or logs
    - Include timeout-minutes on all jobs
    - Use OIDC for cloud provider auth
undefined

Step 4: Integrate with CI Pipeline

步骤4:与CI流水线集成

yaml
undefined
yaml
undefined

.github/workflows/pr-checks.yml

.github/workflows/pr-checks.yml

name: PR Checks
on: pull_request: types: [opened, synchronize, reopened]
jobs: wait-for-coderabbit: runs-on: ubuntu-latest steps: - name: Wait for CodeRabbit review uses: actions/github-script@v7 with: script: | // Check if CodeRabbit has reviewed const reviews = await github.rest.pulls.listReviews({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.issue.number, });
        const coderabbitReview = reviews.data.find(
          r => r.user.login === 'coderabbitai[bot]'
        );

        if (!coderabbitReview) {
          core.info('Waiting for CodeRabbit review...');
        }
undefined
name: PR Checks
on: pull_request: types: [opened, synchronize, reopened]
jobs: wait-for-coderabbit: runs-on: ubuntu-latest steps: - name: Wait for CodeRabbit review uses: actions/github-script@v7 with: script: | // Check if CodeRabbit has reviewed const reviews = await github.rest.pulls.listReviews({ owner: context.repo.owner, repo: context.repo.repo, pull_number: context.issue.number, });
        const coderabbitReview = reviews.data.find(
          r => r.user.login === 'coderabbitai[bot]'
        );

        if (!coderabbitReview) {
          core.info('Waiting for CodeRabbit review...');
        }
undefined

Error Handling

错误处理

IssueCauseSolution
Review not triggeredPR to non-configured branchAdd branch to
base_branches
Too many commentsProfile too aggressiveSwitch to
chill
profile
Ignoring config changesYAML syntax errorValidate YAML before committing
Reviewing generated filesMissing path filterAdd
!
exclusion patterns
问题原因解决方案
未触发审查拉取请求提交至未配置的分支将分支添加至
base_branches
评论过多审查配置文件过于激进切换为
chill
配置文件
忽略配置变更YAML语法错误提交前验证YAML语法
审查了自动生成的文件缺少路径过滤规则添加
!
排除模式

Examples

示例

Minimal Configuration

最简配置

yaml
undefined
yaml
undefined

.coderabbit.yaml - Quick start

.coderabbit.yaml - Quick start

reviews: profile: "assertive" auto_review: enabled: true drafts: false
undefined
reviews: profile: "assertive" auto_review: enabled: true drafts: false
undefined

Resources

参考资源

Output

输出结果

  • Configuration files or code changes applied to the project
  • Validation report confirming correct implementation
  • Summary of changes made and their rationale
  • 已应用到项目中的配置文件或代码变更
  • 确认正确实现的验证报告
  • 变更内容及其依据的总结