Try Live
Add Docs
Rankings
Pricing
Enterprise
Docs
Install
Theme
Install
Docs
Pricing
Enterprise
More...
More...
Try Live
Rankings
Create API Key
Add Docs
CodeRabbit
https://github.com/coderabbitai/awesome-coderabbit
Admin
CodeRabbit is an AI-powered code review tool that helps development teams improve code quality and
...
Tokens:
6,174
Snippets:
33
Trust Score:
9.2
Update:
2 weeks ago
Context
Skills
Chat
Benchmark
78.5
Suggestions
Latest
Show doc for...
Code
Info
Show Results
Context Summary (auto-generated)
Raw
Copy
Link
# Awesome CodeRabbit Awesome CodeRabbit is a curated collection of resources, configurations, and best practices for CodeRabbit, an AI-powered code review tool that integrates with GitHub, GitLab, and Azure DevOps. This repository serves as a community-driven resource hub containing real-world configuration examples organized by programming language and framework, along with links to official documentation, tutorials, blog posts, and showcases of open-source projects using CodeRabbit. The core functionality of this repository is to provide ready-to-use `.coderabbit.yaml` configuration files that teams can adapt for their projects. These configurations demonstrate how to customize AI code reviews with language-specific instructions, path-based review rules, tool integrations (linters, security scanners), and workflow settings. The repository covers configurations for Go, Python, TypeScript, JavaScript, Java, Kotlin, Rust, and many other languages and frameworks. --- ## Configuration Schema and Basic Setup The `.coderabbit.yaml` file is placed in your repository root to configure CodeRabbit's behavior. It uses a JSON schema for validation and supports language settings, review profiles, and tool integrations. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json # Basic configuration - place this in your repository root as .coderabbit.yaml language: "en-US" early_access: false enable_free_tier: true reviews: # Profile: "chill" for fewer comments, "assertive" for more thorough feedback profile: chill # Generate a high-level summary in PR description high_level_summary: true # Placeholder that gets replaced with AI summary high_level_summary_placeholder: '@coderabbitai summary' # Generate walkthrough of changes collapse_walkthrough: false # Fun poem about the changes poem: true # Show review status review_status: true auto_review: enabled: true drafts: false base_branches: - main - develop chat: auto_reply: true ``` --- ## Path-Based Review Instructions Configure specific review instructions for different file paths using glob patterns. This allows language-specific or directory-specific code review guidelines. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json language: "en" reviews: path_instructions: # Go code - enforce Uber style guide - path: "**/*.go" instructions: "Review the Golang code for conformity with the Uber Golang style guide, highlighting any deviations." # Unit tests - assess coverage - path: "**/*_test.go" instructions: | "Assess the unit test code assessing sufficient code coverage for the changes associated in the pull request" # Integration tests - path: "tests/**/*" instructions: | "Assess the integration and e2e test code assessing sufficient code coverage for the changes associated in the pull request" # Documentation review - path: "**/*.md" instructions: | "Assess the documentation for misspellings, grammatical errors, missing documentation and correctness" # Python with Google style guide - path: "src/**/*.py" instructions: | "Review the Python code for conformity with the Google Python style guide, highlighting any deviations. Confirm that: - The docstrings are up-to-date with the implementations. Please highlight the outdated ones. - When an API in a module changes, ensure that all modules that depend on the changed module are updated accordingly. - When seeing a TODO comment, try to write code to complete the todo." # Pytest test files - path: "tests/**/*" instructions: | "Assess the unit test code employing the Pytest testing framework. Confirm that: - The tests adhere to Pytest's established best practices. - Test descriptions are sufficiently detailed to clarify the purpose of each test. - The tests cover all methods, classes, and errors." auto_review: enabled: true ignore_title_keywords: - "WIP" - "DO NOT MERGE" drafts: false base_branches: - "main" - "develop" - "feat/*" ``` --- ## Path Filters - Include and Exclude Files Control which files CodeRabbit reviews using glob patterns. Exclude generated code, binaries, and non-essential files. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json reviews: path_filters: # Exclude distribution and build directories - '!dist/**' - '!**/gen/**' - '!**/generated/**' - '!**/vendor/**' # Exclude binary and compiled files - '!**/*.exe' - '!**/*.dll' - '!**/*.so' - '!**/*.class' - '!**/*.jar' - '!**/*.war' - '!**/*.pyc' - '!**/*.pyo' # Exclude media files - '!**/*.mp3' - '!**/*.mp4' - '!**/*.png' - '!**/*.jpg' - '!**/*.gif' - '!**/*.svg' # Exclude archives - '!**/*.zip' - '!**/*.tar' - '!**/*.gz' - '!**/*.7z' # Exclude lock files and generated configs - '!**/*.lock' - '!**/*.pb.go' - '!**/*.min.js' - '!**/*.min.js.map' # Exclude sensitive/config files from review - '!**/*.yaml' - '!**/*.yml' - '!**/*.xml' - '!**/*.toml' # Exclude Terraform state - '!**/*.tfstate' - '!**/*.tfstate.backup' # Include specific API directory (remove ! prefix to include) # - "src/**" # Exclude specific API directory - "!api/" ``` --- ## Tool Integrations - Linters and Security Scanners Enable built-in integrations with popular linting tools and security scanners that run alongside AI reviews. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json reviews: tools: # AST-based pattern matching (v0.31.1) ast-grep: essential_rules: true rule_dirs: [] packages: [] # Shell script analysis (v0.10.0) shellcheck: enabled: true # Python linter and formatter (v0.8.2) ruff: enabled: true # Markdown linting (v0.17.2) markdownlint: enabled: true # JavaScript/TypeScript fast linter (v1.9.4) biome: enabled: true # Dockerfile linting (v2.12.0) hadolint: enabled: true # Go linter runner (v1.64.8) golangci-lint: enabled: true # config_file: ".golangci.yml" # Optional custom config path # YAML validation (v1.35.1) yamllint: enabled: true # Secret detection (v8.21.2) gitleaks: enabled: true # Infrastructure-as-code security (v3.2.334) checkov: enabled: true # Kotlin static analysis (v1.23.7) detekt: enabled: true # config_file: "detekt.yml" # JavaScript linting (v8.45.0) eslint: enabled: true # Ruby linting (v1.73) rubocop: enabled: true # PHP static analysis (v2.0.3) phpstan: enabled: true level: default # Options: 0-9 or 'default' # Swift linting (v0.57.0) swiftlint: enabled: true # Java static analysis (v7.8.0) pmd: enabled: true # C/C++ analysis (v2.10-2) cppcheck: enabled: true # Security vulnerability scanner (v1.99.0) semgrep: enabled: true # Protobuf linting (v1.47.2) buf: enabled: true # SQL linting (v3.3.0) sqlfluff: enabled: true # GitHub Actions validation (v1.7.4) actionlint: enabled: true # CircleCI config validation (v0.1.31151) circleci: enabled: true # Grammar and style checking languagetool: enabled: true level: default # Options: 'default' or 'picky' disabled_rules: - EN_UNPAIRED_BRACKETS disabled_categories: - TYPOS - TYPOGRAPHY - CASING # GitHub Checks integration github-checks: enabled: true timeout_ms: 90000 ``` --- ## Enterprise Java Configuration Comprehensive configuration for enterprise Java projects with Angular frontend, including detailed path instructions for different file types. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json language: en-US early_access: true reviews: profile: chill request_changes_workflow: true high_level_summary: true poem: false collapse_walkthrough: false path_instructions: # Angular TypeScript files - path: src/main/webapp/**/*.ts instructions: >- angular_style:https://angular.io/guide/styleguide;methods_in_html:false;lazy_loading:true;code_reuse:true;tests:meaningful;types:PascalCase;enums:PascalCase;funcs:camelCase;props:camelCase;no_priv_prefix:true;strings:single_quotes;localize:true;btns:functionality;links:navigation;icons_text:newline;labels:associate;code_style:arrow_funcs,curly_braces,open_braces_same_line,indent_4;memory_leak_prevention:true;routes:naming_schema;chart_framework:ngx-charts;responsive_layout:true # Java backend files - path: src/main/java/**/*.java instructions: >- naming:CamelCase; principles:{single_responsibility,small_methods,no_duplication}; db:{perf_queries,datetime_not_timestamp}; rest:{stateless,singleton,delegate_logic,http_only,minimal_dtos}; dtos:{java_records,no_entities,min_data,single_resp}; di:constructor_injection; kiss:simple_code; file_handling:os_indep_paths; practices:{least_access,avoid_transactions,code_reuse,static_member_ref,prefer_primitives}; sql:{param_annotation,uppercase,avoid_subqueries};java:avoid_star_imports # Jest test files - path: src/test/javascript/spec/**/*.ts instructions: >- jest: true; mock: NgMocks; bad_practices: avoid_full_module_import; perf_improvements: mock_irrelevant_deps; service_testing: mock_http_for_logic; no_schema: avoid_NO_ERRORS_SCHEMA; expectation_specificity: true; solutions: {boolean: toBeTrue/False, reference: toBe, existence: toBeNull/NotNull, undefined: toBeUndefined, class_obj: toContainEntries/toEqual, spy_calls: {not_called: not.toHaveBeenCalled, once: toHaveBeenCalledOnce, with_value: toHaveBeenCalledWith|toHaveBeenCalledExactlyOnceWith}} # Java test files - path: src/test/java/**/*.java instructions: >- test_naming: descriptive; test_size: small_specific; fixed_data: true; junit5_features: true; assert_use: assertThat; assert_specificity: true; archunit_use: enforce_package_rules; db_query_count_tests: track_performance; util_service_factory_pattern: true; avoid_db_access: true; mock_strategy: static_mocks; context_restart_minimize: true # Angular HTML templates - path: src/main/webapp/**/*.html instructions: >- @if and @for are new and valid Angular syntax replacing *ngIf and *ngFor. They should always be used over the old style. # German translations - use informal address - path: src/main/webapp/i18n/de/**/*.json instructions: >- German language translations should be informal (dutzen) and should never be formal (sietzen). So the user should always be addressed with "du/dein" and never with "sie/ihr". auto_review: enabled: true auto_incremental_review: true drafts: false ``` --- ## React and Material-UI Configuration Configuration for React projects using Material-UI with strict coding standards. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json language: "en-US" early_access: false reviews: path_instructions: - path: "*" instructions: | Review the JavaScript code against the following rules: - No new libraries are added. - Only functional components, no class components. - No commented code. - No Console.log. - PascalCase for components, routes and pages. Example: catalogueIndex.js -> WRONG, CatalogueIndex.js -> CORRECT - Follow CamelCase. Example: Is-Open -> WRONG, is_open -> WRONG, isOpen -> CORRECT - State management: useState and Redux preferred. Example: const [isSaveProfileModalOpen, setIsSaveProfileModalOpen] = useState(false) const dispatch = useDispatch(); const Button = useSelector((state) => state.nav.Button) dispatch(setButton(buttons[0])); - MaterialUI is the preferred library. - Avoid container/item Grid layout. Use display flex within sx. Example: WRONG: <Grid container xs={6} md={12}><Grid item>... CORRECT: <Grid sx={{display: "flex", flexDirection: "row", width: isMobile ? "50%" : "100%"}}> - No secrets, API keys, SSH keys or sensitive information should be hardcoded. ``` --- ## Tone and Language Customization Customize the tone and language of CodeRabbit's review comments to match your team's preferences. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json # Review language - use ISO language codes language: "en-GB" # British English # Custom tone instructions - be creative! tone_instructions: 'You are an expert code reviewer in Java, TypeScript, JavaScript, and NodeJS. You work in an enterprise software developer team, providing concise and clear code review advice. You only elaborate or provide detailed explanations when requested.' # Alternative tone examples: # tone_instructions: 'You must talk like Mr. T. I pity the fool who doesn'\''t!' # tone_instructions: 'Be concise and direct. Focus on critical issues only.' # tone_instructions: 'Be encouraging and educational for junior developers.' reviews: # Profile affects how strict the reviews are profile: chill # Options: "chill" or "assertive" # Enable request changes workflow request_changes_workflow: false # Auto-generate PR title when placeholder is present auto_title_placeholder: '@coderabbitai' auto_title_instructions: '' ``` --- ## Cypress E2E Testing Configuration Specialized configuration for reviewing Cypress end-to-end tests. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json language: "en-US" reviews: profile: "chill" high_level_summary: true path_instructions: - path: "app/client/cypress/**/**.*" instructions: | Review the following e2e test code written using the Cypress test library. Ensure that: - Follow best practices for Cypress code and e2e automation - Avoid using cy.wait in code - Avoid using cy.pause in code - Avoid using agHelper.sleep() - Use locator variables for locators - Use data-* attributes for selectors - Avoid Xpaths, Attributes and CSS path - Avoid selectors like .btn.submit - Perform logins via API - Avoid using it.only - Use multiple assertions - Avoid string assertions - Ensure unique filenames auto_review: enabled: true drafts: false base_branches: ["pg", "release"] chat: auto_reply: true ``` --- ## Knowledge Base and Integrations Configure CodeRabbit's knowledge base features and third-party integrations with Jira and Linear. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json reviews: # Enable related issues and PRs in walkthrough assess_linked_issues: true related_issues: true related_prs: true # Auto-labeling suggested_labels: true auto_apply_labels: false labeling_instructions: [] # Reviewer suggestions suggested_reviewers: true auto_assign_reviewers: false # Sequence diagrams in walkthrough sequence_diagrams: true chat: auto_reply: true integrations: jira: usage: auto # Options: 'auto', 'enabled', 'disabled' linear: usage: auto knowledge_base: # Opt out of data retention opt_out: false # Web search for context web_search: enabled: true # Learning from past reviews learnings: scope: auto # Options: 'local', 'global', 'auto' # Issue context issues: scope: auto # Jira integration jira: usage: auto project_keys: [] # e.g., ["PROJ", "TEAM"] # Linear integration linear: usage: auto team_keys: [] # e.g., ["ENG", "PROD"] # Pull request context pull_requests: scope: auto # Code generation settings (docstrings) code_generation: docstrings: language: en-US path_instructions: [] ``` --- ## Full-Stack Configuration with All Tools Complete full-stack configuration enabling all available tools and integrations. ```yaml # yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json language: en-US tone_instructions: '' early_access: false enable_free_tier: true reviews: profile: assertive request_changes_workflow: false high_level_summary: true high_level_summary_placeholder: '@coderabbitai summary' auto_title_placeholder: '@coderabbitai' review_status: true poem: true collapse_walkthrough: false sequence_diagrams: true abort_on_close: true path_filters: - "!**/*.ptxt" path_instructions: - path: "drafts/*.md" instructions: "Review RFC documents considering language impact and propose improvements." auto_review: enabled: true auto_incremental_review: true ignore_title_keywords: [] labels: [] drafts: false base_branches: [] finishing_touches: docstrings: enabled: true tools: shellcheck: enabled: true ruff: enabled: true markdownlint: enabled: true github-checks: enabled: true timeout_ms: 90000 languagetool: enabled: true enabled_only: false level: default biome: enabled: true hadolint: enabled: true swiftlint: enabled: true phpstan: enabled: true level: default golangci-lint: enabled: true yamllint: enabled: true gitleaks: enabled: true checkov: enabled: true detekt: enabled: true eslint: enabled: true chat: auto_reply: true knowledge_base: opt_out: false learnings: scope: auto issues: scope: auto jira: project_keys: [] linear: team_keys: [] ``` --- ## Summary Awesome CodeRabbit provides a comprehensive collection of configuration templates that enable development teams to quickly set up AI-powered code reviews tailored to their specific technology stack and coding standards. The main use cases include: enforcing language-specific style guides (Uber Go Style, Google Python Style, Angular Style Guide), integrating automated linting and security scanning tools, customizing review behavior for different file types and directories, and connecting with project management tools like Jira and Linear for enhanced context. Integration patterns typically involve placing a `.coderabbit.yaml` file in the repository root, configuring path-based instructions for different code types, enabling relevant linting tools for the project's languages, and setting up knowledge base integrations for better AI context. Teams can start with one of the provided configurations from the `configs/` directory, then customize settings based on their specific requirements. The schema validation (`$schema=https://coderabbit.ai/integrations/schema.v2.json`) ensures configuration correctness, while the profile setting (`chill` vs `assertive`) controls the overall strictness of reviews.