diff --git a/.github/ISSUE_TEMPLATE/bug_report.md b/.github/ISSUE_TEMPLATE/bug_report.md new file mode 100644 index 00000000..32cf3bf1 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/bug_report.md @@ -0,0 +1,13 @@ +--- +name: Bug report +about: Report a flaw, inaccuracy, or omission in our documentation. +title: "" +labels: bug, needs triage +assignees: jmacdotorg +--- + +**URL of the documentation page with this bug**: + +**A brief summary of the documentation bug**: + +(Optional) **Suggestions on how best we can address the bug**: diff --git a/.github/ISSUE_TEMPLATE/feature-request.md b/.github/ISSUE_TEMPLATE/feature-request.md new file mode 100644 index 00000000..4dccde05 --- /dev/null +++ b/.github/ISSUE_TEMPLATE/feature-request.md @@ -0,0 +1,17 @@ +--- +name: Feature request +about: Request documentation for a new or existing CodeRabbit feature. +title: "" +labels: enhancement, needs triage +assignees: jmacdotorg +--- + +**The name of this feature**: + +**Expected launch date**: + +**Personnel (PM, TL, etc.)**: + +**Summary of this feature**, including a high-level description of the public documentation that it requires: + +**Links to relevant internal documentation:** diff --git a/.github/ISSUE_TEMPLATE/other-documentation-request.md b/.github/ISSUE_TEMPLATE/other-documentation-request.md new file mode 100644 index 00000000..b258a89b --- /dev/null +++ b/.github/ISSUE_TEMPLATE/other-documentation-request.md @@ -0,0 +1,7 @@ +--- +name: Other documentation request +about: Request a documentation improvement other than new-feature coverage. +title: "" +labels: needs triage +assignees: jmacdotorg +--- diff --git a/README.md b/README.md index de8e5ece..bd76c6c5 100644 --- a/README.md +++ b/README.md @@ -37,20 +37,25 @@ Welcome to the official docs for [**CodeRabbit**](https://coderabbit.ai), the co ## Getting Started -1. Clone this repository: +1. Make sure that you have the following prerequisites installed: + + - [Node.js](https://nodejs.org/) + - [pnpm](https://pnpm.io/installation) + +2. Clone this repository: ```sh git clone https://github.com/coderabbit-ai/coderabbit-docs.git cd coderabbit-docs ``` -2. Install dependencies: +3. Install Node.js dependencies using `pnpm`: ```sh pnpm install ``` -3. Start the development server: +4. Start the development server: ```sh pnpm start diff --git a/docs/changelog.md b/docs/changelog.md index 656a0b5f..d273ffcb 100644 --- a/docs/changelog.md +++ b/docs/changelog.md @@ -5,6 +5,126 @@ description: The latest updates and changes to CodeRabbit. sidebar_position: 13 --- +## July 10, 2025 + +### Enhanced Python Static Analysis: nbqa Support for Jupyter Notebooks + +We're excited to announce enhanced Python static analysis capabilities with nbqa support for Jupyter Notebooks! + +Our existing integrated [Ruff](https://docs.astral.sh/ruff/), [Flake8](https://flake8.pycqa.org/) and [Pylint](https://pylint.pycqa.org/) tools now support linting Jupyter Notebooks (`.ipynb` files) using [nbqa](https://github.com/nbQA-dev/nbQA). This allows you to maintain code quality across your Python projects, including Jupyter Notebooks. + +See our [Ruff](/tools/ruff), [Flake8](/tools/flake8), and [Pylint](/tools/pylint) documentation for more details. + +## July 3, 2025 + +### Enhanced Python Static Analysis: Flake8 Support + +We're excited to announce enhanced Python static analysis capabilities with [Flake8](https://flake8.pycqa.org/) support! + +[Flake8](https://flake8.pycqa.org/) is a Python linting utility that wraps PyFlakes, pycodestyle, and Mccabe to check your Python code for style and logical errors. + +See our [tools documentation](https://docs.coderabbit.ai/tools/) for more details. + +## July 1, 2025 + +### Enhanced Code Guidelines Support + +We've expanded our code guidelines scanning capabilities to provide even better code review experiences. CodeRabbit now automatically scans and learns from additional configuration files to understand your organization's coding standards and preferences. + +**New supported patterns:** + +- `**/.cursorrules` - Cursor IDE rules and preferences +- `.github/copilot-instructions.md` - GitHub Copilot instructions +- `**/CLAUDE.md` - Claude-specific coding guidelines +- `**/.cursor/rules/*` - Cursor rules directory +- `**/.windsurfrules` - Windsurf IDE rules +- `**/.clinerules/*` - Cline IDE rules +- `**/.rules/*` - General rules directory + +These guidelines are automatically analyzed and applied during code reviews to ensure consistency with your team's coding standards. You can configure these patterns in the knowledge base section of your CodeRabbit settings. + +## June 27, 2025 + +### Enhanced PHP Static Analysis: PHPMD and PHPCS Support + +We're excited to announce enhanced PHP static analysis capabilities with two powerful new tools! + +- [PHPMD](https://phpmd.org/) (PHP Mess Detector) is a static analysis tool that detects potential problems in your PHP code such as possible bugs, suboptimal code, overcomplicated expressions, and unused parameters, variables, methods, and classes. + +- [PHPCS](https://github.com/squizlabs/PHP_CodeSniffer) (PHP CodeSniffer) is a development tool that ensures your PHP code conforms to coding standards like PSR-1, PSR-2, PSR-12, and custom standards. It can automatically fix many coding standard violations. + +See our [tools documentation](https://docs.coderabbit.ai/tools/) for more details. + +## June 11, 2025 + +### Enhanced Static Analysis: HTMLHint and Checkmake Support + +We're excited to announce that two new static analysis tools are now supported on CodeRabbit! + +- [HTMLHint](https://htmlhint.com/) is a static code analysis tool for HTML that helps maintain code quality by detecting common mistakes and enforcing best practices. + +- [Checkmake](https://github.com/mrtazz/checkmake) is a linter for Makefiles that helps ensure your build scripts follow best practices and maintain consistency. + +## June 10, 2025 + +### Unit Test Generation, Early Access + +We're excited to announce that our new unit test generation feature is now available in early access! CodeRabbit can now automatically generate unit tests for your code changes. + +Key capabilities: + +- **Intelligent Test Generation**: Automatically creates unit tests that cover edge cases, error scenarios, and core functionality +- **Context-Aware**: Generates tests that understand your existing codebase patterns and testing conventions +- **One-Click Integration**: Simply comment `@coderabbitai auto-generate unit tests` on any pull request or specific file, or click on the checkbox available in the walkthrough comment for Early Access customers. + +You can customize the generated tests to fit your specific requirements. + +## June 5, 2025 + +### Enhanced Static Analysis: Dotenv Linter and Pylint Support + +We're excited to announce that two new static analysis tools are now supported on CodeRabbit! + +- [Dotenv Linter](https://github.com/dotenv-linter/dotenv-linter) is a fast, opinionated linter for `.env` files that helps prevent misconfigurations by detecting typos, invalid syntax, and duplicated keys. + +- [Pylint](https://github.com/PyCQA/pylint) is a widely used static analysis and code quality tool for Python. It checks for errors, enforces coding standards, and looks for code smells in your Python codebase. + +## May 25, 2025 + +### New Security and Code Quality Tools + +We're excited to announce the addition of two powerful tools to our static analysis arsenal: + +- **Brakeman**: A static analysis security vulnerability scanner for Ruby on Rails applications. It helps identify security issues in your Ruby codebase by analyzing Gemfile, Ruby files (_.rb), and ERB templates (_.erb). + +- **Clippy**: The official linter for Rust code, helping catch common mistakes and improve your Rust code quality. It analyzes \*.rs files and supports configuration through clippy.toml files. + +Both tools can be configured through their respective config files or through CodeRabbit's settings page. See our [tools documentation](https://docs.coderabbit.ai/tools/) for more details. + +## May 19, 2025 + +### Lua Support with Luacheck + +We're excited to announce enhanced support for Lua code analysis with [Luacheck](https://github.com/mpeterv/luacheck), a powerful static analyzer and linter for Lua code. + +## May 14, 2025 + +### CodeRabbit for VS Code, Cursor, and Windsurf Is Here ๐ŸŽ‰ + +We're thrilled to announce that CodeRabbit's AI code reviews have officially landed inside **VS Code and all its forks, including Cursor and Windsurf!** No more review bottlenecks or context switches: now you can get _instant, inline feedback right in your editor, completely free._ + +**Why you'll love it:** + +- ๐Ÿ“ **Inline Code Reviews**: Senior-dev-level annotation on every line. CodeRabbit becomes your AI pair programmer, annotating staged & unstaged commits before you even open a PR. +- ๐Ÿš€ **Built for Flow, Not Friction**: Code, review, commitโ€”rise & repeat without breaking your flow state. Reviews run automatically on every commit so you ship faster. +- ๐Ÿ› ๏ธ **Fix-with-AI**: One-Click Fix for quick tweaks; "Fix with AI" hands off more complex suggestions to your favorite coding agent, complete with full context. +- ๐Ÿงฉ **Compatible with Cursor, Windsurf & Language-Agnostic**: Works out of the box on VS Code, Cursor, Windsurf. Supports Java, JavaScript, PHP, Python, TypeScript, Go, Ruby, and more. + +Pair these IDE-embedded reviews with our deeper Git-platform reviews for a multi-layered approach that catches more bugs and cuts down overall review time. + +- [Join the launch discussion on Discord](https://discord.com/channels/1134356397673414807/1145813948193575023/1372210767838842950) +- [Install the CodeRabbit VSCode Extension](https://coderabbit.link/vscode) + ## April 19, 2025 ### Docstring Path Instructions @@ -66,7 +186,7 @@ We're thrilled to introduce agentic planning on GitHub for CodeRabbit chat as Ge We've expanded our static analysis capabilities with two new tools: -- **oxlint**: A high-performance JavaScript/TypeScript linter written in Rust. +- **Oxlint**: A high-performance JavaScript/TypeScript linter written in Rust. - **Prisma Lint**: A dedicated linter for Prisma schema files to help enforce consistent conventions and best practices. Both tools can be configured through their respective config files or through CodeRabbit's settings page. See our [tools documentation](https://docs.coderabbit.ai/tools/) for more details. @@ -124,8 +244,8 @@ We're thrilled to introduce agentic planning on GitHub for CodeRabbit chat as an We are continually expanding our support for static analysis tools. We've recently added support for: - SQLFluff -- Added oxlint for faster linting - - oxlint is a blazingly fast JavaScript/TypeScript linter written in Rust +- Added Oxlint for faster linting + - Oxlint is a blazingly fast JavaScript/TypeScript linter written in Rust - Replaces ESLint for basic linting while maintaining ESLint for more complex rules - Up to 50-100x faster than traditional ESLint diff --git a/docs/faq.md b/docs/faq.md index 1cb42735..6755fffa 100644 --- a/docs/faq.md +++ b/docs/faq.md @@ -10,6 +10,42 @@ import TabItem from '@theme/TabItem'; ## General Questions {#general-questions} +### How to trigger a CodeRabbit Review? + +Once installed, CodeRabbit automatically triggers a review when a pull request is opened against the main branch of any repository. We automatically detect the name of the primary branch (whether this be master, main, dev, etc). This branch restriction can be customized in your settings. + +You can also manually trigger a review at any time by commenting on a pull request with one of these commands (see [Commands](/guides/commands.md) for full list): + +- `@coderabbitai review` - Triggers a standard review +- `@coderabbitai full review` - Triggers a comprehensive review + +### How to run a review from my IDE? + +You can trigger CodeRabbit reviews directly from your IDE using our editor plugins: + +- [VSCode Extension](./guides/about-vscode.md) - For VSCode, Cursor or Windsurf users + +These plugins allow you to request reviews without leaving your development environment. See the individual plugin documentation for installation and usage instructions. + +### How to install CodeRabbit? + +View step by step instructions depending on your platform: + + + + See our [GitHub App installation guide](./platforms/github-com.md) for step-by-step instructions. + + + Follow our [GitLab integration guide](/platforms/gitlab-com.mdx) to get started. + + + Check out the [Bitbucket installation steps](/platforms/bitbucket-cloud.md) for detailed setup. + + + View our [Azure DevOps setup guide](/platforms/azure-devops.md) for complete installation instructions. + + + ### How accurate is CodeRabbit? > CodeRabbit demonstrates high accuracy in code reviews based on early adoption results. While 100% accuracy isn't guaranteed due to AI's evolving nature, our technology continuously improves through: @@ -27,14 +63,59 @@ CodeRabbit works with all programming languages, with varying proficiency based - Available training data - Community usage patterns +### Whats the difference between CodeRabbit Code Reviews and CodeRabbit Reports? + +CodeRabbit offers two distinct features that serve different roles in your development workflow: + +#### CodeRabbit Code Reviews + +**Role**: Developer, QA, and Code Reviewer +**Access Level**: Full code access with comprehensive analysis capabilities + +**Key Features:** + +- **Complete Toolchain**: Runs all available analysis tools on your codebase +- **Static Analysis**: Can execute shell commands and perform deep static analysis against your codebase +- **Direct Code Access**: Has full access to code in issues and pull requests +- **Interactive Chat**: Provides chat features for real-time collaboration and questions +- **Comprehensive Review**: Analyzes code quality, security, performance, and best practices +- **Actionable Feedback**: Provides specific, line-by-line suggestions and improvements +- **Comment Interaction**: Engages with users through comments in pull requests and issues for clarifications and discussions +- **Available in All Tiers**: All features are available across Free, Lite, and Pro plans + +#### CodeRabbit Reports + +**Role**: Project Manager and Communication Hub +**Access Level**: Summary-only access without direct code interaction + +**Key Features:** + +- **Summary Generation**: Creates convenient, formatted summaries of all your recent pull requests +- **Customizable Prompts**: Allows you to select or create your own summarization templates +- **High-Level Overview**: Focuses on project progress and changes without code details +- **Comment Analysis**: Reads and summarizes existing comments and discussions +- **No Code Access**: Operates only on summaries and metadata, not the actual codebase +- **Communication Tool**: Designed for stakeholders who need updates without technical details +- **Multi-Channel Delivery**: Sends reports through various communication channels: + - Email notifications + - Slack integration + - Discord webhooks + - Microsoft Teams updates +- **Pro Plan Exclusive**: Reports feature is available only in the Pro plan tier + +**In Summary:** + +- **Code Reviews** = Technical analysis with full code access for developers +- **Reports** = High-level summaries with no code access for project management + ### Data Security - - No persistent code storage - - Temporary cloning during review only - Complete data isolation - - Immediate disposal post-review + - Caching of encrypted code and dependency archives for faster reviews + - Code indexing in which we store vector representations of code for efficient code base context + - Both caching and code indexing can be disabled which means we store nothing post-review - Uses only public datasets @@ -92,7 +173,7 @@ Email field and click Update to save your changes. ### Usage and Configuration - **Language Settings**: Configure review language in repository settings -- **Review Rules**: Customize via [Review Instructions](/guides/review-instructions) +- **Review Rules**: Customize via [review instructions](/guides/review-instructions.md) - **Branch Selection**: Default branch reviews enabled by default (configurable) ### Access & Permissions @@ -108,7 +189,7 @@ Interact with CodeRabbit by: 1. Replying directly to CodeRabbit comments 2. Tagging `@coderabbitai` in PR discussions 3. Adding review comments for specific lines -4. Customize via [Review Instructions](/guides/review-instructions) +4. Customize via [review instructions](/guides/review-instructions.md) :::tip Collaboration Mode When team members are active in PRs, use `@coderabbitai` to engage the bot. @@ -124,12 +205,13 @@ In-trial and open-source plans have lower rate limits than the paid plan. In all The following limits enforced _per developer_: -| Feature | Free Plan | Trial Plan | OSS Plan | Pro/Lite Plan | -| ---------------- | ------------------------------------------ | ----------------------------- | ----------------------------- | ----------------------------- | -| Files per hour | 200/hour | 200/hour | 200/hour | 400/hour | -| Files per PR | 100 | 100 | 100 | 200 | -| Reviews per hour | 3 back-to-back, then 3/hour (Summary only) | 4 back-to-back, then 4/hour | 3 back-to-back, then 3/hour | 5 back-to-back, then 5/hour | -| Chat | N/A | 25 back-to-back, then 50/hour | 10 back-to-back, then 25/hour | 25 back-to-back, then 50/hour | +| Feature | Free Plan | Trial Plan | OSS Plan | Pro/Lite Plan | +| -------------------------------- | ------------------------------------------ | --------------------------------- | ----------------------------- | ----------------------------- | +| Files per hour | 200/hour | 200/hour | 200/hour | 400/hour | +| Files per PR | 100 | 100 | 100 | 200 | +| Reviews per hour | 3 back-to-back, then 2/hour (Summary only) | 4 back-to-back, then 3/hour | 3 back-to-back, then 2/hour | 5 back-to-back, then 4/hour | +| Reviews per hour (IDE Extension) | 1/hour | 5/hour (Pro trial), 1/hour(Other) | 1/hour | 5/hour (Pro), 1/hour(Lite) | +| Chat | N/A | 25 back-to-back, then 50/hour | 10 back-to-back, then 25/hour | 25 back-to-back, then 50/hour | ## Integration Guide {#integration-guide} @@ -146,7 +228,7 @@ The following limits enforced _per developer_: 3. That's it. CodeRabbit will automatically start reviewing your PRs :::tip Need Help? -Visit our [Support](/getting-started/support) page for additional assistance or reach out to our team on [Discord](http://discord.gg/coderabbit). +Visit our [Support](/getting-started/support.md) page for additional assistance or reach out to our team on [Discord](http://discord.gg/coderabbit). ::: #### Unable to View Repositories in GitLab diff --git a/docs/finishing-touches/docstrings.md b/docs/finishing-touches/docstrings.md index 5d78366e..c504fa8a 100644 --- a/docs/finishing-touches/docstrings.md +++ b/docs/finishing-touches/docstrings.md @@ -15,7 +15,7 @@ Docstrings generation is part of the [finishing touches](/future-development#fin ## Usage -Once you are done with your pull request and its reviews, you may want to perform finishing touches to your code, such as adding in-code documentation. You can request CodeRabbit to generate docstrings by typing `@coderabbitai generate docstrings` in a comment under that pull request. +Once you are done with your pull request and its reviews, you may want to perform finishing touches to your code, such as adding in-code documentation. You can request CodeRabbit to generate docstrings by typing `@coderabbitai generate docstrings` in a comment under that pull request or by clicking the **Generate Docstrings** checkbox under **Finishing Touches** in the CodeRabbit Walkthrough. Once sent, CodeRabbit will perform the following actions: @@ -50,11 +50,9 @@ code_generation: These software forges are supported: -- [x] Azure DevOps -- [ ] Bitbucket Cloud -- [ ] Bitbucket Data Center -- [x] GitHub -- [x] GitLab +- Azure DevOps +- GitHub +- GitLab While Bitbucket is not officially supported, docstrings can still be generated. However, they will be posted in a comment under the pull request. Full support for Bitbucket is planned. @@ -62,24 +60,22 @@ While Bitbucket is not officially supported, docstrings can still be generated. These languages are supported: -- [x] Bash -- [x] C -- [x] C# -- [x] C++ -- [x] Elixir -- [x] Go -- [ ] Haskell -- [x] Java -- [x] JavaScript -- [x] Kotlin -- [x] Lua -- [x] Php -- [x] Python -- [x] React TypeScript -- [x] Ruby -- [x] Rust -- [ ] Scala -- [x] Swift -- [x] TypeScript +- Bash +- C +- C# +- C++ +- Elixir +- Go +- Java +- JavaScript +- Kotlin +- Lua +- Php +- Python +- React TypeScript +- Ruby +- Rust +- Swift +- TypeScript CodeRabbit uses `ast-grep` to parse the code. If you want a new language to be supported, please look into [Add New Language to ast-grep](https://ast-grep.github.io/contributing/add-lang.html#add-new-language-to-ast-grep) first. diff --git a/docs/finishing-touches/unit-test-generation.md b/docs/finishing-touches/unit-test-generation.md new file mode 100644 index 00000000..57c5e211 --- /dev/null +++ b/docs/finishing-touches/unit-test-generation.md @@ -0,0 +1,57 @@ +--- +title: Generate unit tests +description: Automated Unit Test Generation with CodeRabbit +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +:::warning +This feature is [experimental](/early-access#experiments). +::: + +# Unit Test Generation + +Unit Test Generation is part of the [finishing touches](/future-development#finishing-touches). + +Unit Test Generation is an Early Access Experimental feature. + +## Usage + +Once you are done with your pull request and its reviews, you may want to perform finishing touches to your code, such as adding unit tests. You can request CodeRabbit to generate unit tests by typing `@coderabbitai auto-generate unit tests` in a comment under that pull request or by clicking a checkbox under **Generate Unit Tests** in the CodeRabbit Walkthrough. + +Once sent, CodeRabbit will perform the following actions: + +- The CodeRabbit agent will examine your code for places where it needs tests +- Unit tests will be generated for the PR, in a separate PR, in the same PR in a new commit, or in a comment to copy-paste, depending on your choice +- If (and only if) you choose to generate the unit tests in a separate PR, CodeRabbit will examine your GitHub checks (build steps and tests and such) and adjust the PR to deal with build failures, test failures and similar. + +## Path Instructions + +You can customize the generated unit tests by providing instructions based on file paths in your `.coderabbit.yaml`. The `path` is a [minimatch](https://github.com/isaacs/minimatch) pattern. + +```yaml +code_generation: + unit_tests: + path_instructions: + - path: "**/*.ts" + instructions: | + Use vitest for testing framework. + Generate comprehensive test cases including edge cases and error conditions. + Do not omit the imports; the test file must be valid. +``` + +## Supported software forges + +These software forges are supported: + +- GitHub + +## Supported CI/CD systems + +These CI/CD systems are supported for post-generation adjustments: + +- GitHub actions diff --git a/docs/getting-started/adding-organizations.md b/docs/getting-started/adding-organizations.md index 5f4b635b..66741daa 100644 --- a/docs/getting-started/adding-organizations.md +++ b/docs/getting-started/adding-organizations.md @@ -21,3 +21,7 @@ This will grant CodeRabbit access to the selected organization, allowing it to: - Access user email addresses (read-only) > Note: Organizations control which applications are allowed to access their private data. You may need organization admin approval to complete this process. + +## What's next {#whats-next} + +- [Manage your subscription](/getting-started/subscription-management) diff --git a/docs/getting-started/configure-coderabbit.md b/docs/getting-started/configure-coderabbit.md index e8ee2e06..2e2a14f4 100644 --- a/docs/getting-started/configure-coderabbit.md +++ b/docs/getting-started/configure-coderabbit.md @@ -34,8 +34,7 @@ configuration in a YAML format. You can then copy the configuration to a ::: You can add a `.coderabbit.yaml` configuration file to the root of your -repositories. Below is a sample YAML file that can be used as a starting point -and changed as needed: +repositories. For a complete sample `.coderabbit.yaml` file which you can add to your repository and update as needed, see [Configuration file template](/reference/yaml-template). Write your configuration file in the below editor to validate: diff --git a/docs/getting-started/quickstart.md b/docs/getting-started/quickstart.md index 17cc091c..c6f1d3b8 100644 --- a/docs/getting-started/quickstart.md +++ b/docs/getting-started/quickstart.md @@ -30,7 +30,7 @@ Create a new, private repository on GitHub. Name the new repository `coderabbit- To integrate CodeRabbit with your GitHub account, follow these steps: -1. Visit [the CodeRabbit login page](https://app.coderabbit.ai/login). +1. Visit [the CodeRabbit login page](https://app.coderabbit.ai/login?free-trial). 1. Click **Login with GitHub**. 1. Click **Authorize coderabbitai**. diff --git a/docs/getting-started/subscription-management.md b/docs/getting-started/subscription-management.md index 4483ce78..6eabd3ee 100644 --- a/docs/getting-started/subscription-management.md +++ b/docs/getting-started/subscription-management.md @@ -57,3 +57,7 @@ To modify the number of seats in your subscription: ![Changing your plan](../../static/img/getting-started/edit-subscription.png) ![Changing your plan](../../static/img/getting-started/change-seats.png) + +## What's next {#whats-next} + +- [Control administrative access](/guides/roles) diff --git a/docs/getting-started/support.md b/docs/getting-started/support.md index 9b1ef18b..5aeb9589 100644 --- a/docs/getting-started/support.md +++ b/docs/getting-started/support.md @@ -14,7 +14,7 @@ All CodeRabbit users have access to the [CodeRabbit Discord Server](http://disco ## Support Tickets :::tip -For assistance from our support team, click the help icon located in the bottom right corner of the [CodeRabbit UI](https://app.coderabbit.ai/login). This will open a chat window where you can submit your support ticket. +For assistance from our support team, click the help icon located in the bottom right corner of the [CodeRabbit UI](https://app.coderabbit.ai/login?free-trial). This will open a chat window where you can submit your support ticket. ::: Complete the support ticket by providing your name, email, a description of your issue, and attaching any necessary files. If you are reporting a bug, please provide the GitHub or GitLab organization name. diff --git a/docs/guides/about-vscode.md b/docs/guides/about-vscode.md new file mode 100644 index 00000000..3e484ffe --- /dev/null +++ b/docs/guides/about-vscode.md @@ -0,0 +1,37 @@ +--- +title: Review local changes +description: How to review your code with the VSCode extension. +slug: /code-editors +sidebar_label: Overview +--- + +This page is about the CodeRabbit VSCode extension. For a broader overview of CodeRabbit, see [Introduction](/). + +## About the VSCode extension + +The CodeRabbit VSCode extension lets you apply a limited subset of CodeRabbitโ€™s code-review features to your local development environment, directly from the VSCode IDE. It also works with other text editors that are able to install and use VSCode extensions, such as Cursor and Windsurf. + +You can use the extension on its own, or you can use it to complement your local development on a repository whose remote has CodeRabbit installed. + +The extension is intended to let you use the power of CodeRabbit to rapidly tune and tidy your code changes locally, before you publish your changes to your team's remote repository and start a more thorough code review. + +## Features + +The extension includes the following features: + +- Automatic code reviews on every local Git commit. +- Manually requested reviews of local code changes. +- One-click application of simpler suggested code fixes. +- Integration with AI coding agents, including Copilot and Claude Code, to help you resolve more complex suggestions. +- Full compatibility with text editors derived from VSCode, including Cursor and Windsurf. + +## Price and limitations + +This extension is free to install and use, and works with any tier of CodeRabbit account. Rate limits apply to the number of local reviews that you can request per hour. + +The extension makes only basic CodeRabbit review features available, with default settings applied. Advanced CodeRabbit features, such as interactive chat and project learnings, aren't available through the VSCode extension. These features are available only by [integrating CodeRabbit on your remote repository](/platforms), and then allowing CodeRabbit to review pull requests. + +## What's next + +- [Install the VSCode extension](/guides/install-vscode) +- [Use the VSCode extension](/guides/use-vscode) diff --git a/docs/guides/code-review-best-practices.md b/docs/guides/code-review-best-practices.md new file mode 100644 index 00000000..426617e8 --- /dev/null +++ b/docs/guides/code-review-best-practices.md @@ -0,0 +1,42 @@ +--- +title: Code review best practices +description: Best practices for managing CodeRabbit code reviews. +sidebar_label: Code reviews +--- + +This page lists best practices for performing code reviews with CodeRabbit. + +For more information about working with +CodeRabbit through chat, see [Control and manage code reviews](/guides/commands). + +For a CodeRabbit command reference, see [Code review command reference](/reference/review-commands). + +## Recommended code-review workflow + +- Start with `@coderabbitai review` for checking new changes. +- Use `@coderabbitai full review` when major changes require a fresh perspective. +- Generate summaries after significant updates using `@coderabbitai summary`. + +## Managing large changes + +- Use `@coderabbitai pause` before making multiple commits. +- Resume reviews with `@coderabbitai resume` when ready. +- Consider `@coderabbitai full review` after substantial changes. + +## Documentation flow + +- Run `@coderabbitai generate docstrings` after finalizing function implementations. +- Learn more about [docstring generation](/finishing-touches/docstrings). + +## Overall tips + +- Commands are case-insensitive (`@coderabbitai REVIEW` works the same as `@coderabbitai review`). +- Commands can be issued by anyone with write access to the repository. +- Multiple commands can be used in sequence as needed. +- Use `@coderabbitai configuration` to export your settings before making changes. + +## Command response time + +- Most commands (pause, resume, ignore) take effect immediately. +- Review commands typically complete within a few minutes, depending on PR size. +- Docstring generation time varies based on the number of functions. diff --git a/docs/guides/code-review-overview.md b/docs/guides/code-review-overview.md new file mode 100644 index 00000000..6c571670 --- /dev/null +++ b/docs/guides/code-review-overview.md @@ -0,0 +1,100 @@ +--- +title: Review pull requests +description: An overview of CodeRabbit's core code review features. +sidebar_label: Overview +--- + +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx' + +The central feature of CodeRabbit is its ability to proactively review +new pull requests on your code repository. + +CodeRabbit reviews take the form of pull request comments that +include summaries, analyses, and initial critiques of the proposed changes. +This information, usually added to pull requests within minutes, can help your team perform more rapid, better-informed code reviews. + +The following sections present an overview of this feature. For a hands-on example that lets you experience a CodeRabbit code review using +a real repository, see [Quickstart](/getting-started/quickstart). + +## Automatically review pull requests {#review} + +After you [integrate CodeRabbit with your repository](/platforms), CodeRabbit proceeds +to automatically review every subsequent pull request, as soon as each one is created. + +CodeRabbit performs code reviews by attaching comments to the pull request. +These comments contain detailed summaries and analyses of the changes, +as well as listing out problems or areas for potential improvement that it found. + +CodeRabbit uses [a variety of open-source linters and security tools](/tools) and a custom +code verification agent to provide this analysis. CodeRabbit +also consults several models to further analyze and critique the proposed changes, +using all of the content of your repository as context. The code-review comment that CodeRabbit attaches +to your pull request synthesizes and summarizes all of the information collected from these different sources. + +For more information about the graph analysis that CodeRabbit includes with its reviews +when available, see [CodeRabbit Code Graph Analysis](/integrations/code-graph-analysis). + +### Events that trigger automated reviews {#events} + +By default, the following activity in your repository triggers CodeRabbit to +perform a code review: + +- If CodeRabbit sees a new pull request, then it immediately performs a full review + of the proposed code changes. +- If an open pull request that CodeRabbit has already reviewed gets modified with another + commit, then CodeRabbit performs an incremental review that focuses on the new commit. + +### Which pull requests get automatically reviewed {#eligibility} + +CodeRabbit automatically reviews a pull request when **either** of the following statements is true: + +- The pull request is in a public repository. CodeRabbit reviews pull requests against the main branch of your public repositories by default. This feature is available to every subscription tier, including the free plan. +- The pull request is in a private repository and your organization is on the Pro plan with a seat assigned to you. Only under this condition does CodeRabbit review private-repository pull requests. + + + +## Interact with CodeRabbit reviews {#interact} + +After CodeRabbit attaches its initial code-review comment to a pull request, you can +directly interact with CodeRabbit by mentioning its username, `@coderabbitai`, in comments +that you post to the pull request. + +These interactions can serve several purposes: + +- Free-form discussion about the pull request and the ongoing code review. +- Commands to have CodeRabbit perform specific actions regarding the code review. +- Prompts to have CodeRabbit generate its own improvements to the branch under review. + +### Chat with CodeRabbit {#chat} + +You can have open-ended, natural-language discussion with CodeRabbit during a code review, treating it +as an LLM-powered chatbot that has your entire code repository available for context. For more information, see [CodeRabbit Chat](/guides/agent_chat). + +### Manage CodeRabbit review behavior {#manage} + +CodeRabbit recognizes a variety of keyword-based commands that let you control its +behavior during a code review, including the following: + +- Pause or resume automated reviews of the pull request. +- Manually request a review, when automated reviews are paused. +- Resolve all open comments authored by CodeRabbit. + +For more information, see [Control and manage code reviews](/guides/commands). + +### Generate improvements {#generate} + +You can command CodeRabbit to generate improvements to the branch under review. +CodeRabbit accomplishes this by publishing a new branch based on the branch under review, +and creating a new pull request for your own review. + +Available code-generation commands let you request the following from CodeRabbit: + +- Implement the suggestions for improvements that CodeRabbit has made in its earlier code review comments. +- Generate inline documentation for any undocumented functions that this pull request proposes to add. + +For more information, see [Generate improvements](/guides/generate-improvements). + +## What's next {#whats-next} + +- [Control and manage code reviews](/guides/commands) +- [Generate code improvements](/guides/generate-improvements) diff --git a/docs/guides/code-review-troubleshooting.md b/docs/guides/code-review-troubleshooting.md new file mode 100644 index 00000000..72539453 --- /dev/null +++ b/docs/guides/code-review-troubleshooting.md @@ -0,0 +1,17 @@ +--- +title: Code review troubleshooting +description: Troubleshooting CodeRabbit code reviews. +sidebar_label: Troubleshooting +--- + +This page is about troubleshooting interactive code review sessions with CodeRabbit. For more information about working with +CodeRabbit through chat, see [Control and manage code reviews](/guides/commands). + +If a CodeRabbit command doesn't seem to work: + +1. Check that you have the necessary repository permissions. +2. Verify the command syntax. +3. Look for any response from CodeRabbit in the PR comments. +4. Use `@coderabbitai help` for command guidance. + +Need help? Join our community on [Discord](https://discord.gg/coderabbit) or [contact our support team](/getting-started/support). diff --git a/docs/guides/commands.md b/docs/guides/commands.md index f7cbe002..43e6283a 100644 --- a/docs/guides/commands.md +++ b/docs/guides/commands.md @@ -3,92 +3,152 @@ title: Control and manage code reviews description: Learn how to control CodeRabbit using commands in pull request comments --- -# CodeRabbit Commands +This page is about issuing direct commands to CodeRabbit during code reviews. +For a general overview of performing code reviews with CodeRabbit, see [Review pull requests](/guides/code-review-overview). -> Control your code reviews directly from pull request comments using CodeRabbit's command system. Each command starts with `@coderabbitai` followed by the specific action you want to take. +You can control CodeRabbit's behavior with a specific pull request by mentioning the +username of its bot, `@coderabbitai`, alongside keywords in comments or the pull +request description, as specified by the next sections of this page. -## Review Control Commands +For a complete CodeRabbit command reference, see [Code review command reference](/reference/review-commands). -### Managing Reviews +## Control automatic code reviews {#flow} -| Command | Description | Use Case | -| --------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------- | -| `@coderabbitai review` | Triggers an incremental review of new changes | When automatic reviews are disabled or you want to manually trigger a review | -| `@coderabbitai full review` | Performs a complete review of all files from scratch | When you want to get fresh insights on the entire PR | -| `@coderabbitai summary` | Regenerates the PR summary | When you want an updated overview after making changes | +By default, CodeRabbit automatically reviews every new pull request created in +your repository. It updates its review with comments whenever the pull request has new commits +pushed to it. -### Review Flow Control +The following sections show you how to tell CodeRabbit to modify this behavior with +a specific pull request, such as pausing reviews, or resolving open comments. -| Command | Description | Use Case | -| ---------------------- | ---------------------------------------- | --------------------------------------------------- | -| `@coderabbitai pause` | Temporarily stops reviews on the PR | When you're making multiple rapid changes | -| `@coderabbitai resume` | Restarts reviews after a pause | When you're ready for CodeRabbit to review again | -| `@coderabbitai ignore` | Permanently disables reviews for this PR | When you want to handle the review process manually | +For more information about permanently configuring the behavior of CodeRabbit on +your repository, see [Add a configuration file](/getting-started/configure-coderabbit). -### Comment Management +### Pause and resume automatic code reviews {#pause-resume} -| Command | Description | Use Case | -| ----------------------- | --------------------------------------- | ------------------------------------------------------- | -| `@coderabbitai resolve` | Resolves all CodeRabbit review comments | When you've addressed all feedback and want to clean up | +You can tell CodeRabbit to pause its automatic reviews of a pull request. If +you do, then you can still manually request CodeRabbit to review changes using +the commands listed on [Code review command reference](/reference/review-commands). -### Documentation Commands +To pause automated reviews of a pull request, post the following comment to the +pull request: -| Command | Description | Use Case | -| ----------------------------------- | -------------------------------------------- | --------------------------------------------------- | -| `@coderabbitai generate docstrings` | Generates docstrings for functions in the PR | When you need automatic documentation for your code | -| `@coderabbitai configuration` | Shows current CodeRabbit settings | When you need to check or export your configuration | +```text +@coderabbitai pause +``` -### Agentic Chat Commands +To resume automated reviews after pausing them, post the following comment to the +pull request: -| Command | Description | Use Case | -| -------------------- | ---------------------------------------------------------- | ---------------------------------------------------- | -| `@coderabbitai plan` | Get the agentic chat to plan an edit for previous comments | When you want CodeRabbit to change your code for you | +```text +@coderabbitai resume +``` -### Help & Support +### Disable automatic code reviews {#ignore} -| Command | Description | Use Case | -| -------------------- | ------------------------------------------ | ------------------------------------------ | -| `@coderabbitai help` | Displays available commands and usage info | When you need guidance on using CodeRabbit | +To disable automatic code reviews for a pull request, add the following line +anywhere in the pull request description: -## Best Practices +```text +@coderabbitai ignore +``` -### Review Workflow +As long as that text remains in the description, CodeRabbit will not +automatically review any commits associated with that pull request. +You can still [chat with CodeRabbit](/guides/agent_chat) and issue other commands in the pull +request comments. -- Start with `@coderabbitai review` for checking new changes -- Use `@coderabbitai full review` when major changes require a fresh perspective -- Generate summaries after significant updates using `@coderabbitai summary` +To enable automatic reviews on that pull request, delete "`@coderabbitai ignore`" +from the pull request description. CodeRabbit commences automatic reviews starting with +the next commit made to the branch under review. -### Managing Large Changes +## Manually request code reviews {#request} -- Use `@coderabbitai pause` before making multiple commits -- Resume reviews with `@coderabbitai resume` when ready -- Consider `@coderabbitai full review` after substantial changes +You can ask CodeRabbit to perform a code review at any time. This can be useful +when you have paused automated code reviews. Manually requested reviews have +two types: -### Documentation Flow +- A _full review_ disregards any comments that CodeRabbit has already made + on this pull request, and generates a complete review of the entire pull request. -- Run `@coderabbitai generate docstrings` after finalizing function implementations -- Learn more about [docstring generation](/finishing-touches/docstrings) +- An _incremental review_ takes all comments that CodeRabbit has made since its most recent full review into consideration, and generates a review of only the new changes. -## Tips +To manually request a full review, post the following comment to the +pull request: -- Commands are case-insensitive (`@coderabbitai REVIEW` works the same as `@coderabbitai review`) -- Commands can be issued by anyone with write access to the repository -- Multiple commands can be used in sequence as needed -- Use `@coderabbitai configuration` to export your settings before making changes +```text +@coderabbitai full review +``` -## Command Response Time +To manually request an incremental review, post the following comment to the +pull request: -- Most commands (pause, resume, ignore) take effect immediately -- Review commands typically complete within a few minutes, depending on PR size -- Docstring generation time varies based on the number of functions +```text +@coderabbitai review +``` -## Troubleshooting +## Resolve comments {#resolve} -If a command doesn't seem to work: +To have CodeRabbit mark all of its previous comments as resolved, post the following comment to the +pull request: -1. Check that you have the necessary repository permissions -2. Verify the command syntax -3. Look for any response from CodeRabbit in the PR comments -4. Use `@coderabbitai help` for command guidance +```text +@coderabbitai resolve +``` -Need help? Join our community on [Discord](https://discord.gg/coderabbit) or contact our support team. +## Update information about the pull request {#update} + +The commands in this section request CodeRabbit to generate and post updated information +about the pull request itself. + +### Update the summary text {#summary} + +To have CodeRabbit update the generated summary of the branchโ€™s proposed changes +to the pull requestโ€™s description, post the following comment: + +```text +@coderabbitai summary +``` + +CodeRabbit updates the summary text to the description under the heading +"Summary by CodeRabbit". + +### Diagram the pull request history {#diagram} + +To have CodeRabbit post a comment that contains a sequence diagram which visualizes the +history of the pull request under review, post the following comment: + +```text +@coderabbitai generate sequence diagram +``` + +## Get information about CodeRabbit {#info} + +The commands in this section request CodeRabbit to display its own configuration +or documentation. + +### Display current configuration {#config} + +To have CodeRabbit post a comment listing out its current configuration +with your repository, post the following comment to the +pull request: + +```text +@coderabbitai configuration +``` + +### Display a quick-reference guide {#help} + +To have CodeRabbit post a comment to the pull request with a quick-reference +guide to its own commands and other features, post the following comment to the +pull request: + +```text +@coderabbitai help +``` + +## What's next {#whats-next} + +- [Generate code improvements](/guides/generate-improvements) +- [Best practices](/guides/code-review-best-practices) +- [Troubleshooting](/guides/code-review-troubleshooting) diff --git a/docs/guides/config-vscode.md b/docs/guides/config-vscode.md new file mode 100644 index 00000000..02f60d8c --- /dev/null +++ b/docs/guides/config-vscode.md @@ -0,0 +1,69 @@ +--- +title: Configure the VSCode extension +description: How to configure the CodeRabbit VSCode extension +--- + +This page is about configuring the CodeRabbit VSCode extension. For more information about the extension, see +[Review local changes](/code-editors). + +:::note +The instructions on this page are specific to using the extension with VSCode. If you are instead using a VSCode-compatible editor such as Cursor or Windsurf, then the steps that you need to follow are similar, but might require some adaptation. +::: + +## Find the settings screen {#find} + +To navigate to the settings screen for the CodeRabbit VSCode extension, follow these steps: + +1. Open the CodeRabbit activity bar/sidebar. + +1. In the sidebar, click on gear shaped icon on top right(beside logout icon). + +1. You can also search for CodeRabbit: Settings in the command palette to open the settings. + +The settings screen contains the following configuration controls. + +## Configure AI agent integration {#agent} + +The **Agent Type** setting lets you choose the extension's response to using the **Fix with AI** feature during code reviews. Your options are the following: + +- **Native**: The extension prompts the AI agent associated with your IDE to apply the suggested fix. + + This works only with VSCode, using Copilot. If you have this option selected when using a different IDE, then the extension instead copies the prompt to your clipboard. + +- **Claude Code**: The extension opens the Terminal pane of your IDE and tries to use the `claude` command-line program to apply the suggested fix to your code. You need to have Claude Code installed for this option to be effective. + +- **Codex CLI**: The extension opens the Terminal pane of your IDE and tries to use the `codex` command-line program to apply the suggested fix to your code. You need to have Codex CLI installed for this option to be effective. + +- **Cline**: The extension opens the `Cline` sidebar and runs a task to apply the suggested fix to your code. You need to have the `Cline` extension installed for this option to be effective. + +- **Roo**: The extension opens the `Roo` sidebar and runs a task to apply the suggested fix to your code. You need to have the `Roo` extension installed for this option to be effective. + +- **Kilo Code**: The extension opens the `Kilo Code` sidebar and runs a task to apply the suggested fix to your code. You need to have the `Kilo Code` extension installed for this option to be effective. + +- **Clipboard**: The extension copies prompt text describing the suggested fix to your clipboard. From there, you can manually paste the prompt into the coding AI agent that you use with your IDE. + +For more information about the **Fix with AI** feature, see [Request help from your AI coding agent](/guides/use-vscode#agent). + +## Configure automatic review behavior {#auto-reviews} + +The **Auto Review Mode** setting lets you control the behavior of the automatic code reviews that the extension can perform after you make commits to your local Git repository. Your options are the following: + +- **Disabled**: The extension doesn't perform automatic code reviews. + +- **Prompt**: After every commit, the extension displays a dialog asking if you'd like it to perform a code review. + +- **Auto**: The extension always performs a review after every commit. + +For more information about this feature, see [Automatically review local commits](/guides/use-vscode#auto-reviews). + +## Set a review timeout {#timeout} + +The **Review Timeout** setting lets you specify how long the extension waits for a response from CodeRabbit remote servers before timing out a code review. The default value is `20`. + +To turn off timeouts, set this value to `0`. + +## What's next {#whats-next} + +- [Use the VSCode extension](/guides/use-vscode) + +- [Uninstall the VSCode extension](/guides/uninstall-vscode) diff --git a/docs/guides/configuration-overview.md b/docs/guides/configuration-overview.md new file mode 100644 index 00000000..2a0dce54 --- /dev/null +++ b/docs/guides/configuration-overview.md @@ -0,0 +1,52 @@ +--- +title: Configure CodeRabbit +description: Learn the basics of configuring CodeRabbit for your organization. +sidebar_label: Overview +--- + +After you finish [integrating CodeRabbit with your Git platform](/platforms/), +you can configure CodeRabbit to best fit the needs of your Git platform's organization and repositories. + +## About CodeRabbit configuration + +CodeRabbit has [a lot of configuration options](/reference/configuration), with default settings that are designed to meet most needs. CodeRabbit is designed to work "out +of the box": if you don't change any of the +configuration settings away from the defaults, then CodeRabbit starts automatically +adding code reviews to new pull requests in your repositories. + +However, understanding how to configure CodeRabbit lets you tune its behavior +to the particulars of your team's code. A few advantages of manually configuring +CodeRabbit include the following: + +- Adjust the level of detail in CodeRabbit code reviews. +- Customize review instructions to meet your specific coding standards. +- Take advantage of agentic workflows that can speed up your review cycles. + +## Configuration methods {#methods} + +You can configure CodeRabbit in several ways, from global organization settings +down to configuration directives for specific repositories. + +### Organization settings {#org} + +If you want to apply the same CodeRabbit configuration to all of your organization's repositories, then +you can manage organizational settings using the CodeRabbit web UI. + +For more information, see [Set your organization preferences](/guides/organization-settings). + +### Repository settings {#repo} + +If you want to apply separate CodeRabbit configuration to your organization's different repositories, then you can +manage repository-specific CodeRabbit settings in two ways: + +- Add a `.coderabbit.yaml` file to the top level of your repository. +- Use the CodeRabbit web interface. + +For more information, see [Set your repository preferences](/guides/repository-settings). + +While the web interface provides and easier way to explore the available configuration options for your repository, we recommend using a `.coderabbit.yaml` file [as a best practice](/guides/setup-best-practices#yaml). + +## Initial configuration {#initial} + +The [Initial configuration guide](/guides/initial-configuration) tours you through several settings that we +recommend that you review after you set up CodeRabbit with your organization. diff --git a/docs/guides/custom-reports.md b/docs/guides/custom-reports.md index c006207a..a22b359e 100644 --- a/docs/guides/custom-reports.md +++ b/docs/guides/custom-reports.md @@ -11,6 +11,8 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; CodeRabbit Pro allows you to create custom reports tailored to your specific needs using a flexible prompt-based system. This guide will help you understand how to create effective custom reports. +For a conceptual overview of reports in CodeRabbit, see [Generate reports](/guides/reports-overview). + ## Understanding Custom Reports Custom reports allow you to: @@ -76,6 +78,11 @@ Contained within the `` tag. - `State`: string ("open"/"closed") - Current state of the PR - `Mergeable`: boolean (true/false) - Whether the PR can be merged - `Is stale`: boolean - Whether PR has been inactive for over 168 hours +- `PR Stage`: string - The current stage of open PRs in Open or Draft state, can be one of: + - "Needs Author Action" - PR requires author attention due to merge conflicts, draft status, or requested changes + - "Waiting for Author to Merge" - PR has approvals and is ready for author to merge + - "Waiting for Code Reviews" - PR is waiting for reviewers to approve + - undefined - PR is not in an open state (is merged or closed) #### Basic Information @@ -124,60 +131,65 @@ Generate a summary of each pull request in the following bullet point format: - If 'Merged: true' set 'PR State: ๐Ÿ”€ Merged' - Else If 'Draft: true' set 'PR State: ๐Ÿ“ Draft' - Else If 'State: open' or 'State: active' set 'PR State: ๐Ÿ’ฌ Open' - - Else If 'State: closed' and 'Merged: false' set 'PR State: ๐Ÿ”’ Closed' + - Else If 'State: closed' or 'State: DECLINED' and 'Merged: false' set 'PR State: ๐Ÿ”’ Closed' - Else set 'PR State: โ“ Unknown' - If the PR is stale, add 'โš ๏ธ Stale' at the end of the PR State. -- Mergeable (if PR State if not 'Merged'): Provide the mergeable status of the PR as 'Mergeable' or 'Not Mergeable'. +- Mergeable (if PR State is not 'Merged'): Provide the mergeable status of the PR as 'Mergeable' or 'Not Mergeable' based on the "Mergeable: " value. +- PR Stage (if PR State is not 'Merged'): Provide the stage of the PR based on the "PR Stage: " value. - Summary: In under 50 words provide a short summary of the PR. - Comments: In under 50 words provide a short summary of all comments found within , including each comments author username from . If there are no comments available, output 'No comments'. - **PR Link:** [#3001](https://github.com/mygithuborg/myrepo/pull/3001) -- **Title:** [PR Title] +- **Title:** PR Title - **PR State:** ๐Ÿ’ฌ Open - **Mergeable:** Mergeable -- **Summary:** [Summary of the PR]. -- **Comments:** [Summary of the PR comments]. +- **PR Stage:** Waiting for Code Reviews +- **Summary:** Summary of the PR. +- **Comments:** Summary of the PR comments or No comments. - **PR Link:** [#302](https://github.com/mygithuborg/thatrepo/pull/302) -- **Title:** [PR Title] +- **Title:** PR Title - **PR State:** ๐Ÿ’ฌ Open - **Mergeable:** Mergeable -- **Summary:** [Summary of the PR]. -- **Comments:** [Summary of the PR comments]. +- **PR Stage:** Waiting for Author to Merge +- **Summary:** Summary of the PR. +- **Comments:** Summary of the PR comments or No comments. - **PR Link:** [#3](https://github.com/mygithuborg/myotherrepo/pull/3) -- **Title:** [PR Title] +- **Title:** PR Title - **PR State:** ๐Ÿ”€ Merged -- **Summary:** [Summary of the PR]. -- **Comments:** [Summary of the PR comments]. +- **Summary:** Summary of the PR. +- **Comments:** Summary of the PR comments or No comments. - **PR Link:** [#14](https://github.com/mygithuborg/frontend/pull/14) -- **Title:** [PR Title] +- **Title:** PR Title - **PR State:** ๐Ÿ’ฌ Open - **Mergeable:** Mergeable -- **Summary:** [Summary of the PR]. -- **Comments:** [Summary of the PR comments]. +- **PR Stage:** Needs Author Action +- **Summary:** Summary of the PR. +- **Comments:** Summary of the PR comments or No comments. - **PR Link:** [#13005](https://github.com/mygithuborg/backend/pull/13005) -- **Title:** [PR Title] +- **Title:** PR Title - **PR State:** ๐Ÿ”€ Merged -- **Summary:** [Summary of the PR]. -- **Comments:** [Summary of the PR comments]. +- **Summary:** Summary of the PR. +- **Comments:** Summary of the PR comments or No comments. - **PR Link:** [#3006](https://github.com/mygithuborg/myrepo/pull/3006) -- **Title:** [PR Title] +- **Title:** PR Title - **PR State:** ๐Ÿ”€ Merged -- **Summary:** [Summary of the PR]. -- **Comments:** [Summary of the PR comments]. +- **Summary:** Summary of the PR. +- **Comments:** Summary of the PR comments or No comments. - **PR Link:** [#3007](https://github.com/mygithuborg/myrepo/pull/3007) -- **Title:** [PR Title] +- **Title:** PR Title - **PR State:** ๐Ÿ“ Draft - **Mergeable:** Not Mergeable -- **Summary:** [Summary of the PR]. -- **Comments:** [Summary of the PR comments]. +- **PR Stage:** Needs Author Action +- **Summary:** Summary of the PR. +- **Comments:** Summary of the PR comments or No comments. ``` @@ -283,6 +295,166 @@ Issues and tickets brings in conversations, descriptions, and comments from Jira - ``: markdown - The description of the issue. - ``: array of comment objects - Contains all the comments made on the issue. +#### Remove PRs without a "Score Card/Chart" bot comment + +This option gives you the ability to create a report limited only to pull requests containing a "Score Card" or "Score Chart" bot comment from CodeRabbit or other bots. To enable issues and tickets you must include the tag `` in your prompt. + +> **IMPORTANT:** This will automatically remove any pull requests from your reports if they do not contain a "Score Card" or "Score Chart" bot comment. Using this option without setting up a flow to create these comments will result in `No new pull request activity in the last XYZ hours` errors. Do not enable this option unless you have created a "Score Card" or "Score Chart" bot comment flow. + +For example you can ask coderabbit to check serveral conditions on a pull request and produce a "Score Chart": + +
+Click to view example User Score Card/Chart Comment: + +![Score Card/Chart Trigger Comment Example](/img/guides/score-card-trigger-comment.png) + +```markdown +@coderabbitai +Use the to guide the content of the summary. Use the format shown in <\_example> but do not include or refer to the example's content in the final summary/report. + + + +**Instructions:** +Generate a weekly code review report for the author of this pull request only following scoring parameters. Calculate the scores and compile the results into a table so that the team-wise average score can be easily determined. +**Scoring Parameters:** + +1. **Basic Code Standards (Score out of 2)** + + - Avoidance of hard-coded values + - No repetition of code (DRY principle) + +2. **Code Readability (Score out of 2)** + + - Presence of meaningful comments + - Proper variable declaration using `const` and `let` + +3. **Error Handling (Score out of 4)** + + - Handling failure scenarios (e.g., try-catch, fallbacks) + - Proper loading state implementation (e.g., button click loading states) + - Handling edge cases (e.g., checking for undefined or missing values) + - Input validation (ensuring correct user inputs) + +4. **Circle CI Check Validation (Score: 0 or 1)** + - `0` โ†’ Not Passed + - `1` โ†’ Passed + +**Final Score Calculation:** +Combine the scores from the parameters above to derive the final code quality score (out of 5). +**Output Format:** +Provide the final report in a table format with the following columns (use shorthand notations), be sure to include this list at the top above the chart in the "Column Notation" section so users understand what the columns mean: + +- **User Name (User)** +- **Basic Code Standards (BCS) (out of 2)** +- **Code Readability (CR) (out of 2)** +- **Error Handling (EH) (out of 4)** +- **Shopify Theme Check (CI) (out of 1)** +- **Final Code Quality Score (FCQS) (out of 9)** + + + +<\_example> + +## Column Notation + +- **User Name (User)** +- **Basic Code Standards (BCS) (out of 2)** +- **Code Readability (CR) (out of 2)** +- **Error Handling (EH) (out of 4)** +- **Shopify Theme Check (CI) (out of 1)** +- **Final Code Quality Score (FCQS) (out of 9)** + +## Score Chart + +| User | BCS (2) | CR (3) | EH (2) | CI (1) | FCQS (9) | +| -------- | ------- | ------ | ------ | ------ | -------- | +| John Doe | 2 | 3 | 2 | 1 | 9 | + + +``` + +
+ +Then CodeRabbit will reply with a score for you pull request: + +
+Click to view resulting Score Card/Chart bot comment: + +![CodeRabbit Score Card/Chart Result Comment Example](/img/guides/score-card-result-comment.png) + +
+ +You can then utilize this in a report. We recommend your report looks specifically for these score cards and puts together a unified report: + +
+Click to view example Report Prompt when using Score Card/Chart: + +![Report Example](/img/guides/score-card-report-result.png) + +![Where to put this prompt](/img/guides/where-score-report-prompt-go.png) + +Prompt Example: + +```markdown +Use the to guide the content of the summary. Use the format shown in but do not include or refer to the example's content in the final summary/report. + + +**Instructions:** + +Locate the score chart comment in the . There will be a single comment with data on these fields: + +- **User Name (User)** +- **Basic Code Standards (BCS) (out of 2)** +- **Code Readability (CR) (out of 2)** +- **Error Handling (EH) (out of 4)** +- **Shopify Theme Check (CI) (out of 1)** +- **Final Code Quality Score (FCQS) (out of 9)** + +These details may also be in the form of a chart such as: + +## Score Chart + +| User | BCS (2) | CR (3) | EH (2) | CI (1) | FCQS (9) | +| -------- | ------- | ------ | ------ | ------ | -------- | +| John Doe | 2 | 3 | 2 | 1 | 9 | + +You will create a new chart averaging all the values from various pull requests for each author. Only include pull requests with a `Score Chart`. Do not invent or create score charts if none exist. + + + + + +## Column Notation + +- **User Name (User)** +- **Basic Code Standards (BCS) (out of 2)** +- **Code Readability (CR) (out of 2)** +- **Error Handling (EH) (out of 4)** +- **Shopify Theme Check (CI) (out of 1)** +- **Final Code Quality Score (FCQS) (out of 9)** + +## Score Chart + +| User | BCS (2) | CR (3) | EH (2) | CI (1) | FCQS (9) | PR URL | +| -------- | ------- | ------ | ------ | ------ | -------- | ------ | +| John Doe | 2 | 3 | 2 | 1 | 9 | URL | +| Alex Foo | 2 | 3 | 2 | 1 | 9 | URL | + + + + +``` + +
+ +**Best Practices for Score Cards/Charts:** + +- The reporting bot only has access to your comments and summary (like a project manager) if you want to make a report looking for these score card/chart comments make sure the reviewer does this ahead of time. +- Only include checks for very specific scenarios, such as a specific check failing or using tabs vs spaces. +- Do not use general rules without explaining specifically what they mean. If you add "Insure the pull request follows development best practices" you must define what "development best practices" actually mean or the AI will guess. +- Make one point for each specific check and make sure its a True/False condition. +- Instead of manually commenting on pull requests you can use the [Github Actions Bot](https://github.com/marketplace/actions/create-or-update-comment) to automatically comment on pull requests and trigger coderabbit score card/chart comments by including `@coderabbit` in the comment. + ## Best Practices 1. **Be Specific** @@ -548,6 +720,6 @@ These are the available emojis and the type of change they represent. Do not usi ## Related Resources -- [Scheduled Reports](./scheduled-reports.md) -- [On-demand Reports](./ondemand-reports.md) +- [Schedule reports](/guides/scheduled-reports) +- [Generate reports on demand](/guides/ondemand-reports) - [API Documentation](https://api.coderabbit.ai/api/swagger/) diff --git a/docs/guides/generate-improvements.md b/docs/guides/generate-improvements.md new file mode 100644 index 00000000..d194a7dd --- /dev/null +++ b/docs/guides/generate-improvements.md @@ -0,0 +1,102 @@ +--- +title: Generate improvements +description: Request coderabbit to generate its own code improvements during code reviews +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +This page is about using CodeRabbit to generate improvements to code under review. + +For a general overview of performing code reviews with CodeRabbit, see [Review pull requests](/guides/code-review-overview). + +## Overview of CodeRabbit code generation {#overview} + +:::note +This feature is available only on GitHub. +::: + +You can request CodeRabbit to generate improvements to a branch that it is currently reviewing. + +To do this, write out your request prompt in a comment addressed to `@coderabbitai`, +such as with the following examples: + +- `@coderabbitai Please implement the changes you suggested in your code review.` +- `@coderabbitai Add input validation with proper error messages to these new functions.` +- `@coderabbitai Break this large function into smaller, more focused methods.` + +In addition to this kind of free-form request, you can also give CodeRabbit keyword-based +commands for common code-generation requests, as described in [Code generation commands](#commands). +This includes the `plan` keyword, which acts as shorthand for the first prompt on the +previous list. + +After you give it a code-generation prompt or command, CodeRabbit delivers its suggested improvements by taking these steps: + +1. CodeRabbit posts a comment or two to the pull request, detailing its improvement plans. +1. CodeRabbit publishes a new branch, based on the open pull request's branch, to the remote repository. +1. CodeRabbit opens a new pull request based on this new branch, and links to it from the original pull request. + +CodeRabbit doesn't make any further changes to the new branch or to the new pull request +after it creates them. From that point on, it's fully up to you what to do with the new, suggested-change branch. + +The best practice is to effectively take ownership of the new branch for yourself, +deciding whether it's worth merging into the original pull request branch, and making +any further updates you'd like to make first. You can use comments in the new branch +to ask CodeRabbit to explain its changes, if needed, or to otherwise converse with +CodeRabbit about the suggested improvements. + +Because it's just an ordinary Git branch, the presence of the suggested-change branch +doesn't block the ongoing code review in the original pull request branch. You are +free to merge, defer, or close the suggested-change pull request that CodeRabbit made, using any method or timing that fits +your workflow. + +## Code generation commands {#commands} + +This section lists short commands that you can give CodeRabbit to have it accomplish +common code-generation tasks. For more complex tasks, you can instead write out full +prompts, as described in the previous section. + +For a complete CodeRabbit command reference, see [Code review command reference](/reference/review-commands). + +### Generate inline documentation {#docstrings} + +To have CodeRabbit generate missing documentation for function code added by +the pull request, post the following comment to the +pull request: + +```text +@coderabbitai generate docstrings +``` + +For more information about how CodeRabbit can generate inline documentation, including +the Git platforms and programming languages that this feature supports, see +[Docstrings](/finishing-touches/docstrings). + +### Generate solutions to open review comments {#plan} + +To have CodeRabbit generate and add a new repository branch with code improvements +that try to address its own code review comments, post the following comment to the +pull request: + +```text +@coderabbitai plan +``` + +Using this keyword is essentially shorthand for writing out a prompt like the following: + +```text +@coderabbitai Implement the changes that you suggested and apply them to this pull request. +``` + +If you want to give CodeRabbit more specific implement instructions other than a general +request to implement its own suggestions, then you can write out those instructions +as a full prompt, instead of using the one-word `plan` command. + +## What's next {#whats-next} + +- [Control and manage code reviews](/guides/commands) +- [Best practices](/guides/code-review-best-practices) +- [Troubleshooting](/guides/code-review-troubleshooting) diff --git a/docs/guides/initial-configuration.md b/docs/guides/initial-configuration.md new file mode 100644 index 00000000..e702b081 --- /dev/null +++ b/docs/guides/initial-configuration.md @@ -0,0 +1,200 @@ +--- +title: Initial configuration guide +description: A tour through some initial configuration setup. +--- + +This page provides a tour through a selection of key CodeRabbit configuration options. + +For a general overview of how configuration in CodeRabbit works, see [Configure CodeRabbit](/guides/configuration-overview). For an exhaustive reference of all configuration options, see [Configuration reference](/reference/configuration). + +## How to use this guide {#use} + +This guide walks you through several CodeRabbit configuration options that you +can set in order to tune CodeRabbit code review behavior for your repositories. + +The default behavior and settings of CodeRabbit +works for most repositories, in most situations. However, becoming familiar with +the key settings described by this page can help you tune the behavior of +CodeRabbit for the specific needs of your team. You can use this guide when initially setting up your organization and repositories with CodeRabbit, or you can return to it after using CodeRabbit +for a while, when you feel ready to customize its behavior. + +Each section in the guide links to specific entries in the configuration reference. Each entry in the linked reference specifies the location of its configuration setting, in either the CodeRabbit web UI or your `.coderabbit.yaml` file. + +## Data retention and knowledge base settings {#data-retention} + +These settings help you control how much data about your code that CodeRabbit retains. +CodeRabbit temporarily stores information about your repositories in order to tailored reviews more quickly and better tailored to your team's needs. You can opt of these features if your organization has stricter data-retention policies. + +For more information about CodeRabbit data-retention policies, see +[Data privacy and security](/#data-privacy-and-security). + +### Enable or disable data retention globally {#data-retention-setting} + +:::note +This setting is available only at the organization level, and not per-repository. +::: + +Your CodeRabbit organization has a data-retention setting which acts as a master-switch to all CodeRabbit features that require it to store its own data about your repositories. If you disable data retention, then none of your repositories can use knowledge base or caching features, even if you configure those repositories to enable them. + +We recommend leaving this on. However, if your use of CodeRabbit requires strict data retention policy, then you can turn this off. + +For more information, see +[Data retention](/reference/configuration#data-retention) in the configuration reference. + +### Configure cache use {#cache} + +By default, CodeRabbit keeps a temporary cache of data about your repository in order to make subsequent code reviews faster. If this conflicts with your organization's data-retention policies, then you can disable this feature. + +For more information, see +[Disable cache](/reference/configuration#disable-cache) in the configuration reference. + +### Configure knowledge base retention {#opt-out} + +By default, CodeRabbit keeps its own [_knowledge base_](/integrations/knowledge-base): a store of metadata about your repositories, your team's history of pull requests, linked issues, and learnings about how CodeRabbit should tailor its own review behavior to best serve your team. If this long-term knowledge base storage conflicts with your organization's data-retention policies, then you can disable this feature. + +For more information, see +[Opt out](/reference/configuration#opt-out) in the configuration reference. + +### Configure learnings {#learnings} + +CodeRabbit learns your team's review preferences by letting you [teach it your preferences in plain language during code reviews](/integrations/knowledge-base#learnings). CodeRabbit remembers these preferences, and applies them to subsequent code reviews in the same repository. + +This setting lets you set the scope of which stored learnings that CodeRabbit should apply to its code reviews. For more information, see [Learnings](/reference/configuration#learnings) in the configuration reference. + +## Tune the length of code reviews {#content} + +By default, CodeRabbit writes thorough code reviews with several sub-sections. If you'd rather have CodeRabbit generated shorter reviews then you can change some of the following settings: + +- [Collapse walkthrough](/reference/configuration#collapse-walkthrough): wraps the detailed summary of proposed changes in collapsed-but-expandable container. (Off by default.) +- [Changed files summary](/reference/configuration#changed-files-summary): lists of files affected by this pull request. +- [Sequence diagrams](/reference/configuration#sequence-diagrams): includes a visual diagram of object interactions. +- [Assess linked issues](/reference/configuration#assess-linked-issues): assesses how well the pull request addresses any linked issues. +- [Related issues](/reference/configuration#related-issues): lists issues found in your issue tracker that might be related to this pull request. +- [Related pull requests](/reference/configuration#realted-prs): lists pull requests that might be related to this pull request. +- [Suggested labels](/reference/configuration#suggested-labels): Suggests labels for this pull request. +- [Suggested reviewers](/reference/configuration#suggested-reveiwers): automatically suggest reviewers for PR +- [Poem](/reference/configuration#poem): generates a short poem about this pull request. + +## Adjust path-specific CodeRabbit behavior {#path} + +You can give CodeRabbit additional instructions for reviewing specific files or +locations in your repository, or configure CodeRabbit to disregard certain file paths +during code reviews. + +For an overview about using path-based instructions in CodeRabbit, see [Path-based instructions](/guides/review-instructions#path-based). + +### Add path filters {#filters} + +If your repository contains files or locations that CodeRabbit should disregard when preparing code reviewsโ€”or you want CodeRabbit to limit its consideration to only certain filesโ€”then you can define one or more _path filters_. Adding path filters to a large repository containing a lot of data, generated files, or other non-code content can let CodeRabbit work faster. + +For example, the following `.coderabbit.yaml` excerpt instructs CodeRabbit to take review context only the contents of directories named `src/` in your repository, while disregarding any individual files with `.bin` or `.csv` extensions. + +```yaml +path_filters: + - "!**/*.bin" + - "!**/*.csv" + - "**/src/**" +``` + +For more information, see [Path filters](/reference/configuration#path-filters) in the CodeRabbit configuration reference. + +### Add general path instructions {#review-path} + +You can set _path instructions_ that provide CodeRabbit with additional review instructions for various files or locations in your repository. Each path instruction specifies a path specification and a set of instructions, the latter of which you express using natural language. + +For example, to give CodeRabbit review instructions specific to JavaScript and TypeScript files, you can add a section like this to your repository's `.coderabbit.yaml` file: + +```yaml +path_instructions: + - path: `src/**/*.{ts,tsx,js}` + instructions: "Review the React.js, TypeScript, JavaScript code for best practices. Check for common security vulnerabilities, such as SQL injection, insecure dependencies, and sensitive data exposure." +``` + +For more information, see [Path instructions](/reference/configuration#path-instructions) in the configuration reference. + +### Add documentation or unit-test path instructions {#doc-path} + +Similar to the general path instructions described by the previous section, you +can define path-based instructions that direct CodeRabbit to generate inline +documentation or unit tests, with specific instructions associated with different +locations or filenames. + +For more information, see [Docstrings](/reference/configuration#docstrings) and [Unit tests](/reference/configuration#unit-tests) in the configuration reference. + +## Set Automatic review behavior {#auto} + +By default, CodeRabbit automatically generates incremental code reviews for every new or updated pull request made against a repository's default branch. These settings listed in this section let you tune the behavior. + +### Configure incremental reviews {#incremental} + +By default, CodeRabbit generates a new automated review comment every time the branch of an existing pull request gets an additional commit pushed to it. + +If you want to limit CodeRabbit to posting only an initial automated review for a new pull request, with no automated response to further updates, then you can turn off this incremental-review behavior. If you do turn it off, then you can still [manually request reviews](/guides/commands#request). + +For more information, see [Automatic incremental review](/reference/configuration#automatic-incremental-review) in the configuration reference. + +### Restrict automatic reviews to certain labels {#labels} + +If you want to be choosier about which pull requests CodeRabbit should automatically review, then you can restrict it to review only pull requests that you mark with certain labels. + +For more information, see [Labels](/reference/configuration#labels) in the configuration reference. + +### Automatically review more branches {#branches} + +If you want CodeRabbit to extend its automatic-review attention beyond the default branch of your repositoryโ€”that is, `main` or `master`, usuallyโ€”then you can give CodeRabbit a list of other branches that it is allowed to review. + +For more information, see [Base branches](/reference/configuration#base-branches) in the configuration reference. + +## Configure tools {#tools} + +CodeRabbit has access to dozens of industry-standard open-source tools to help it perform its code reviews. These tools include a variety of linters, security analyzers, and other utilities. For a full list, see [List of supported tools](/tools/list). CodeRabbit chooses which tools to apply to a given code review on a case-by-case basis. + +By default, CodeRabbit considers every tool available to it during code reviews. If you want CodeRabbit to disregard certain tools, then you can disable them. + +Several tools that CodeRabbit uses also allow you to specify a path to a tool-specific configuration file in your repository. For example, the following `.coderabbit.yaml` excerpt directs CodeRabbit to use configuration files in the repository's `/pmd-config` directory when using the `pmd` tool: + +```yaml +reviews: + tools: + pmd: + enabled: true + config_file: /pmd-config/*.yml +``` + +For more information, see [Tools](/reference/configuration#tools) in the configuration reference. + +## Other code review settings {#other} + +### Adjust code-review strictness {#profile} + +If you want CodeRabbit to apply a much stricter and more nitpicky stance to its code reviews, then you can switch its _profile_ setting from `chill` to `assertive`. + +CodeRabbit is aware of nitpickier output from the linters and other tools that it applies to code reviews, but includes less of it in its own review comments when the profile is set to `chill`. To have CodeRabbit include more nitpicky tool output in reviews, use the `assertive` profile. + +For more information, see [Profile](/reference/configuration#profile) in the configuration reference. + +### Configure pull request approval {#request-changes} + +By default, CodeRabbit doesn't mark pull requests as approved after any code review, even if CodeRabbit doesn't have any further significant changes to suggest. This leaves the job of formal pull request approval entirely up to human reviewers. + +If you want to allow CodeRabbit to mark pull requests as approved, then you can enable the _request changes workflow_ setting. If you do, then CodeRabbit can approve pull requests after it reviewed a pull request and had all of its comments resolved. + +This can be useful if you have a workflow that requires several reviewers to approve a pull request before anyone can merge it. For example, if you have configured your repository on your Git platform to require two approvals for any pull request, then activating this CodeRabbit setting lets you merge a pull request after approval from CodeRabbit plus one human reviewer. This can help reduce your team's code-review load. + +:::note +We recommend a policy of always requiring the approval of at least one human reviewer, even if you allow CodeRabbit to approve pull requests. As with an generative AI technology, CodeRabbit works best as a helpful partner to your team, and not as a replacement for human expertise or judgment. +::: + +For more information, see [Request Changes Workflow](/reference/configuration#request-changes-workflow) in the configuration reference. + +### Configure chat-based issue creation {#chat-issues} + +You can [ask CodeRabbit to create issues for you](https://docs.coderabbit.ai/guides/issue-creation) in the comments of a pull request that it's reviewing. + +If you have integrated CodeRabbit with Jira or Linear, then you can tune this behavior a little more, restricting this feature to private repositoriesโ€”the default settingโ€”or disabling it entirely. + +For more information, see [Integrations](/reference/configuration#integrations) in the configuration reference. + +## What's next {#whats-next} + +- [Setup and configuration best practices](/guides/setup-best-practices) diff --git a/docs/guides/install-vscode.md b/docs/guides/install-vscode.md new file mode 100644 index 00000000..03dfa98c --- /dev/null +++ b/docs/guides/install-vscode.md @@ -0,0 +1,63 @@ +--- +title: Install the VSCode extension +description: How to install the CodeRabbit VSCode extension +--- + +This page is about installing the CodeRabbit VSCode extension. For more information about the extension, see +[Review local changes](/code-editors). + +:::note +The instructions on this page are specific to using the extension with VSCode. If you are instead using a VSCode-compatible editor such as Cursor or Windsurf, then the steps that you need to follow are similar, but might require some adaptation. +::: + +## Before you begin + +Before you can use the CodeRabbit VSCode extension, you need a CodeRabbit account. + +If you don't already have an account, you can create one by visiting [the CodeRabbit login page](https://app.coderabbit.ai/login?free-trial). + +## Install the extension + +To install the CodeRabbit extension, follow these steps: + +1. In the editor activity bar, click **Extensions**. + +1. In sidebar, type `coderabbit` into the **Search Extensions in Marketplace** search bar. After a moment, **CodeRabbit** appears in the sidebar as a search result. + +1. Select **CodeRabbit**. A summary of the CodeRabbit VSCode extension appears in the window's main pane, along with installation controls. + +1. If you would like your editor to automatically check for and apply future updates to the extension, then keep the **Auto Update** checkbox selected. Otherwise, clear the checkbox. + +1. Click **Install**. + +1. A **Log in to CodeRabbit to get started** dialog appears. Click **Login**. If the dialog gets dismissed or times out first, then you can follow these alternate steps: + + 1. Click the CodeRabbit icon in the VSCode activity bar. + + 1. Click the **Use CodeRabbit for Free** button. + +1. Grant VSCode permission to open your browser, if asked. + +1. In your web browser, log into your CodeRabbit account. + +1. After signing in, the browser will redirect you back to VSCode. If the redirect does not occur, follow these steps: + + 1. Copy the code displayed in the success window. + + 2. Click **Paste code from browser**. + + 3. Paste the code into the input field that appears. + +This connects your CodeRabbit account with the CodeRabbit VSCode extension. + +## Install using the marketplace website + +If you are using the VSCode IDE, and not an IDE that derives from it such as Cursor or Windsurf, then you can alternatively obtain and install the CodeRabbit VSCode extension by visiting [the extension's page on the Visual Studio Marketplace](https://coderabbit.link/vscode-docs). + +If you do install the extension this way, then you still need to connect your CodeRabbit account to the extension after installing it, as described in the previous section. + +## What's next + +- [Use the VSCode extension](/guides/use-vscode) + +- [Configure the VSCode extension](/guides/config-vscode) diff --git a/docs/guides/linked-issues.md b/docs/guides/linked-issues.md index b8768c3d..b802cb3b 100644 --- a/docs/guides/linked-issues.md +++ b/docs/guides/linked-issues.md @@ -168,6 +168,6 @@ Only the issue title and description are considered in the assessment. Comments ## Related Resources -- [Review Instructions](./review-instructions.md) +- [Add review instructions](/guides/review-instructions) - [Issue Chat](./issue-chat.md) - [Issue Creation](./issue-creation.md) diff --git a/docs/guides/ondemand-reports.md b/docs/guides/ondemand-reports.md index 41dbe9bb..ee385622 100644 --- a/docs/guides/ondemand-reports.md +++ b/docs/guides/ondemand-reports.md @@ -1,5 +1,5 @@ --- -title: Generate reports +title: Generate reports on demand description: CodeRabbit offers a way to generate on-demand reports using a simple API request --- @@ -12,13 +12,9 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; ## Overview -CodeRabbit's reporting feature helps you track and analyze pull request activity across your repositories. There are two ways to generate reports: +This page is about using the CodeRabbit API to generate on-demand reports about your organization's usage of CodeRabbit. For a conceptual overview of reports in CodeRabbit, see [Generate reports](/guides/reports-overview). -1. **[Scheduled Reports](./scheduled-reports.md)** - Set up automated recurring reports that are delivered on a schedule to your preferred channels (email, Slack, MS Teams). This is the recommended way to keep your team informed about development progress. - -2. **On-demand Reports** (this guide) - Generate reports programmatically through our API when you need them. This is useful for integration with your own tools and workflows. - -If you're new to CodeRabbit's reporting features, we recommend starting with [Scheduled Reports](./scheduled-reports.md) to understand the available options and capabilities. +If you're new to CodeRabbit's reporting features, then we recommend starting with [Scheduled reports](/guides/scheduled-reports) to understand the available options and capabilities. ## API Access @@ -73,3 +69,8 @@ The on-demand report generation endpoints take in inputs as per the schema shown ``` [API Reference](https://api.coderabbit.ai/api/swagger/) + +## What's next + +- [Customize reports](/guides/custom-reports) +- [Scheduled reports](/guides/scheduled-reports) diff --git a/docs/guides/organization-settings.md b/docs/guides/organization-settings.md new file mode 100644 index 00000000..5b00d77d --- /dev/null +++ b/docs/guides/organization-settings.md @@ -0,0 +1,30 @@ +--- +title: Set your organization preferences +description: Learn the basics of configuring CodeRabbit for your organization. +--- + +This page is about managing the default settings of CodeRabbit across your +whole Git platform organization. + +For a general overview of configuring CodeRabbit, see [Configure CodeRabbit](/guides/configuration-overview). + +## About organization settings {#about} + +You can use the CodeRabbit web interface to set the CodeRabbit configuration +for all of the Git repositories associated with your organization. By default, all of your repositories apply your organization's CodeRabbit configuration. + +You have the option to define separate settings for some or +all of your individual repositories, instead. For more information, see [Set your repository preferences](/guides/repository-settings). + +## Browse and modify your organization settings {#modify} + +To view or modify your organizational settings, follow these steps: + +1. Visit [the CodeRabbit web interface](https://app.coderabbit.ai/settings/repositories). +1. In the sidebar, click **Organization Settings** > **Configuration**. +1. Browse and modify the settings as needed. If you do make changes, click **Apply Changes** when you are finished. + +## What's next {#whats-next} + +- [Initial configuration guide](/guides/initial-configuration) +- [Configuration best practices](/guides/setup-best-practices#configuration) diff --git a/docs/guides/reports-overview.md b/docs/guides/reports-overview.md new file mode 100644 index 00000000..4d8759ed --- /dev/null +++ b/docs/guides/reports-overview.md @@ -0,0 +1,38 @@ +--- +title: Generate reports +description: Learn about CodeRabbit's reporting capabilities, including scheduled and on-demand reports, and how to customize them +sidebar_label: Overview +--- + +```mdx-code-block +import ReportSchema from "@site/src/components/ReportSchema"; +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +You can track and analyze pull request activity across your organization's repositories by using the CodeRabbit reporting feature. + +## Scheduled and on-demand reports {#types} + +There are two ways to generate reports: + +- **[Scheduled Reports](/guides/scheduled-reports)**: Set up automated, recurring reports that are delivered to your team on a set schedule. Supported delivery channels include the following: + + - Email + - Discord + - Slack + - Teams + +- **[On-demand Reports](/guides/ondemand-reports)**: If you require customized integration of reports with your own tools and workflows, then you can generate reports programmatically through our API. + +For your first reports, we recommend exploring scheduled reports. Its web-based UI can help you get familiar with the options available to you. + +## Customize reports using natural language {#customize} + +For both scheduled and on-demand reports, you define the shape and content of your reports by providing a prompt that instructs CodeRabbit about report that you want, using natural language. The scheduled reports interface includes several example prompts that you can choose from, or you can write your own prompt. For more information, see [Customize reports](/guides/custom-reports). + +## What's next {#whats-next} + +- [Schedule reports](/guides/scheduled-reports) +- [Generate reports on demand](/guides/ondemand-reports) diff --git a/docs/guides/repository-settings.md b/docs/guides/repository-settings.md new file mode 100644 index 00000000..34ca9d56 --- /dev/null +++ b/docs/guides/repository-settings.md @@ -0,0 +1,43 @@ +--- +title: Set your repository preferences +description: Learn the basics of configuring CodeRabbit for your repository. +--- + +This page is about managing the settings of CodeRabbit for your +Git repository. For a general overview of configuring CodeRabbit, see [Configure CodeRabbit](/guides/configuration-overview). + +## About repository settings {#about} + +CodeRabbit provides two ways to manage its code-review behavior with each of your organization's repositories: + +- Add a `.coderabbit.yaml` file to your repository. +- View or modify your per-repository settings using the CodeRabbit web interface. + +If your repository contains a `.coderabbit.yaml` file at the top level of its default branch, +then CodeRabbit applies all of its settings to that repository's code reviews. CodeRabbit applies its own default values to any configuration settings not defined by your `.coderabbit.yaml` file. + +If your repository doesn't have a `.coderabbit.yaml` file, then CodeRabbit applies the configuration from the CodeRabbit web interface, instead. + +While the web interface provides an easier way to explore the available configuration options for your repository, we recommend using a `.coderabbit.yaml` file [as a best practice](/guides/setup-best-practices#yaml). + +## Configure your repository with `.coderabbit.yaml` + +To add a `.coderabbit.yaml` file to your repository, merge a copy of [our template configuration file](/reference/yaml-template) +to the top level of your default branch. From there, you can update your repository's CodeRabbit configuration by updating the `.coderabbit.yaml` file exactly as you would any other text file in your repository. + +For more information about the `.coderabbit.yaml` file, see [Add a configuration file](/getting-started/configure-coderabbit). + +## Browse and modify your settings using the web interface {#modify} + +To view or modify your repository settings using the CodeRabbit web interface, follow these steps: + +1. Visit [the CodeRabbit web interface](https://app.coderabbit.ai/settings/repositories). +1. In the sidebar, click **Repositories**. +1. Click the gear-shaped **Settings** icon of the repository whose settings you want to view or modify. +1. If the **Use Organization Settings** toggle is on, then click it to turn it off. If you leave it on, then CodeRabbit applies the settings you have set through [the organization-configuration page](/guides/organization-settings) to this repository. +1. Browse and modify the settings as needed. If you do make changes, click **Apply Changes** when you are finished. + +## What's next {#whats-next} + +- [Initial configuration guide](/guides/initial-configuration) +- [Configuration best practices](/guides/setup-best-practices#configuration) diff --git a/docs/guides/review-instructions.md b/docs/guides/review-instructions.md index d756e938..d74024de 100644 --- a/docs/guides/review-instructions.md +++ b/docs/guides/review-instructions.md @@ -1,11 +1,9 @@ --- -title: Review Instructions -sidebar_label: Review Instructions +title: Add review instructions description: CodeRabbit offers various customization options to tailor the reviews to your specific requirements. Customizations can be made using one of the below options. -sidebar_position: 2 --- The guide explains how to add custom review instructions for the entire project. @@ -21,6 +19,225 @@ instructions besides the standard review. > For example, you may want to enforce a style guide by file types or directories. +### Default Blocked Paths + +By default, CodeRabbit blocks certain file paths and extensions from being reviewed. If you want CodeRabbit to review any of these blocked paths, you can explicitly include them in your Path Filters configuration. + +
+View complete list of default blocked paths + +The following paths are blocked by default, grouped by category: + +#### Build and Dependency Directories + +| Path Pattern | Description | +| --------------------- | -------------------------- | +| `!**/dist/**` | Build output directory | +| `!**/node_modules/**` | Node.js dependencies | +| `!**/.svelte-kit/**` | SvelteKit build directory | +| `!**/.webpack/**` | Webpack build directory | +| `!**/.yarn/**` | Yarn cache directory | +| `!**/.docusaurus/**` | Docusaurus build directory | +| `!**/.temp/**` | Temporary files directory | +| `!**/.cache/**` | Cache directory | +| `!**/.next/**` | Next.js build directory | +| `!**/.nuxt/**` | Nuxt.js build directory | + +#### Lock Files + +| Path Pattern | Description | +| ----------------------- | ------------------ | +| `!**/package-lock.json` | npm lock file | +| `!**/yarn.lock` | Yarn lock file | +| `!**/pnpm-lock.yaml` | pnpm lock file | +| `!**/bun.lockb` | Bun lock file | +| `!**/*.lock` | Generic lock files | + +#### Generated Code + +| Path Pattern | Description | +| ---------------------- | -------------------------------------- | +| `!**/generated/**` | Generated code directory | +| `!**/@generated/**` | Generated code directory (alternative) | +| `!**/__generated__/**` | Generated code directory (alternative) | +| `!**/__generated/**` | Generated code directory (alternative) | +| `!**/_generated/**` | Generated code directory (alternative) | +| `!**/gen/**` | Generated code directory (alternative) | +| `!**/@gen/**` | Generated code directory (alternative) | +| `!**/__gen__/**` | Generated code directory (alternative) | +| `!**/__gen/**` | Generated code directory (alternative) | +| `!**/_gen/**` | Generated code directory (alternative) | + +#### Binary and Compiled Files + +| Path Pattern | Description | +| ------------- | ----------------------- | +| `!**/*.app` | Application bundle | +| `!**/*.bin` | Binary file | +| `!**/*.class` | Java compiled class | +| `!**/*.dll` | Windows dynamic library | +| `!**/*.dylib` | macOS dynamic library | +| `!**/*.exe` | Windows executable | +| `!**/*.o` | Object file | +| `!**/*.so` | Shared object file | +| `!**/*.wasm` | WebAssembly file | + +#### Archives and Compressed Files + +| Path Pattern | Description | +| ------------ | ----------------------- | +| `!**/*.bz2` | Bzip2 archive | +| `!**/*.gz` | Gzip archive | +| `!**/*.xz` | XZ archive | +| `!**/*.zip` | ZIP archive | +| `!**/*.7z` | 7-Zip archive | +| `!**/*.rar` | RAR archive | +| `!**/*.zst` | Zstandard archive | +| `!**/*.tar` | TAR archive | +| `!**/*.jar` | Java archive | +| `!**/*.war` | Web application archive | +| `!**/*.nar` | NAR archive | + +#### Media Files + +| Path Pattern | Description | +| ------------ | --------------- | +| `!**/*.mp3` | MP3 audio | +| `!**/*.wav` | WAV audio | +| `!**/*.wma` | WMA audio | +| `!**/*.mp4` | MP4 video | +| `!**/*.avi` | AVI video | +| `!**/*.mkv` | MKV video | +| `!**/*.wmv` | WMV video | +| `!**/*.m4a` | M4A audio | +| `!**/*.m4v` | M4V video | +| `!**/*.3gp` | 3GP video | +| `!**/*.3g2` | 3G2 video | +| `!**/*.rm` | RealMedia video | +| `!**/*.mov` | QuickTime video | +| `!**/*.flv` | Flash video | +| `!**/*.swf` | Flash animation | +| `!**/*.flac` | FLAC audio | +| `!**/*.ogg` | OGG audio | + +#### Images and Fonts + +| Path Pattern | Description | +| ------------- | ---------------------- | +| `!**/*.ico` | Icon file | +| `!**/*.svg` | SVG image | +| `!**/*.jpeg` | JPEG image | +| `!**/*.jpg` | JPEG image | +| `!**/*.png` | PNG image | +| `!**/*.gif` | GIF image | +| `!**/*.bmp` | BMP image | +| `!**/*.tiff` | TIFF image | +| `!**/*.webm` | WebM image | +| `!**/*.ttf` | TrueType font | +| `!**/*.otf` | OpenType font | +| `!**/*.woff` | Web Open Font Format | +| `!**/*.woff2` | Web Open Font Format 2 | +| `!**/*.eot` | Embedded OpenType font | + +#### Documents and Data Files + +| Path Pattern | Description | +| --------------- | ----------------------- | +| `!**/*.pdf` | PDF document | +| `!**/*.doc` | Word document | +| `!**/*.docx` | Word document | +| `!**/*.xls` | Excel spreadsheet | +| `!**/*.xlsx` | Excel spreadsheet | +| `!**/*.ppt` | PowerPoint presentation | +| `!**/*.pptx` | PowerPoint presentation | +| `!**/*.csv` | CSV data file | +| `!**/*.tsv` | TSV data file | +| `!**/*.dat` | Data file | +| `!**/*.db` | Database file | +| `!**/*.parquet` | Parquet data file | + +#### Development and System Files + +| Path Pattern | Description | +| -------------------- | ------------------- | +| `!**/tags` | Tags file | +| `!**/.tags` | Tags file | +| `!**/TAGS` | Tags file | +| `!**/.TAGS` | Tags file | +| `!**/.DS_Store` | macOS system file | +| `!**/.cscope.files` | Cscope files | +| `!**/.cscope.out` | Cscope output | +| `!**/.cscope.in.out` | Cscope input/output | +| `!**/.cscope.po.out` | Cscope output | +| `!**/*.log` | Log file | +| `!**/*.map` | Source map | +| `!**/*.out` | Output file | +| `!**/*.sum` | Checksum file | +| `!**/*.work` | Work file | +| `!**/*.md5sum` | MD5 checksum file | + +#### Game and 3D Assets + +| Path Pattern | Description | +| ------------------- | ---------------------- | +| `!**/*.tga` | Targa image | +| `!**/*.dds` | DirectDraw surface | +| `!**/*.psd` | Photoshop document | +| `!**/*.fbx` | FBX 3D model | +| `!**/*.obj` | OBJ 3D model | +| `!**/*.blend` | Blender file | +| `!**/*.dae` | COLLADA 3D model | +| `!**/*.gltf` | GL Transmission Format | +| `!**/*.hlsl` | HLSL shader | +| `!**/*.glsl` | GLSL shader | +| `!**/*.unity` | Unity scene | +| `!**/*.umap` | Unreal map | +| `!**/*.prefab` | Unity prefab | +| `!**/*.mat` | Material file | +| `!**/*.shader` | Shader file | +| `!**/*.shadergraph` | Shader graph | +| `!**/*.sav` | Save file | +| `!**/*.scene` | Scene file | +| `!**/*.asset` | Asset file | + +#### Python-specific Files + +| Path Pattern | Description | +| -------------- | --------------------- | +| `!**/*.pyc` | Python compiled file | +| `!**/*.pyd` | Python dynamic module | +| `!**/*.pyo` | Python optimized file | +| `!**/*.pkl` | Python pickle file | +| `!**/*.pickle` | Python pickle file | + +#### Go-specific Files + +| Path Pattern | Description | +| ---------------- | ------------------------------- | +| `!**/*.pb.go` | Protocol buffer Go file | +| `!**/*.pb.gw.go` | Protocol buffer gateway Go file | + +#### Terraform Files + +| Path Pattern | Description | +| ---------------------- | ---------------------- | +| `!**/*.tfstate` | Terraform state file | +| `!**/*.tfstate.backup` | Terraform state backup | + +#### Minified Files + +| Path Pattern | Description | +| ------------------ | ------------------------------ | +| `!**/*.min.js` | Minified JavaScript | +| `!**/*.min.js.map` | Minified JavaScript source map | +| `!**/*.min.js.css` | Minified CSS | + +
+ +You can also edit your path filters directly in the UI by navigating to: **Configuration** > **Review** > **Settings** > **Path Filters** + +CircleCI Integration + ### Sample Usage :::note diff --git a/docs/guides/roles.md b/docs/guides/roles.md new file mode 100644 index 00000000..c919f57d --- /dev/null +++ b/docs/guides/roles.md @@ -0,0 +1,138 @@ +--- +title: Control administrative access +description: Using the role-based authorization features of CodeRabbit +--- + +You can control which CodeRabbit +administrative features are available to your organization's user accounts by +assigning and updating account roles. + +## Overview of CodeRabbit roles {#overview} + +Every CodeRabbit account has exactly one role for each organization +that account is associated with. +For example, if you belong to two GitHub-based organizations that use +CodeRabbit, then you have one CodeRabbit role set for each of those two +organizations. + +CodeRabbit roles determine your ability to read or change various +billing, account management, and other administrative functions related to +an organization. The roles are as follows: + +- **Admin**: allows full read/write access to all CodeRabbit administrative features. +- **Member**: allows read-only access to a limited set of administrative settings. This role + is appropriate for most developers in an organization. +- **Billing Admin**: allows read/write access to features specific + to a subscription and billing management, and limited access to other administrative features. + +CodeRabbit users with the **Admin** role can modify the roles of other users in the +organization. + +For a complete list of the administrative functions available to each role, see +[Role permissions](#permissions). + +### CodeRabbit roles and Git platform roles {#and-upstream} + +Modifying an account's CodeRabbit role doesn't have any "upstream" +effect on that account's role or permissions in your organization's Git platform. +Similarly, changes to an account's role on your organization's Git platform don't +affect that account's CodeRabbit role. + +For example, if you have CodeRabbit integrated with a GitHub organization, and you change an account's CodeRabbit role from **Member** to **Admin**, then that account's +permission or ownership level with your GitHub organization doesn't change as a result. + +### CodeRabbit roles and developer features {#and-features} + +CodeRabbit roles affect only access to administrative features. Roles have no effect on using CodeRabbit developer features, such as automated code reviews. + +For example, if an organization has a Pro-tier +CodeRabbit account, then any user account with a seat assigned to it can use Pro-tier features with the organization's private repositories, regardless of that account's role. + +For more information on seat and subscription management, see [Manage your subscription](/getting-started/subscription-management). + +## Default roles {#defaults} + +CodeRabbit assigns every user account in your organization a default role, +using the following metrics: + +- If a user has an ownership-level role with the Git platform organizationโ€”for example, + **Admin** on GitHub, or **Owner** on Bitbucketโ€”then that user receives the default + CodeRabbit role of **Admin**. +- Otherwise, the user receives the **Member** role by default. + +You can update a user's role from its default setting by following the steps detailed in the next section. This requires that your own account +has an **Admin** role with the organization. + +CodeRabbit applies these defaults only when initially setting up for an +account within an organization. Subsequent "upstream" role changes don't affect +an account's CodeRabbit role. + +## View or set roles {#how-to} + +You can view and set roles from the CodeRabbit dashboard, as detailed in the +following sections. + +### View roles {#view-roles} + +To view a list of your organization's role assignments, follow these steps: + +1. Go to the [CodeRabbit dashboard](https://app.coderabbit.ai/settings/repositories). +1. At the top of the sidebar, select the organization whose user roles you want to view. +1. On the sidebar, click **Subscription**. + +This displays a table of all of the CodeRabbit **Admin** and **Member** accounts associated with the selected +organization. In this table, the **Role** column displays the CodeRabbit role for +each account. + +To view a list of accounts with the **Billing Admin** role, click the **Billing Admins** tab located above the table of user accounts. + +### Set roles {#set-roles} + +:::note +To modify users' CodeRabbit accounts, your own account must have the **Admin** role within your organization. +::: + +To change a user account's CodeRabbit role, follow these steps: + +1. Go to your organization's list of user accounts, as detailed in the previous section. + If you have the **Admin** role within this organization, then the **Role** column in the user accounts table contains selectable menus. +1. Click the menu in the user's **Role** column, and select the appropriate role from + the list. + +The only roles you can assign through this method are **Admin** and **Member**. +You can't grant the **Billing Admin** role to an existing user account. To add an account with the **Billing Admin** role, see the next section. + +### Add billing admin accounts {#billing} + +:::note +Billing Admin users don't require CodeRabbit seat licenses. You can add Billing Admin users regardless of how many seat licenses you have available. +::: + +To add a CodeRabbit user account with the **Billing Admin** role, follow these steps: + +1. Go to your organization's list of user accounts, as detailed in [View roles](#view-roles). +1. Click **Invite Billing Admin**. +1. Enter the name and email address of the billing administrator who you want to invite to the organization. + +This sends an email to the address that you specified. After the recipient completes the process of joining your organization in CodeRabbit, then their record appears in the user accounts list, under the **Billing Admins** tab. + +## Role permissions {#permissions} + +The following table lists the CodeRabbit administrative functionality +available to each of the CodeRabbit roles. + +| Resource | Admin | Member | Billing Admin | +| ----------------------- | ---------- | --------- | ------------- | +| Learning Resources | Read/Write | Read-only | No access | +| Metrics/Dashboard | Read/Write | No access | No access | +| Reports | Read/Write | Read-only | No access | +| Integrations | Read/Write | Read-only | No access | +| Repository Settings | Read/Write | Read-only | No access | +| Organization Settings | Read/Write | Read-only | No access | +| User Management | Read/Write | Read-only | Read-only | +| Subscription Management | Read/Write | Read-only | Read/Write | +| Billing Management | Read/Write | No access | Read/Write | + +## What's next {#whats-next} + +- [Manage your subscription](/getting-started/subscription-management) diff --git a/docs/guides/scheduled-reports.md b/docs/guides/scheduled-reports.md index 44a11f56..34c59032 100644 --- a/docs/guides/scheduled-reports.md +++ b/docs/guides/scheduled-reports.md @@ -11,6 +11,8 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; CodeRabbit Pro offers automated recurring reports that provide insights into your GitHub organization's activities. These reports can be customized and delivered through various channels to help teams stay informed about development progress. +For a conceptual overview of reports in CodeRabbit, see [Generate reports](/guides/reports-overview). + ## Setting Up a Recurring Report 1. Navigate to **Recurring Reports** in the [CodeRabbit dashboard](https://app.coderabbit.ai/reports/recurring) @@ -248,3 +250,8 @@ Deleting a report will immediately stop all scheduled runs and remove access to - [Custom Reports](./custom-reports.md) - [On-demand Reports](./ondemand-reports.md) - [API Documentation](https://api.coderabbit.ai/api/swagger/) + +## What's next + +- [Customize reports](/guides/custom-reports) +- [Generate reports on demand](/guides/ondemand-reports) diff --git a/docs/guides/setup-best-practices.md b/docs/guides/setup-best-practices.md new file mode 100644 index 00000000..c6caa094 --- /dev/null +++ b/docs/guides/setup-best-practices.md @@ -0,0 +1,131 @@ +--- +title: "Setup and configuration best practices" +description: Best practices for seting up CodeRabbit. +sidebar_label: Setup and configuration +--- + +This page contains our best-practice advice for setting up CodeRabbit, and then +configuring its code review behavior. + +## Setup best practices {#setup} + +This section lists our recommendations for setting up CodeRabbit with your +Git platform, and integrating CodeRabbit with other tools and services. + +### Give CodeRabbit its own user account {#user} + +CodeRabbit works best when it has a user account all to itself on your Git platform. +Your team treats this account as a bot or service accountโ€”even on platforms that don't +have a formal concept of separate service accounts, such as Bitbucket Cloud. + +If you use GitHub, then CodeRabbit sets up a service account named `CodeRabbitAI` for you as soon as you connect your GitHub organization to CodeRabbit. On other platforms, such as Bitbucket Cloud or Gitlab, you must set this account up yourself. + +For platform-specific instructions about setting up this user, see +[Integrate with Git platforms](/platforms/). + +### Let CodeRabbit read your issue tracker {#issues} + +CodeRabbit can report on whether the changes proposed by a pull request +successfully address specific, ticketed issues referenced by that pull request. + +For this to work, CodeRabbit needs read access to your team's issue management system. + +If you use the built-in issue management of either GitHub or GitLab, then +CodeRabbit issue integration works without any further setup. + +If you use issue management systems external from your Git platform, then you need to +take additional steps to integrate CodeRabbit with your team's issues. + +These are the external issue management systems that CodeRabbit supports: + +- Jira +- Linear + +For more information, see [Integrate issue tracking](/integrations/issue-integrations/). + +### Set up basic reports for your team {#reports} + +CodeRabbit has a flexible reporting feature that can help keep your whole team +up-to-date about the latest changes to your repositories. We recommend setting +up at least the following scheduled reports, using templates available +through the CodeRabbit web interface: + +- A daily standup report, grouped by contributor. +- Regular release notes, grouped by repository. + +For more information, see [Generate reports](/guides/reports-overview). + +## Configuration best practices {#configuration} + +This section lists our recommendations for configuring the way that CodeRabbit +works with your individual repositories. + +### Fine-tune reviews using YAML files {#yaml} + +CodeRabbit gives you two ways to configure how it works with your team's repositories: + +- The **Organization Settings** and **Repositories** pages of [the + CodeRabbit web interface](https://app.coderabbit.ai/login) +- A [`.coderabbit.yaml` file](/getting-started/configure-coderabbit/) in your repository + +The web interface lets you set up your organization's code review +preferences rapidly, and can help you get familiar with CodeRabbit configuration options. + +We recommend adding a `.coderabbit.yaml` file to repositories, as well. Using this file has several advantages over using only the web interface: + +- It applies version control to your repository's CodeRabbit settings, letting you track changes, view configuration history, and revert to previous configurations as needed. +- During code reviews, CodeRabbit loads the file along with rest of your repository. This means that you can include setting changes as part of a pull request, and CodeRabbit both analyzes and applies these settings during its review. +- The file makes the repository's CodeRabbit settings transparent to all of the repository's contributors. + +Repository-level settings defined by a `.coderabbit.yaml` take precedence over the +settings defined for that repository or for your organization using the CodeRabbit web interface. + +For more information, see [Add a configuration file](/getting-started/configure-coderabbit/). + +### Speed up reviews by adding path filters {#filters} + +If your repository contains a lot of data or other content that CodeRabbit +doesn't need for code review context, then you can include _path filters_ in +your repository configuration. For example, a filter of `!dist/**` tells CodeRabbit +to disregard everything in your repository's top-level `dist` directory when +preparing a code review. + +Reducing the number of contextual files that CodeRabbit needs to read and analyze +when preparing a code review can help make its code reviews faster. + +You can define path filters using the CodeRabbit +web interface, or with [a `.coderabbit.yaml` file](/getting-started/configure-coderabbit/). + +### Trust the defaults {#defaults} + +CodeRabbit gives you control over a number of its core code-review features, letting you deactivate them entirely for your repositories if needed. We have chosen the default settings to meet the needs of most organizations and situations, and recommend leaving these settings at their default values if possible: + +- **Cache**: Keep [the cache](/reference/caching) enabled to let CodeRabbit temporarily remember details about your repository + between reviews, which improves review speed. +- **Tools**: By default, CodeRabbit is allowed to use all of the [open-source linters and analyzer + tools](/tools) that are available to it during code reviews. This helps CodeRabbit keep its reviews broad and flexible. +- **Knowledge base**: CodeRabbit [knowledge base](/integrations/knowledge-base/) features, including learnings and issue tracking, can require data retention. If your organization needs to meet stricter data-retention policies, then you can opt out of using these features. + +You can configure your use of the above features using the CodeRabbit web interface, or [a `.coderabbit.yaml` file](/getting-started/configure-coderabbit/). + +### Write specific CI/CD error messages {#pipeline} + +CodeRabbit can analyze the logs of continuous integration (CI) or continuous +deployment (CD) tools in your pipeline. CodeRabbit can provide better remediation +advice about CI/CD failures during code reviews if your tools' error messages +are as specific as possible when reporting failures. + +For CodeRabbit to provide the best advice, configure your CI/CD failure output to include the following information: + +- File names associated with the failure. +- Line numbers that identify where the failure occurred in those files. +- An explanation of the failure, including relevant error codes or diffs. + +[This pull request](https://github.com/ff14-advanced-market-search/temp-fe/pull/47/files) shows an example of expanding the context of a CI error, +in this case including a diff to show why a code-formatter check failed. + +--- + +## What's next {#whats-next} + +- [Code review best practices](/guides/code-review-best-practices) diff --git a/docs/guides/uninstall-vscode.md b/docs/guides/uninstall-vscode.md new file mode 100644 index 00000000..27266d47 --- /dev/null +++ b/docs/guides/uninstall-vscode.md @@ -0,0 +1,25 @@ +--- +title: Uninstall the VSCode extension +description: How to uninstall the CodeRabbit VSCode extension +--- + +This page is about uninstalling the CodeRabbit VSCode extension. For more information about the extension, see +[Review local changes](/code-editors). + +:::note +The instructions on this page are specific to using the extension with VSCode. If you are instead using a VSCode-compatible editor such as Cursor or Windsurf, then the steps that you need to follow are similar, but might require some adaptation. +::: + +## Uninstall the extension + +To uninstall the VSCode extension, follow these steps: + +1. In the VSCode activity bar, click the CodeRabbit icon. + +1. In the CodeRabbit sidebar, click the door-shaped **Logout** icon. + +1. In the VSCode activity bar, click the **Extensions** icon. + +1. In the Extensions sidebar, click the gear-shaped **Manage** icon next to CodeRabbit in the list of installed extensions. + +1. Select **Uninstall**. diff --git a/docs/guides/use-vscode.md b/docs/guides/use-vscode.md new file mode 100644 index 00000000..169dc2a8 --- /dev/null +++ b/docs/guides/use-vscode.md @@ -0,0 +1,109 @@ +--- +title: Use the VSCode extension +description: How to review your code with the VSCode extension. +--- + +This page is about performing local code reviews using the CodeRabbit VSCode extension. For more information about the extension, see +[Review local changes](/code-editors). To learn how to install the extension, see [Install the VSCode extension](/guides/install-vscode). + +The CodeRabbit VSCode extension works by comparing changes in your current, checked-out Git branch against another branch in your local repository. You can use the extension to automatically perform full-branch changes after every commit, or make different kinds of comparisons by manually requesting a review. + +:::note +The instructions on this page are specific to using the extension with VSCode. If you are instead using a VSCode-compatible editor such as Cursor or Windsurf, then the steps that you need to follow are similar, but might require some adaptation. +::: + +## Automatically review local commits {#auto-reviews} + +You can let CodeRabbit automatically review commits that you make to your local Git repository. These automatic reviews compare all committed changes against the branch that your working branch is based on. + +To perform an automatic review, follow these steps: + +1. Perform a Git commit using VSCode or terminal. After you do this, a dialog appears in your VSCode window, asking **Would you like to start a review?** + +1. Click **Yes**. The CodeRabbit sidebar appears in your VSCode window. + +1. Wait for the review to complete. This might take a few minutes. To cancel a review in progress, click **Stop the review**. + +After the review completes, you can browse and respond to review comments as described in [Work with code reviews](#work). + +You can optionally configure the extension to either always or never perform automatic code reviews on commit, instead of displaying this yes-or-no dialog. For more information, see [Configure automatic review behavior](/guides/config-vscode#auto-reviews). + +For more control of code reviews performed using the CodeRabbit VSCode extension, you can manually request a review, as detailed in the following section. + +## Manually request code reviews {#manual-reviews} + +To manually review changes in a local Git branch using the CodeRabbit VSCode extension, follow these steps: + +1. Click the CodeRabbit icon in the VSCode activity bar. The CodeRabbit sidebar appears. + +1. If you want to compare your code changes to a branch other than its base branch, then follow these steps: + + 1. In the sidebar, under **Branch**, click the name of the base branch. A **Select a base branch** dialog appears, listing other branches in your local Git repository. + + 1. Select the name of a base branch to compare against. + +1. Select one of the review-action options from the menu at the bottom of the CodeRabbit sidebar: + + - To review all changes between the base branch and your current branch, including both committed and uncommitted changes, select **Review all changes**. This is the default selection. + + - To limit the review to only changes on your branch that you have committed, select **Review committed changes**. This includes commits that you have pushed to your remote repository, if any, as well as any local commits. + + - To limit the review to only uncommitted changes on your branch, select **Review uncommitted changes**. This includes both staged and unstaged changes. + +1. Refer to the list of **Files to review** in the sidebar. This list represents all of the files that the selected review action includes. To change this list of files, repeat the previous step to choose a different review action, or use Git features like `git stash` to selectively remove changes. + +1. To perform the review, click the button part of the menu. The CodeRabbit sidebar displays a **Review** section with the review's progress. + +1. Wait for the review to complete. This might take a few minutes. To cancel a review in progress, click **Stop the review**. + +After the review completes, you can browse and respond to review comments as described in the following section. + +## Work with code reviews {#work} + +The CodeRabbit VSCode extension presents code reviews as a series of actionable comments, connected to specific files and lines. It gives you tools to apply its suggestions quickly, when possible. + +### Browse comments {#browse} + +After the extension finishes its review, it adds any comments to the CodeRabbit sidebar under the **Files** heading in the **Reviews** section. + +Each item in **Files** is a comment referring to one or more lines in that file. Click the comment to see a detailed, inline comment in the editor, attached to the appropriate file and lines. + +You can react to these comments however you want: you can apply their advice literally, or let them guide you to find alternate solutions, or ignore them entirely. CodeRabbit comments are metadata stored with VSCode, and are not part of your files. The presence of comments doesn't block your use of version control. + +### Apply suggested changes {#apply} + +Whenever possible, the CodeRabbit VSCode extension attaches discrete change suggestion to comments in the form of code diffs. For example, if it detects a typo in a new function name, the extension might attach a diff with a suggested correction. + +If you agree with CodeRabbit about the suggested fix and want to apply to exactly as it proposes, click the checkmark-shaped **Apply suggested change** icon in the inline comment. The extension makes the change for you in the editor. + +### Request help from your AI coding agent {#agent} + +If CodeRabbit determines that an AI coding agent could help with resolving one of its comments, then it adds a star-shaped **Fix with AI** icon to the inline display of that comment. To have the extension generate a request for an AI agent to address the comment, click this icon. + +Depending upon your IDE and the current extension settings, the extension performs one of the following actions: + +- If you are using VSCode with Copilot installed, then the extension can send the request directly to Copilot. +- If you have Claude Code installed, then the extension can send the request to the `claude` command-line program. +- As a fallback, the extension can copy the request, phrased as an AI prompt, to your clipboard. You can then manually paste this prompt into the coding AI of your IDE. + +For more information about configuring this behavior, see [Configure AI agent integration](/guides/config-vscode#agent). + +### Ignore or collapse comments {#ignore} + +To remove a comment from the editor, click its **Ignore** icon. + +To remove a comment but keep an icon in the editor noting its presence, click its **Collapse** icon. + +To see an ignored or collapsed comment in the editor again, click its summary in the CodeRabbit sidebar. + +### Browse previous reviews {#previous} + +If you have performed reviews prior to the most recent review in the current VSCode window, then you can browse the comments from these reviews under the **Previous reviews** heading in the CodeRabbit sidebar. + +If a past review comment no longer applies to the current state of your code, then clicking that comment won't display a detailed comment or suggestion in the editor. + +## What's next {#whats-next} + +- [Configure the VSCode extension](/guides/config-vscode) + +- [Uninstall the VSCode extension](/guides/uninstall-vscode) diff --git a/docs/integrations/knowledge-base.md b/docs/integrations/knowledge-base.md index 61ff141e..1da862e0 100644 --- a/docs/integrations/knowledge-base.md +++ b/docs/integrations/knowledge-base.md @@ -22,3 +22,21 @@ Or you can comment directly on some lines of code in the PR. `@coderabbitai do n Watch our [video walkthrough on learnings](https://www.youtube.com/watch?v=Yu0cmmOYA-U) for more information. ::: + +## Code Guidelines {#code_guidelines} + +CodeRabbit will analyse and learn from your organisation's code guidelines, which you can set up in the knowledge base section. These guidelines will then be used to conduct thorough code reviews. + +The following patterns are scanned by default. + +```text +**/.cursorrules +.github/copilot-instructions.md +**/CLAUDE.md +**/.cursor/rules/* +**/.windsurfrules +**/.clinerules/* +**/.rules/* +``` + +![Illustration of code guidelines configuration](/img/knowledge-base/code-guidelines.png) diff --git a/docs/overview/introduction.md b/docs/overview/introduction.md index e215f574..f937ac67 100644 --- a/docs/overview/introduction.md +++ b/docs/overview/introduction.md @@ -58,8 +58,8 @@ No matter how you tune and customize CodeRabbit, its default settings make it us CodeRabbit integrates in just a few clicks with many popular Git platforms: -- GitHub, including GitHub Enterprise Server -- GitLab, including self-managed GitLab +- GitHub, GitHub Enterprise Cloud, GitHub Enterprise Server, +- GitLab, GitLab Self-Managed - Azure DevOps - Bitbucket Cloud @@ -81,7 +81,6 @@ For more information, see [Issue Creation](/guides/issue-creation) and [Issue Ch CodeRabbit collects only the minimum amount of information needed to provide you with our code review services. Our privacy and security posture centers around protecting your data through ephemerality: - All queries to large language models (LLMs) exist in-memory only, with zero retention after each query completes. -- We don't store a copy of your code. - We don't use your code, code reviews, or other collected data to train LLMs. - CodeRabbit doesn't share any collected customer data with third parties. - We keep all customer data confidential, and isolated by organization. @@ -95,8 +94,16 @@ Public repositories can use the Pro tier of CodeRabbit at no charge, including a For private repositories, a number of pricing tiers are available. These range from a Free tier that offers unlimited code-change summaries, to an Enterprise tier with access to advanced features and SLA support. For more information, see [Pricing](https://www.coderabbit.ai/pricing). +## Review local changes from within VSCode + +As a separate, free product, CodeRabbit offers a VSCode extension that brings a subset of core CodeRabbit features to VSCode. This lets you use the power of CodeRabbit to tune and tidy your code changes locally before pushing your changes into a formal pull request for more thorough reviews. + +For more information, see [Review local changes](/code-editors). + ## What's next - [Quickstart](/getting-started/quickstart/) lets you experience your first CodeRabbit code review first-hand. +- [Review local changes](/code-editors) guides you through installing and using a subset of CodeRabbit features directly from your code editor. + - [Why CodeRabbit?](/overview/why-coderabbit) dives further into the philosophies and technologies that drive CodeRabbit. diff --git a/docs/overview/why-coderabbit.md b/docs/overview/why-coderabbit.md index cbdfc5f6..f04e347d 100644 --- a/docs/overview/why-coderabbit.md +++ b/docs/overview/why-coderabbit.md @@ -57,7 +57,7 @@ Your intelligent code review companion that understands context. > From its foundation as a Generative AI-first platform, CodeRabbit has evolved to become the preferred code review tool among developers because of its speed, intelligence, adaptability, and support for features like contextual analysis, security scanning, and architectural insights. CodeRabbit supports all major programming languages and integrates with popular development [tools](/tools). :::info Get Started -If your team needs intelligent code reviews, CodeRabbit delivers. If you're new to AI-powered reviews, [sign up for a Free account](https://app.coderabbit.ai/login), join the [Discord server](https://discord.gg/coderabbit), and start the journey with us. +If your team needs intelligent code reviews, CodeRabbit delivers. If you're new to AI-powered reviews, [sign up for a Free account](https://app.coderabbit.ai/login?free-trial), join the [Discord server](https://discord.gg/coderabbit), and start the journey with us. ::: ## CodeRabbit is Context-Aware @@ -432,9 +432,9 @@ Try CodeRabbit on your next pull request. Experience how AI-powered code review > Start reading more about the custom [code review instructions](/guides/review-instructions) or how CodeRabbit verify issues using [knowledge bases](/integrations/knowledge-base) like Linear and Jira. -Transform your code reviews now, [Start your free trial today](https://app.coderabbit.ai/login) and join the Discord server and chat with CodeRabbit users and team. +Transform your code reviews now, [Start your free trial today](https://app.coderabbit.ai/login?free-trial) and join the Discord server and chat with CodeRabbit users and team. diff --git a/docs/platforms/bitbucket-cloud.md b/docs/platforms/bitbucket-cloud.md index acb37f34..385d46ed 100644 --- a/docs/platforms/bitbucket-cloud.md +++ b/docs/platforms/bitbucket-cloud.md @@ -13,89 +13,90 @@ CodeRabbit integrates with Bitbucket Cloud to enhance code review and collaborat This guide will assist you in effectively integrating CodeRabbit with Bitbucket Cloud. -## Configure App Password +## Configure API Token -To enable CodeRabbit to interact with your Bitbucket repositories, an app password is required. This token grants the necessary permissions for interacting with the Merge Requests and Discussions APIs. +To enable CodeRabbit to interact with your Bitbucket repositories, an API token is required. This token grants the +necessary permissions for interacting with the Bitbucket merge request and discussion APIs. 1. Create a new Bitbucket account specifically for CodeRabbit and treat it as a service account. 2. Name the account "CodeRabbit". -3. Generate an App Password to enable seamless integration between CodeRabbit and your Bitbucket repositories. +3. If your Bitbucket workspace requires two-step verification, then you must also enable two-step verification on this + new account. +4. Generate an API Token to enable seamless integration between CodeRabbit and your Bitbucket repositories. -We recommend creating a new user as a service account, associating this user to the workspace you'd like to install CodeRabbit on, and providing CodeRabbit with the app password to allow access. During the installation process, CodeRabbit will automatically configure the required webhook for seamless integration. - -
- Bitbucket user modal -
+We recommend creating a new user as a service account, associating this user to the workspace you'd like to install +CodeRabbit on, and providing CodeRabbit with the API token to allow access. During the installation process, CodeRabbit +will automatically configure the required webhook for seamless integration. :::note -If you wish to change the review user, you must provide the app password for the new user who will post reviews and comments. However, this requires manually removing the previous user from the projects and associated webhooks. Once this is done, you will need to reinstall the CodeRabbit app for each project. +If you wish to change the review user, you must provide the API token for the new user who will post reviews and +comments. However, this requires manually removing the previous user from the projects and associated webhooks. Once +this is done, you will need to reinstall the CodeRabbit app for each project. ::: ### Recommendations -- **Create a dedicated user for CodeRabbit** - This ensures the user is exclusively for CodeRabbit, allowing better access control. +- **Create a dedicated user for CodeRabbit** - This ensures the user is exclusively for CodeRabbit, allowing better + access control. - **Use "CodeRabbit" as the username** - This makes the user easily recognizable for future reference. - **Use a dedicated email address** - This helps in easy identification and management. -- **Use the CodeRabbit logo as the profile picture** - This further ensures easy recognition. You can download our logo from [here](/img/integrations/logo.svg "download"). -- **Developer Access** Ensure the service account user has developer access to the projects that you wish to install CodeRabbit on. +- **Use the CodeRabbit logo as the profile picture** - This further ensures easy recognition. You can download our logo + from [here](/img/integrations/logo.svg "download"). +- **Developer Access** Ensure the service account user has developer access to the projects that you wish to install + CodeRabbit on. #### Key Points to Remember -- Code reviews will be attributed to the owner of the app password. +- Code reviews will be attributed to the owner of the API token. -#### Generating an App password +#### Generating an API token -Bitbucket provides an option to generate an app password for a new user. Follow these steps to generate the password: +Bitbucket provides an option to generate an API token for a new user. Follow these steps to generate the token: -1. Log in using the user designated for CodeRabbit reviews. This user serves as a service account for managing reviews and related activities. -2. Go to "Personal Bitbucket Settings". -3. Choose **App passwords**. -4. Click **Create app password**. -5. Enter a label easily recognizable for this app passwords usage. +1. Log in using the user designated for CodeRabbit reviews. This user serves as a service account for managing reviews + and related activities. +2. Go to [API Tokens](https://id.atlassian.com/manage-profile/security/api-tokens). +3. Click **Create API token with scopes**. +4. Enter a name easily recognizable for this API token usage and an expiration date based on your plan of using the + product. +5. On next step select **Bitbucket** 6. Ensure the following scopes are selected: - 1. Account - Read - 2. Issues - Write - 3. Workspace membership - Read - 4. Projects - Write - 5. Repositories - Write - 6. Pull requests - Write - 7. Webhooks - Read and write - 8. Pipelines - Read - 9. Runners - Read + - read:account + - read:user:bitbucket + - write:issue:bitbucket + - read:issue:bitbucket + - read:workspace:bitbucket + - admin:project:bitbucket + - write:webhook:bitbucket + - read:webhook:bitbucket + - read:pipeline:bitbucket + - read:runner:bitbucket + - read:repository:bitbucket + - write:repository:bitbucket + - read:pullrequest:bitbucket + - write:pullrequest:bitbucket 7. Click **Create** -8. Note down the app password as it will only be displayed once. - -
- Bitbucket app password configuration page -
-
- Bitbucket app password permissions -
+8. Note down the API token as it will only be displayed once. -### Where to Provide CodeRabbit the App Password +### Where to Provide CodeRabbit the API Token -By default, if no app password is provided, CodeRabbit will prompt you to provide one during the installation process. However, if you wish to provide the token beforehand, you can do so by navigating to the **Organization Settings** tab, and selecting the **Bitbucket User** tab on the sidebar. Once entering the app password, the password will be validated and saved for future use. +By default, if no API token is provided, CodeRabbit will prompt you to provide one during the installation process. +However, if you wish to provide the token beforehand, you can do so by navigating to the **Organization Settings** tab, +and selecting the **Bitbucket User** tab on the sidebar. Once entering the API token, the token will be validated and +saved for future use. -You can confirm the correct user is being selected by verifying the user ID shown on the UI with the user ID of the service account user you created. +You can confirm the correct user is being selected by verifying the user ID shown on the UI with the user ID of the +service account user you created. --- ### Installing CodeRabbit into your Bitbucket Repositories 1. Go to the [Repositories page](https://app.coderabbit.ai/settings/repositories) in the CodeRabbit app. -2. Select the checkbox next to the repositories where you want to install CodeRabbit. To install it on all repositories at once, select the checkbox at the top. +2. Select the checkbox next to the repositories where you want to install CodeRabbit. To install it on all repositories + at once, select the checkbox at the top. 3. Select **Install Repositories**.
@@ -120,10 +121,12 @@ The webhook `https://coderabbit.ai/bitbucketHandler` will now be installed for t :::note -If you are experiencing issues with the webhook, such as CodeRabbit not being able to access the repository, or not reviewing pull requests, you can manually delete the webhook to the repository. +If you are experiencing issues with the webhook, such as CodeRabbit not being able to access the repository, or not +reviewing pull requests, you can manually delete the webhook to the repository. Then refresh the repository page in the CodeRabbit app and you can reinstall the webhook. -If you cannot install the webhook please check that your Bitbucket user has the necessary permissions to install the webhook and the App Password is properly configured. +If you cannot install the webhook please check that your Bitbucket user has the necessary permissions to install the +webhook and the API Token is properly configured. ::: diff --git a/docs/platforms/github-com.md b/docs/platforms/github-com.md index 4866fd00..60d919d7 100644 --- a/docs/platforms/github-com.md +++ b/docs/platforms/github-com.md @@ -53,7 +53,7 @@ If you opt to authorize all repositories during setup, CodeRabbit will automatic ### 5. CodeRabbit Configuration -You can configure CodeRabbit through a YAML file or using the [App's UI](https://app.coderabbit.ai/login). +You can configure CodeRabbit through a YAML file or using the [App's UI](https://app.coderabbit.ai/login?free-trial). You can tailor CodeRabbit's functionality using the `.coderabbit.yaml` file, which you place directly in your GitHub repository. This file mirrors the options available in the CodeRabbit user interface, with each setting in the YAML corresponding to a specific toggle in the UI. Configure CodeRabbit either through the coderabbit.yaml file or the interface, depending on your preference. @@ -109,7 +109,7 @@ CodeRabbit generates detailed statistics and test plans for each pull request. ![Test Plan by CodeRabbit](/img/integrations/test-plan.png) -> CodeRabbit also allows you to configure **custom review instructions** based on your organization's needs, in case you want it to follow specific guidelines beyond the standard review, to learn more on [adding custom review instructions](https://docs.coderabbit.ai/guides/review-instructions/) +> CodeRabbit also allows you to configure **custom review instructions** based on your organization's needs, in case you want it to follow specific guidelines beyond the standard review, to learn more on [adding custom review instructions](/guides/review-instructions) Whether you manage a popular repository or are working on a smaller project, whether it's hosted on **GitLab, GitHub, or self-hosted GitHub or GitLab**, CodeRabbit can help streamline your development process. This AI Code Review assistant is designed to save you time by automating code reviews and offering insightful feedback. diff --git a/docs/platforms/github-enterprise-server.md b/docs/platforms/github-enterprise-server.md index 2e8a6876..733607cb 100644 --- a/docs/platforms/github-enterprise-server.md +++ b/docs/platforms/github-enterprise-server.md @@ -111,6 +111,7 @@ steps below to - Pull request review thread - Push - Release + - **Where can this GitHub App be installed?**: Select `Any account` 6. Click **Create GitHub App**. Once the GitHub App has been created, click on **Generate a new client secret** @@ -169,4 +170,20 @@ Use this CodeRabbit IP if your instance requires IP whitelisting `35.222.179.152/32` and `34.170.211.100/32`. VPN tunneling is available as an add-on package. Please reach out to us at -[contact@coderabbit.ai](mailto:contact@coderabbit.ai) if you are interested. +[support@coderabbit.ai](mailto:support@coderabbit.ai) if you are interested. + +### **FAQ** + +#### Who should create the OAuth App and GitHub App? + +The OAuth App and GitHub App should be created by a user with administrative +privileges on the GitHub Enterprise Server instance. This user will be responsible for managing the integration with CodeRabbit. + +#### I see an error when trying to log in to CodeRabbit. What should I do? + +If you encounter an error during the login process, please ensure that: + +- The OAuth App and GitHub App are correctly configured with the right URLs and permissions. +- The browser local storage and cookies related to CodeRabbit are cleared. + +If the issue persists, contact our support team. diff --git a/docs/platforms/platforms.md b/docs/platforms/platforms.md index 996089fc..d4cb1748 100644 --- a/docs/platforms/platforms.md +++ b/docs/platforms/platforms.md @@ -32,4 +32,4 @@ CodeRabbit supports various Git platforms to provide code review for your reposi | Bitbucket Datacenter | [Supported](../self-hosted/bitbucket.md) | | Bitbucket Cloud | [Supported](./bitbucket-cloud.md) | -[login]: https://app.coderabbit.ai/login +[login]: https://app.coderabbit.ai/login?free-trial diff --git a/docs/platforms/self-hosted-gitlab.md b/docs/platforms/self-hosted-gitlab.md index 53fae56f..3fa18a71 100644 --- a/docs/platforms/self-hosted-gitlab.md +++ b/docs/platforms/self-hosted-gitlab.md @@ -122,4 +122,4 @@ Use this CodeRabbit IP if your instance requires IP whitelisting `35.222.179.152/32` and `34.170.211.100/32`. VPN tunneling is available as an add-on package. Please reach out to us at -[contact@coderabbit.ai](mailto:contact@coderabbit.ai) if you are interested. +[support@coderabbit.ai](mailto:support@coderabbit.ai) if you are interested. diff --git a/docs/reference/caching.md b/docs/reference/caching.md new file mode 100644 index 00000000..cea907c0 --- /dev/null +++ b/docs/reference/caching.md @@ -0,0 +1,20 @@ +# Caching + +CodeRabbit provides caching capabilities for code and dependencies to accelerate the review process. This feature enhances your development workflow by delivering faster feedback. + +## Security and Privacy + +- Cached data is encrypted (except for OSS projects) +- Cache expires after a maximum of one week +- Cached data is used exclusively for speeding up reviews + +## Configuration + +You can opt out of caching in two ways: + +1. **Disable Cache**: Configure `Review - Disable Cache` at either: + + - Organization level + - Repository level + +2. **Disable Data Retention**: Turn off the `Data Retention` setting in your Organization Settings to disable all data retention across your organization. diff --git a/docs/reference/configuration.md b/docs/reference/configuration.md new file mode 100644 index 00000000..bd0b3e8e --- /dev/null +++ b/docs/reference/configuration.md @@ -0,0 +1,4357 @@ +--- +title: Configuration reference +description: Complete reference for all CodeRabbit configuration options. +--- + +import Tabs from '@theme/Tabs'; +import TabItem from '@theme/TabItem'; + +This reference guide lists all of the code review configuration options that +CodeRabbit makes available. + +For an overview of how configuration works with CodeRabbit, see [Configure CodeRabbit](/guides/configuration-overview). + +## How to use this reference {#how-to} + +Each entry in this reference corresponds to a single CodeRabbit configuration setting, including an informational table and a description of what the setting does. The tables have two views, which you can select with a tab: + +- The **Web UI** tab displays the location and default value of the setting in the CodeRabbit web interface, for both [organization settings](/guides/organization-settings) and [repository settings](/guides/repository-settings). +- The **coderabbit.yaml** tab displays information about the field's location and datatype in [your repository's `.coderabbit.yaml` file](/getting-started/configure-coderabbit). + +## Global Settings + +### Data retention + + + + + + + + + + + + + +
LocationGeneral > Data Retention
Defaulttrue
+
+ + _This setting can be defined only in the web UI settings for your + organization._ + +
+ +If `true`, then CodeRabbit is allowed to retain enough data about your code +review history in order to enable the following features: + +- **Caching**: allows CodeRabbit to store data about your repository between + code reviews, improving the speed of subsequent reviews. +- **Knowledge base**: allows CodeRabbit to maintain its own database about + your repository and your team's code review preferences, which can improve + the quality and specificity of code reviews generated by CodeRabbit. + +If your organization operates under strict data-retention policies, then you can +disable data retention. Doing so immediately deletes any cache or knowledge-base data that CodeRabbit has collected for your organization, and prevents CodeRabbit from +retaining further cache or knowledge-base data. + +If you re-enable data retention, then CodeRabbit re-enables these features, and resumes collecting cache and knowledge-base data. + +### Early Access + + + + + + + + + + + + + +
LocationGeneral > Early Access
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`early_access`
Datatypeboolean
Defaultfalse
+
+
+ +If enabled, then CodeRabbit lets you use early-access features in your +code reviews. + +### Enable Free Tier + + + + + + + + + + + + + +
LocationGeneral > Enable Free Tier
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`enable_free_tier`
Datatypeboolean
Defaulttrue
+
+
+ +If enabled, then CodeRabbit allows free tier features for users not on a paid plan. + +For more information about payment tiers and features, see [Pricing](https://www.coderabbit.ai/pricing). + +### Language + + + + + + + + + + + + + +
LocationGeneral > Language
Defaulten-US
+
+ + + + + + + + + + + + + + + +
Field`language`
Datatypestring
Default"en-US"
+
+
+ +Defines the written language that CodeRabbit presents its review comments in. Defaults +to U.S. English. + +### Tone Instructions + + + + + + + + + + + + + +
LocationGeneral > Tone Instructions
Default
+
+ + + + + + + + + + + + + + + +
Field`tone_instructions`
Datatypestring
Default
+
+
+ +A natural-language description of the tone of voice that CodeRabbit should +apply to its review instructions, if you want a tone different from its +default. + +A few possible examples: + +- `Use an encouraging, supportive tone that celebrates good practices while gently suggesting improvements.` +- `Adopt a concise, matter-of-fact style that gets straight to the point without unnecessary pleasantries.` +- `Deliver all review comments in the style of a televised nature documentary, perhaps with David Attenborough hosting.` + +## Review + +### Basic Review Settings + +#### Abort On Close + + + + + + + + + + + + + +
LocationReview > Settings > Abort On Close
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.abort_on_close`
Datatypeboolean
Defaulttrue
+
+
+ +Abort the in-progress review if the pull request is closed or merged. + +#### Assess Linked Issues + + + + + + + + + + + + + +
LocationReview > Settings > Assess Linked Issues
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.assess_linked_issues`
Datatypeboolean
Defaulttrue
+
+
+ +If enabled, then the reviews that CodeRabbit generates include assessments of how well a proposed code change addresses any issues that the pull request refers to. CodeRabbit considers issues referred to by number in the following locations: + +- The title of the pull request. +- The description of the pull request. +- (GitHub only) The **Development** field of the pull request. + +Besides this setting, issue assessment requires at least one of the following: + +- You use the built-in issue managemet system of GitHub or GitLab. +- You have integrated CodeRabbit with an external issue manager. + +For more information, see [Integrate issue tracking](/integrations/issue-integrations/) +and [Let CodeRabbit read your issue trakcer](https://docs.coderabbit.ai/guides/setup-best-practices#issues). + +#### Auto Apply Labels + + + + + + + + + + + + + +
LocationReview > Settings > Auto Apply Labels
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_apply_labels`
Datatypeboolean
Defaultfalse
+
+
+ +Automatically apply the suggested labels to the PR/MR. + +#### Auto Assign Reviewers + + + + + + + + + + + + + +
LocationReview > Settings > Auto Assign Reviewers
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_assign_reviewers`
Datatypeboolean
Defaultfalse
+
+
+ +Automatically assign suggested reviewers to the pull request + +#### Auto Title Instructions + + + + + + + + + + + + + +
LocationReview > Settings > Auto Title Instructions
Default
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_title_instructions`
Datatypestring
Default
+
+
+ +Custom instructions for auto-generating the PR/MR title. + +#### Auto Title Placeholder + + + + + + + + + + + + + +
LocationReview > Settings > Auto Title Placeholder
Default@coderabbitai
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_title_placeholder`
Datatypestring
Default"@coderabbitai"
+
+
+ +Add this keyword in the PR/MR title to auto-generate the title. + +#### Changed Files Summary + + + + + + + + + + + + + +
LocationReview > Settings > Changed Files Summary
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.changed_files_summary`
Datatypeboolean
Defaulttrue
+
+
+ +Generate a summary of the changed files in the walkthrough. + +#### Collapse Walkthrough + + + + + + + + + + + + + +
LocationReview > Settings > Collapse Walkthrough
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`reviews.collapse_walkthrough`
Datatypeboolean
Defaultfalse
+
+
+ +Generate walkthrough in a markdown collapsible section. + +#### Commit Status + + + + + + + + + + + + + +
LocationReview > Settings > Commit Status
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.commit_status`
Datatypeboolean
Defaulttrue
+
+
+ +Set the commit status to 'pending' when the review is in progress and 'success' when it is complete. + +#### Disable Cache + + + + + + + + + + + + + +
LocationReview > Settings > Disable Cache
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`reviews.disable_cache`
Datatypeboolean
Defaultfalse
+
+
+ +Activate this setting to disallow CodeRabbit from caching your repository's code and dependencies. This forces CodeRabbit to download the code and dependencies fresh from the repository for every code review that it performs. + +When caching is allowed, then CodeRabbit stores a cache of code and metadata from +your repostory for up to seven days after its most recent code review. This cache +lets CodeRabbit save time and effort in between subsquent reviews of the same +repository. For more information, see [Caching](/reference/caching/). + +We recommend leaving this setting off, which allows caching, and can speed up +code reviews. For more information, see +[Trust the defaults](https://docs.coderabbit.ai/guides/setup-best-practices#defaults). + +:::note +The [Data Retention](#data-retention) setting overrides this one. If you disable +all data retention, then your repositories won't keep a cache. +::: + +#### Fail Commit Status + + + + + + + + + + + + + +
LocationReview > Settings > Fail Commit Status
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`reviews.fail_commit_status`
Datatypeboolean
Defaultfalse
+
+
+ +Set the commit status to 'failure' when the PR cannot be reviewed by CodeRabbit for any reason. + +#### High Level Summary + + + + + + + + + + + + + +
LocationReview > Settings > High Level Summary
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.high_level_summary`
Datatypeboolean
Defaulttrue
+
+
+ +Generate a high level summary of the changes in the PR/MR description. + +#### High Level Summary In Walkthrough + + + + + + + + + + + + + +
LocationReview > Settings > High Level Summary In Walkthrough
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`reviews.high_level_summary_in_walkthrough`
Datatypeboolean
Defaultfalse
+
+
+ +Include the high level summary in the walkthrough comment. + +#### High Level Summary Placeholder + + + + + + + + + + + + + +
LocationReview > Settings > High Level Summary Placeholder
Default@coderabbitai summary
+
+ + + + + + + + + + + + + + + +
Field`reviews.high_level_summary_placeholder`
Datatypestring
Default"@coderabbitai summary"
+
+
+ +Placeholder in the PR/MR description that gets replaced with the high level summary. + +#### Labeling Instructions + + + + + + + + + + + + + +
LocationReview > Settings > Labeling Instructions
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.labeling_instructions`
Datatypearray
Default[]
+
+
+ +Provide guidelines for suggesting labels for the PR/MR. When specific labels or instructions are provided, only those labels are considered, though previous examples are still used to inform the suggestions. If no such labels are provided, suggestions are based solely on previous PR/MRs. + +#### Path Filters + + + + + + + + + + + + + +
LocationReview > Settings > Path Filters
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.path_filters`
Datatypearray
Default[]
+
+
+ +Path filters, if defined, restrict the portions of your repository that CodeRabbit +uses for context when preparing code reviews. + +You can define a list of path specifications, relative to the root of your +repository, to use as path filters. + +Paths can be _exclude paths_, which start with a leading `!` character, or _include +paths_. If the list of paths contains at least one include path, then CodeRabbit +includes _only_ files that match the provided paths. + +For example, the following list of path filters instructs CodeRabbit to limit its reviews +only to files found in the `src` top-level directory, but exclude any `.bin` or `.csv` +files: + +```bash +src/** +!**/*.{bin,csv} +``` + +:::note +Under the hood, CodeRabbit uses your provided list of path filters as an argument +to [`git sparse-checkout`](https://git-scm.com/docs/git-sparse-checkout) when preparing its own copy of your repository for code review +context. +::: + +We strongly recommend defining path filters for any repositories that contain +a significant amount of generated files or data that has no contextual bearing on code reviews. +CodeRabbit can work faster if it can ignore files that aren't relevant to pull requests. +For more information, see [Speed up reviews by adding path filters](https://docs.coderabbit.ai/guides/setup-best-practices#filters). + +#### Path Instructions + + + + + + + + + + + + + +
LocationReview > Settings > Path Instructions
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.path_instructions`
Datatypearray
Default[]
+
+
+ +Path instructions are additional sets of instructions, expressed in natural lanaguge, +that you provide to CodeRabbit for reveiwing certain files in your repository. + +You associate each set of instuctions with a file path relative to the root +of your repository. Your path specification can use extended glob patterns. + +The following example defines a set of path instructions for all TypeScript +and JavaScript files in a reposistory's `src` directory: + + + + ![An example path instruction](/img/reference/path-instructions.png) + + +```yaml +path_instructions: + - path: src/**/*.{ts,tsx,js} + instructions: + - Review the React.js/TypeScript/JavaScript code for best practices + - Check for common security vulnerabilities such as: + - SQL Injection + - Insecure dependencies + - Sensitive data exposure +``` + + + +For further examples of path instructions specific to various programming langauges, +see [the `awesome-coderabbit` public repository](https://github.com/coderabbitai/awesome-coderabbit/tree/main/configs). + +#### Poem + + + + + + + + + + + + + +
LocationReview > Settings > Poem
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.poem`
Datatypeboolean
Defaulttrue
+
+
+ +Generate a poem in the walkthrough comment. + +#### Profile {#profile} + + + + + + + + + + + + + +
LocationReview > Settings > Profile
Defaultchill
+
+ + + + + + + + + + + + + + + +
Field`reviews.profile`
Datatypestring
Default"chill"
+
+
+ +An overall selector for the level of detail that CodeRabbit should apply to +its reviews. Valid values are the following: + +- **`Chill`**: CodeRabbit provides its usual level of commentary. +- **`Assertive`**: CodeRabbit provides significantly deeper or more verbose commentary, + as much as possible. + +The `Chill` profile is the default setting, and is appropriate for most coding +contexts. The `Assertive` profile mode can get quite nitpicky in some circumstances. We recommend leaving this setting in `Chill`, unless a wordier level of code critique would benefit your team's work. + +#### Related Issues + + + + + + + + + + + + + +
LocationReview > Settings > Related Issues
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.related_issues`
Datatypeboolean
Defaulttrue
+
+
+ +Include possibly related issues in the walkthrough. + +#### Related PRs + + + + + + + + + + + + + +
LocationReview > Settings > Related PRs
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.related_prs`
Datatypeboolean
Defaulttrue
+
+
+ +Include possibly related pull requests in the walkthrough. + +#### Request Changes Workflow + + + + + + + + + + + + + +
LocationReview > Settings > Request Changes Workflow
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`reviews.request_changes_workflow`
Datatypeboolean
Defaultfalse
+
+
+ +If enabled, then CodeRabbit marks a pull request as approved once all comments +that CodeRabbit made have been resolved. + +Enable this setting if you want to have CodeRabbit's approval count towards +a minimum number of approvals that your have configured your Git platform +to require before a pull request can be merged. + +#### Review Status + + + + + + + + + + + + + +
LocationReview > Settings > Review Status
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.review_status`
Datatypeboolean
Defaulttrue
+
+
+ +Post review details on each review. Additionally, post a review status when a review is skipped in certain cases. + +#### Sequence Diagrams + + + + + + + + + + + + + +
LocationReview > Settings > Sequence Diagrams
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.sequence_diagrams`
Datatypeboolean
Defaulttrue
+
+
+ +Generate sequence diagrams in the walkthrough. + +#### Suggested Labels + + + + + + + + + + + + + +
LocationReview > Settings > Suggested Labels
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.suggested_labels`
Datatypeboolean
Defaulttrue
+
+
+ +Suggest labels based on the changes in the pull request in the walkthrough. + +#### Suggested Reviewers + + + + + + + + + + + + + +
LocationReview > Settings > Suggested Reviewers
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.suggested_reviewers`
Datatypeboolean
Defaulttrue
+
+
+ +Suggest reviewers based on the changes in the pull request in the walkthrough. + +### Automatic Review + +#### Enable Automatic Review + + + + + + + + + + + + + +
LocationReview > Auto Review > Automatic Review
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_review.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +If enabled, then CodeRabbit reviews new and updated pull requests automatically. For more information, see [Automatically review pull requests](https://docs.coderabbit.ai/guides/code-review-overview#review). + +If disabled, then CodeRabbit performs only reviews that you request manually. For more information on manual review commands, see [Manually request code reviews](/guides/code-review-overview#review). + +Disabling this setting also effectively disables all of the other settings listed in this section. + +#### Automatic Incremental Review + + + + + + + + + + + + + +
LocationReview > Auto Review > Automatic Incremental Review
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_review.auto_incremental_review`
Datatypeboolean
Defaulttrue
+
+
+ +If enabled, then CodeRabbit performs automatic reviews of existing pull requests when their associated branches have commits pushed to them. These incremental reviews happen in addition to the initial code review that CodeRabbit generates after the pull request is first created. + +For more information on manual review commands, see [Manually request code reviews](/guides/code-review-overview#review). + +We recommend leaving this option enabled. + +#### Base Branches {#base-branches} + + + + + + + + + + + + + +
LocationReview > Auto Review > Base Branches
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_review.base_branches`
Datatypearray
Default[]
+
+
+ +A list of branches that CodeRabbit performs automatic code reviews on, other +than the reposiorty's main branch (usually `main` or `master`.) + +For example, if you add `staging` as a base branch, then CodeRabbit automatically +reviews pull requests on both your repository's default branch and its `staging` branch. + +#### Drafts + + + + + + + + + + + + + +
LocationReview > Auto Review > Drafts
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_review.drafts`
Datatypeboolean
Defaultfalse
+
+
+ +If defined, then CodeRabbit automatically reviews pull requests marked as a draft +in your Git platform. + +#### Ignore Title Keywords + + + + + + + + + + + + + +
LocationReview > Auto Review > Ignore Title Keywords
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_review.ignore_title_keywords`
Datatypearray
Default[]
+
+
+ +Ignore reviewing if the title of the pull request contains any of these keywords (case-insensitive). + +#### Labels + + + + + + + + + + + + + +
LocationReview > Auto Review > Labels
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.auto_review.labels`
Datatypearray
Default[]
+
+
+ +If defined with at least one label, then CodeRabbit automatically reviews +only pull requests that have at least one of the labels in this list. + +In this case, you can manually request reviews of pull requests lacking a qualifying label. For more information on manual review commands, see [Manually request code reviews](/guides/code-review-overview#review). + +### Finishing Touches + +#### Docstrings + + + + + + + + + + + + + +
LocationReview > Finishing Touches > Docstrings
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.finishing_touches.docstrings.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +If enabled, then CodeRabbit can generate inline documentation for functions +added in a pull request. For more information, see [Docstrings](/finishing-touches/docstrings). + +#### Unit Tests + + + + + + + + + + + + + +
LocationReview > Finishing Touches > Unit Tests
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.finishing_touches.unit_tests.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +If enabled, then CodeRabbit can generate unit tests for code +added in a pull request. For more information, see [Unit Test Generation](/finishing-touches/unit-test-generation). + +## Chat + +### Auto Reply + + + + + + + + + + + + + +
LocationChat > Auto Reply
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`chat.auto_reply`
Datatypeboolean
Defaulttrue
+
+
+ +Enable the bot to reply automatically without requiring the user to tag it. + +### Integrations + +### Jira + + + + + + + + + + + + + +
LocationChat > Jira
Defaultauto
+
+ + + + + + + + + + + + + + + +
Field`chat.integrations.jira.usage`
Datatypestring
Default"auto"
+
+
+ +Enable the Jira integration for opening issues, etc. 'auto' disables the integration for public repositories. + +### Linear + + + + + + + + + + + + + +
LocationChat > Linear
Defaultauto
+
+ + + + + + + + + + + + + + + +
Field`chat.integrations.linear.usage`
Datatypestring
Default"auto"
+
+
+ +Enable the Linear integration for opening issues, etc. 'auto' disables the integration for public repositories. + +## Knowledge Base + +### Basic settings + +#### Opt Out + + + + + + + + + + + + + +
LocationKnowledge Base > Opt Out
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`knowledge_base.opt_out`
Datatypeboolean
Defaultfalse
+
+
+ +Disable all knowledge base features that require data retention. If you opt out after opting in, all of your existing knowledge base data will be removed from the system. + +#### Pull Requests + + + + + + + + + + + + + +
LocationKnowledge Base > Pull Requests
Defaultauto
+
+ + + + + + + + + + + + + + + +
Field`knowledge_base.pull_requests.scope`
Datatypestring
Default"auto"
+
+
+ +Specify the scope of pull requests to use for the knowledge base. 'local' uses the repository's pull requests, 'global' uses the organization's pull requests, and 'auto' uses repository's pull requests for public repositories and organization's pull requests for private repositories. + +#### Web Search + + + + + + + + + + + + + +
LocationKnowledge Base > Web Search
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`knowledge_base.web_search.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Enable the web search integration. + +### Issues + + + + + + + + + + + + + +
LocationKnowledge Base > Issues
Defaultauto
+
+ + + + + + + + + + + + + + + +
Field`knowledge_base.issues.scope`
Datatypestring
Default"auto"
+
+
+ +Specify the scope of git platform (GitHub/GitLab) issues to use for the knowledge base. 'local' uses the repository's issues, 'global' uses the organization's issues, and 'auto' uses repository's issues for public repositories and organization's issues for private repositories. + +### Jira + +#### Enable Jira + + + + + + + + + + + + + +
LocationKnowledge Base > Jira
Defaultauto
+
+ + + + + + + + + + + + + + + +
Field`knowledge_base.jira.usage`
Datatypestring
Default"auto"
+
+
+ +Enable the Jira knowledge base integration. 'auto' disables the integration for public repositories. + +#### Project Keys + + + + + + + + + + + + + +
LocationKnowledge Base > Project Keys
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`knowledge_base.jira.project_keys`
Datatypearray
Default[]
+
+
+ +Specify the Jira project keys to use for the knowledge base. + +### Learnings + + + + + + + + + + + + + +
LocationKnowledge Base > Learnings
Defaultauto
+
+ + + + + + + + + + + + + + + +
Field`knowledge_base.learnings.scope`
Datatypestring
Default"auto"
+
+
+ +Specify the scope of learnings to use for the knowledge base. 'local' uses the repository's learnings, 'global' uses the organization's learnings, and 'auto' uses repository's learnings for public repositories and organization's learnings for private repositories. + +### Linear + +#### Enable Linear + + + + + + + + + + + + + +
LocationKnowledge Base > Linear
Defaultauto
+
+ + + + + + + + + + + + + + + +
Field`knowledge_base.linear.usage`
Datatypestring
Default"auto"
+
+
+ +Enable the Linear knowledge base integration. 'auto' disables the integration for public repositories. + +#### Team Keys + + + + + + + + + + + + + +
LocationKnowledge Base > Team Keys
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`knowledge_base.linear.team_keys`
Datatypearray
Default[]
+
+
+ +Specify the Linear team keys (identifiers) to use for the knowledge base. E.g. 'ENG' + +## Code Generation + +### Code Generation Language + + + + + + + + + + + + + +
LocationCode Generation > Language
Defaulten-US
+
+ + + + + + + + + + + + + + + +
Field`code_generation.docstrings.language`
Datatypestring
Default"en-US"
+
+
+ +Set the language for docstrings by using the corresponding ISO language code. + +### Docstring Path Instructions + + + + + + + + + + + + + +
LocationCode Generation > Path Instructions
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`code_generation.docstrings.path_instructions`
Datatypearray
Default[]
+
+
+ +Provide additional guidelines for docstring generation based on file paths. + +### Unit Test Path Instructions + + + + + + + + + + + + + +
LocationCode Generation > Unit Test Generation
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`code_generation.unit_tests.path_instructions`
Datatypearray
Default[]
+
+
+ +Provide additional guidelines for unit test generation based on file paths. + +## Tools + +CodeRabbit integrates with various third-party tools for enhanced code analysis. + +### actionlint + +actionlint is a static checker for GitHub Actions workflow files. + +#### Enable actionlint + + + + + + + + + + + + + +
LocationReview > Tools > Enable actionlint
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.actionlint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +is a static checker for GitHub Actions workflow files. + +### ast-grep + +Enable ast-grep | ast-grep is a code analysis tool that helps you to find patterns in your codebase using abstract syntax trees patterns. | v0.38.1 + +#### Essential Rules + + + + + + + + + + + + + +
LocationReview > Tools > ast-grep > Essential Rules
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.ast-grep.essential_rules`
Datatypeboolean
Defaulttrue
+
+
+ +Use ast-grep essentials package. + +#### Packages + + + + + + + + + + + + + +
LocationReview > Tools > ast-grep > Packages
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.ast-grep.packages`
Datatypearray
Default[]
+
+
+ +Predefined packages to be used. + +#### Rule Dirs + + + + + + + + + + + + + +
LocationReview > Tools > ast-grep > Rule Dirs
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.ast-grep.rule_dirs`
Datatypearray
Default[]
+
+
+ +List of rules directories. + +#### Util Dirs + + + + + + + + + + + + + +
LocationReview > Tools > ast-grep > Util Dirs
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.ast-grep.util_dirs`
Datatypearray
Default[]
+
+
+ +List of utils directories. + +### Biome + +Biome is a fast formatter, linter, and analyzer for web projects. + +#### Enable Biome + + + + + + + + + + + + + +
LocationReview > Tools > Enable Biome
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.biome.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Biome is a fast formatter, linter, and analyzer for web projects. + +### Brakeman + +Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications. | v7.0.2 + +#### Enable Brakeman + + + + + + + + + + + + + +
LocationReview > Tools > Enable Brakeman
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.brakeman.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications. + +### Buf + +Buf offers linting for Protobuf files. + +#### Enable Buf + + + + + + + + + + + + + +
LocationReview > Tools > Enable Buf
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.buf.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Buf offers linting for Protobuf files. + +### checkmake + +checkmake is a linter for Makefiles. + +#### Enable checkmake + + + + + + + + + + + + + +
LocationReview > Tools > Enable checkmake
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.checkmake.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +checkmake is a linter for Makefiles. + +### Checkov + +Checkov is a static code analysis tool for infrastructure-as-code files. + +#### Enable Checkov + + + + + + + + + + + + + +
LocationReview > Tools > Enable Checkov
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.checkov.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Checkov is a static code analysis tool for infrastructure-as-code files. + +### CircleCI + +CircleCI tool is a static checker for CircleCI config files. + +#### Enable CircleCI + + + + + + + + + + + + + +
LocationReview > Tools > Enable CircleCI
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.circleci.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +CircleCI tool is a static checker for CircleCI config files. + +### Clippy + +Clippy is a collection of lints to catch common mistakes and improve your Rust code. + +#### Enable Clippy + + + + + + + + + + + + + +
LocationReview > Tools > Enable Clippy
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.clippy.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Clippy is a collection of lints to catch common mistakes and improve your Rust code. + +### Cppcheck + +Cppcheck is a static code analysis tool for the C and C++ programming languages. + +#### Enable Cppcheck + + + + + + + + + + + + + +
LocationReview > Tools > Enable Cppcheck
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.cppcheck.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Cppcheck is a static code analysis tool for the C and C++ programming languages. + +### detekt + +Detekt is a static code analysis tool for Kotlin files. + +#### Enable detekt + + + + + + + + + + + + + +
LocationReview > Tools > detekt > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.detekt.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Enable detekt. + +#### Config File + + + + + + + + + + + + + +
LocationReview > Tools > detekt > Config File
Default_No default_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.detekt.config_file`
Datatypestring
Default_No default_
+
+
+ +Optional path to the detekt configuration file relative to the repository. + +### dotenv-linter + +dotenv-linter is a tool for checking and fixing .env files for problems and best practices + +#### Enable dotenv-linter + + + + + + + + + + + + + +
LocationReview > Tools > Enable dotenv-linter
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.dotenvLint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +dotenv-linter is a tool for checking and fixing .env files for problems and best practices + +### ESLint + +ESLint is a static code analysis tool for JavaScript files. + +#### Enable ESLint + + + + + + + + + + + + + +
LocationReview > Tools > Enable ESLint
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.eslint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +ESLint is a static code analysis tool for JavaScript files. + +### Flake8 + +Flake8 is a static code analysis tool for Python files. + +#### Enable Flake8 + + + + + + + + + + + + + +
LocationReview > Tools > Flake8 > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.flake8.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Flake8 is a static code analysis tool for Python files. + +### GitHub Checks + +GitHub Checks integration configuration. + +#### Enable GitHub Checks + + + + + + + + + + + + + +
LocationReview > Tools > GitHub Checks > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.github-checks.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Enable integration, defaults to true + +#### Timeout Ms + + + + + + + + + + + + + +
LocationReview > Tools > GitHub Checks > Timeout Ms
Default90000
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.github-checks.timeout_ms`
Datatypenumber
Default90000
+
+
+ +Time in milliseconds to wait for all GitHub Checks to conclude. + +### Gitleaks + +Gitleaks is a secret scanner. + +#### Enable Gitleaks + + + + + + + + + + + + + +
LocationReview > Tools > Enable Gitleaks
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.gitleaks.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Gitleaks is a secret scanner. + +### golangci-lint + +golangci-lint is a fast linters runner for Go. + +#### Enable golangci-lint + + + + + + + + + + + + + +
LocationReview > Tools > golangci-lint > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.golangci-lint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Enable golangci-lint. + +#### Config File + + + + + + + + + + + + + +
LocationReview > Tools > golangci-lint > Config File
Default_No default_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.golangci-lint.config_file`
Datatypestring
Default_No default_
+
+
+ +Optional path to the golangci-lint configuration file relative to the repository. Useful when the configuration file is named differently than the default '.golangci.yml', '.golangci.yaml', '.golangci.toml', '.golangci.json'. + +### Hadolint + +Hadolint is a Dockerfile linter. + +#### Enable Hadolint + + + + + + + + + + + + + +
LocationReview > Tools > Enable Hadolint
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.hadolint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Hadolint is a Dockerfile linter. + +### HTMLHint + +HTMLHint is a static code analysis tool for HTML files. + +#### Enable HTMLHint + + + + + + + + + + + + + +
LocationReview > Tools > HTMLHint > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.htmlhint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Enable HTMLHint. + +#### Config File + + + + + + + + + + + + + +
LocationReview > Tools > HTMLHint > Config File
Default_No default_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.htmlhint.config_file`
Datatypestring
Default_No default_
+
+
+ +Optional path to the HTMLHint configuration file relative to the repository. This is useful when the configuration file is named differently than the default '.htmlhintrc'. + +### LanguageTool + +LanguageTool is a style and grammar checker for 30+ languages. + +#### Disabled Categories + + + + + + + + + + + + + +
LocationReview > Tools > LanguageTool > Disabled Categories
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.languagetool.disabled_categories`
Datatypearray
Default[]
+
+
+ +IDs of categories to be disabled. Note: TYPOS, TYPOGRAPHY, and CASING are always disabled. + +#### Disabled Rules + + + + + + + + + + + + + +
LocationReview > Tools > LanguageTool > Disabled Rules
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.languagetool.disabled_rules`
Datatypearray
Default[]
+
+
+ +IDs of rules to be disabled. Note: EN_UNPAIRED_BRACKETS, and EN_UNPAIRED_QUOTES are always disabled. + +#### Enable LanguageTool + + + + + + + + + + + + + +
LocationReview > Tools > LanguageTool > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.languagetool.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Enable LanguageTool + +#### Enabled Categories + + + + + + + + + + + + + +
LocationReview > Tools > LanguageTool > Enabled Categories
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.languagetool.enabled_categories`
Datatypearray
Default[]
+
+
+ +IDs of categories to be enabled. + +#### Enabled Only + + + + + + + + + + + + + +
LocationReview > Tools > LanguageTool > Enabled Only
Defaultfalse
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.languagetool.enabled_only`
Datatypeboolean
Defaultfalse
+
+
+ +Only the rules and categories whose IDs are specified with 'enabledRules' or 'enabledCategories' are enabled. + +#### Enabled Rules + + + + + + + + + + + + + +
LocationReview > Tools > LanguageTool > Enabled Rules
Default_Empty array_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.languagetool.enabled_rules`
Datatypearray
Default[]
+
+
+ +IDs of rules to be enabled. The rule won't run unless 'level' is set to a level that activates the rule. + +#### Level + + + + + + + + + + + + + +
LocationReview > Tools > LanguageTool > Level
Defaultdefault
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.languagetool.level`
Datatypestring
Default"default"
+
+
+ +If set to 'picky', additional rules will be activated, i.e. rules that you might only find useful when checking formal text. + +### Luacheck + +Configuration for Lua code linting to ensure code quality + +#### Enable Luacheck + + + + + + + + + + + + + +
LocationReview > Tools > Enable Luacheck
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.luacheck.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Luacheck helps maintain consistent and error-free Lua code + +### markdownlint + +markdownlint-cli2 is a static analysis tool to enforce standards and consistency for Markdown files. + +#### Enable markdownlint + + + + + + + + + + + + + +
LocationReview > Tools > Enable markdownlint
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.markdownlint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +markdownlint-cli2 is a static analysis tool to enforce standards and consistency for Markdown files. + +### OXC + +OXC is a JavaScript/TypeScript linter written in Rust. + +#### Enable OXC + + + + + + + + + + + + + +
LocationReview > Tools > Enable OXC
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.oxc.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +OXC is a JavaScript/TypeScript linter written in Rust. + +### PHPStan + +PHPStan is a tool to analyze PHP code. + +#### Enable PHPStan + + + + + + + + + + + + + +
LocationReview > Tools > PHPStan > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.phpstan.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +PHPStan requires [config file](https://phpstan.org/config-reference#config-file) in your repository root. Please ensure that this file contains the `paths:` parameter. + +#### Level + + + + + + + + + + + + + +
LocationReview > Tools > PHPStan > Level
Defaultdefault
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.phpstan.level`
Datatypestring
Default"default"
+
+
+ +Specify the [rule level](https://phpstan.org/user-guide/rule-levels) to run. This setting is ignored if your configuration file already has a `level:` parameter. + +### PMD + +PMD is an extensible multilanguage static code analyzer. Itโ€™s mainly concerned with Java. + +#### Enable PMD + + + + + + + + + + + + + +
LocationReview > Tools > PMD > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.pmd.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Enable PMD. + +#### Config File + + + + + + + + + + + + + +
LocationReview > Tools > PMD > Config File
Default_No default_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.pmd.config_file`
Datatypestring
Default_No default_
+
+
+ +Optional path to the PMD configuration file relative to the repository. + +### PHPMD + +PHPMD is a static code analysis tool for PHP files. + +#### Enable PHPMD + + + + + + + + + + + + + +
LocationReview > Tools > Enable PHPMD
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.phpmd.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +PHPMD is a static code analysis tool for PHP files. + +### PHPCS + +PHPCS is a static code analysis and coding-standard checker for PHP (plus JS/CSS) files. + +#### Enable PHPCS + + + + + + + + + + + + + +
LocationReview > Tools > Enable PHPCS
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.phpcs.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +PHPCS is a static code analysis tool for PHP, JavaScript and CSS files. + +### Prisma Schema Linting + +Configuration for Prisma Schema linting to ensure schema file quality + +#### Enable Prisma Schema Linting + + + + + + + + + + + + + +
LocationReview > Tools > Enable Prisma Schema Linting
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.prismaLint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Prisma Schema linting helps maintain consistent and error-free schema files + +### Pylint + +Pylint is a Python static code analysis tool. + +#### Enable Pylint + + + + + + + + + + + + + +
LocationReview > Tools > Enable Pylint
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.pylint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Pylint is a Python static code analysis tool. + +### Regal + +Regal is a linter and language server for Rego. + +#### Enable Regal + + + + + + + + + + + + + +
LocationReview > Tools > Enable Regal
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.regal.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Regal is a linter and language server for Rego. + +### RuboCop + +RuboCop is a Ruby static code analyzer (a.k.a. linter ) and code formatter. + +#### Enable RuboCop + + + + + + + + + + + + + +
LocationReview > Tools > Enable RuboCop
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.rubocop.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +RuboCop is a Ruby static code analyzer (a.k.a. linter ) and code formatter. + +### Ruff + +Ruff is a Python linter and code formatter. + +#### Enable Ruff + + + + + + + + + + + + + +
LocationReview > Tools > Enable Ruff
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.ruff.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Ruff is a Python linter and code formatter. + +### Semgrep + +Semgrep is a static analysis tool designed to scan code for security vulnerabilities and code quality issues. + +#### Enable Semgrep + + + + + + + + + + + + + +
LocationReview > Tools > Semgrep > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.semgrep.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Enable Semgrep. + +#### Config File + + + + + + + + + + + + + +
LocationReview > Tools > Semgrep > Config File
Default_No default_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.semgrep.config_file`
Datatypestring
Default_No default_
+
+
+ +Optional path to the Semgrep configuration file relative to the repository. + +### ShellCheck + +ShellCheck is a static analysis tool that finds bugs in your shell scripts. + +#### Enable ShellCheck + + + + + + + + + + + + + +
LocationReview > Tools > Enable ShellCheck
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.shellcheck.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +ShellCheck is a static analysis tool that finds bugs in your shell. + +### Shopify Theme Check + +Configuration for Shopify Theme Check to ensure theme quality and best practices + +#### Enable Shopify Theme Check + + + + + + + + + + + + + +
LocationReview > Tools > Enable Shopify Theme Check
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.shopifyThemeCheck.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +A linter for Shopify themes that helps you follow Shopify theme & Liquid best practices + +### SQLFluff + +SQLFluff is an open source, dialect-flexible and configurable SQL linter. + +#### Enable SQLFluff + + + + + + + + + + + + + +
LocationReview > Tools > Enable SQLFluff
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.sqlfluff.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +SQLFluff is an open source, dialect-flexible and configurable SQL linter. + +### SwiftLint + +SwiftLint integration configuration object. + +#### Enable SwiftLint + + + + + + + + + + + + + +
LocationReview > Tools > SwiftLint > Enable
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.swiftlint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +Enable SwiftLint. + +#### Config File + + + + + + + + + + + + + +
LocationReview > Tools > SwiftLint > Config File
Default_No default_
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.swiftlint.config_file`
Datatypestring
Default_No default_
+
+
+ +Optional path to the SwiftLint configuration file relative to the repository. This is useful when the configuration file is named differently than the default '.swiftlint.yml' or '.swiftlint.yaml'. + +### YAMLlint + +YAMLlint is a linter for YAML files. + +#### Enable YAMLlint + + + + + + + + + + + + + +
LocationReview > Tools > Enable YAMLlint
Defaulttrue
+
+ + + + + + + + + + + + + + + +
Field`reviews.tools.yamllint.enabled`
Datatypeboolean
Defaulttrue
+
+
+ +YAMLlint is a linter for YAML files. diff --git a/docs/reference/review-commands.md b/docs/reference/review-commands.md new file mode 100644 index 00000000..cb50b59c --- /dev/null +++ b/docs/reference/review-commands.md @@ -0,0 +1,48 @@ +--- +title: Code review commands +description: A list of commands that you can issue to CodeRabbit during code reviews. +--- + +This page lists the various commands that you can issue to CodeRabbit through +its chat interface during code reviews. For more information about working with +CodeRabbit through chat, see [Interact with CodeRabbit reviews](/guides/code-review-overview#interact). + +| Command | Description | Use Case | +| --------------------------- | ---------------------------------------------------- | ---------------------------------------------------------------------------- | +| `@coderabbitai review` | Triggers an incremental review of new changes | When automatic reviews are disabled or you want to manually trigger a review | +| `@coderabbitai full review` | Performs a complete review of all files from scratch | When you want to get fresh insights on the entire PR | +| `@coderabbitai summary` | Regenerates the PR summary | When you want an updated overview after making changes | + +## Code review flow control + +| Command | Description | Use Case | +| ---------------------- | ---------------------------------------- | --------------------------------------------------- | +| `@coderabbitai pause` | Temporarily stops reviews on the PR | When you're making multiple rapid changes | +| `@coderabbitai resume` | Restarts reviews after a pause | When you're ready for CodeRabbit to review again | +| `@coderabbitai ignore` | Permanently disables reviews for this PR | When you want to handle the review process manually | + +## Comment management + +| Command | Description | Use Case | +| ----------------------- | --------------------------------------- | ------------------------------------------------------- | +| `@coderabbitai resolve` | Resolves all CodeRabbit review comments | When you've addressed all feedback and want to clean up | + +## Documentation commands + +| Command | Description | Use Case | +| ---------------------------------------- | -------------------------------------------- | --------------------------------------------------- | +| `@coderabbitai generate docstrings` | Generates docstrings for functions in the PR | When you need automatic documentation for your code | +| `@coderabbitai auto-generate unit tests` | Generates unit tests for the PR | When you need automatic unit testing for your code | +| `@coderabbitai configuration` | Shows current CodeRabbit settings | When you need to check or export your configuration | + +## Agentic chat commands + +| Command | Description | Use Case | +| -------------------- | ---------------------------------------------------------- | ---------------------------------------------------- | +| `@coderabbitai plan` | Get the agentic chat to plan an edit for previous comments | When you want CodeRabbit to change your code for you | + +## Help and support + +| Command | Description | Use Case | +| -------------------- | ------------------------------------------ | ------------------------------------------ | +| `@coderabbitai help` | Displays available commands and usage info | When you need guidance on using CodeRabbit | diff --git a/docs/reference/yaml-template.md b/docs/reference/yaml-template.md new file mode 100644 index 00000000..9fac39e2 --- /dev/null +++ b/docs/reference/yaml-template.md @@ -0,0 +1,192 @@ +--- +title: Configuration file template +--- + +You can use the following template as a basis for a new `.coderabbit.yaml` configuration file at the root level of your repository. + +If used as-is as a `.coderabbit.yaml` file, then this template sets the default, recommended values for [all CodeRabbit repository options](/reference/configuration). You can then update the values to best suit your team's code-review needs. + +For more information about using a `.coderabbit.yaml` file, see [Add a configuration file](/getting-started/configure-coderabbit). + +For a general overview of CodeRabbit configuration, see [Configure CodeRabbit](/guides/configuration-overview). + +```yaml +# yaml-language-server: $schema=https://storage.googleapis.com/coderabbit_public_assets/schema.v2.json + +language: en-US +tone_instructions: "" +early_access: true +enable_free_tier: true +reviews: + profile: chill + request_changes_workflow: false + high_level_summary: true + high_level_summary_placeholder: "@coderabbitai summary" + high_level_summary_in_walkthrough: false + auto_title_placeholder: "@coderabbitai" + auto_title_instructions: "" + review_status: true + commit_status: true + fail_commit_status: false + collapse_walkthrough: false + changed_files_summary: true + sequence_diagrams: true + assess_linked_issues: true + related_issues: true + related_prs: true + suggested_labels: true + auto_apply_labels: false + suggested_reviewers: true + auto_assign_reviewers: false + poem: true + labeling_instructions: + - label: "" + instructions: "" + path_filters: [] + path_instructions: + - path: "" + instructions: "" + abort_on_close: true + disable_cache: false + auto_review: + enabled: true + auto_incremental_review: true + ignore_title_keywords: [] + labels: [] + drafts: false + base_branches: [] + finishing_touches: + docstrings: + enabled: true + unit_tests: + enabled: true + tools: + ast-grep: + rule_dirs: [] + util_dirs: [] + essential_rules: true + packages: [] + shellcheck: + enabled: true + ruff: + enabled: true + markdownlint: + enabled: true + github-checks: + enabled: true + timeout_ms: 90000 + languagetool: + enabled: true + enabled_rules: [] + disabled_rules: [] + enabled_categories: [] + disabled_categories: [] + enabled_only: false + level: default + biome: + enabled: true + hadolint: + enabled: true + swiftlint: + enabled: true + config_file: "" + phpstan: + enabled: true + level: default + golangci-lint: + enabled: true + config_file: "" + yamllint: + enabled: true + gitleaks: + enabled: true + checkov: + enabled: true + detekt: + enabled: true + config_file: "" + eslint: + enabled: true + flake8: + enabled: true + rubocop: + enabled: true + buf: + enabled: true + regal: + enabled: true + actionlint: + enabled: true + pmd: + enabled: true + config_file: "" + phpmd: + enabled: true + phpcs: + enabled: true + cppcheck: + enabled: true + semgrep: + enabled: true + config_file: "" + circleci: + enabled: true + clippy: + enabled: true + sqlfluff: + enabled: true + prismaLint: + enabled: true + pylint: + enabled: true + oxc: + enabled: true + shopifyThemeCheck: + enabled: true + luacheck: + enabled: true + brakeman: + enabled: true + dotenvLint: + enabled: true + htmlhint: + enabled: true + checkmake: + enabled: true +chat: + auto_reply: true + integrations: + jira: + usage: auto + linear: + usage: auto +knowledge_base: + opt_out: false + web_search: + enabled: true + code_guidelines: + enabled: true + filePatterns: [] + learnings: + scope: auto + issues: + scope: auto + jira: + usage: auto + project_keys: [] + linear: + usage: auto + team_keys: [] + pull_requests: + scope: auto +code_generation: + docstrings: + language: en-US + path_instructions: + - path: "" + instructions: "" + unit_tests: + path_instructions: + - path: "" + instructions: "" +``` diff --git a/docs/self-hosted/azure-devops.md b/docs/self-hosted/azure-devops.md index 97137b11..a843e1a7 100644 --- a/docs/self-hosted/azure-devops.md +++ b/docs/self-hosted/azure-devops.md @@ -64,7 +64,8 @@ LLM_PROVIDER=azure-openai LLM_TIMEOUT=360000 AZURE_OPENAI_ENDPOINT= AZURE_OPENAI_API_KEY= -## it is recommended to deploy gpt-4.1-mini, o4-mini, o3 deployments, gpt-4.1 (optionally). +# it is recommended to deploy text-embedding-3-large, gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally). +AZURE_TEXT_EMBEDDING_3_LARGE_DEPLOYMENT_NAME= AZURE_GPT41MINI_DEPLOYMENT_NAME= AZURE_O4MINI_DEPLOYMENT_NAME= AZURE_O3_DEPLOYMENT_NAME= @@ -96,6 +97,7 @@ HTTPS_PROXY=[] NO_PROXY=[] # if using AWS Bedrock +# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4. LLM_PROVIDER=bedrock-anthropic LLM_TIMEOUT=360000 AWS_ACCESS_KEY_ID= @@ -115,7 +117,7 @@ CODERABBIT_API_KEY= ENABLE_METRICS=[true] ENABLE_LEARNINGS=[true] # if using CodeRabbit's learnings, also provide the following -# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc. +# for example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc. OBJECT_STORE_URI=[] JIRA_HOST=[] diff --git a/docs/self-hosted/bitbucket.md b/docs/self-hosted/bitbucket.md index 0adbeed6..7e7faf2b 100644 --- a/docs/self-hosted/bitbucket.md +++ b/docs/self-hosted/bitbucket.md @@ -56,7 +56,8 @@ LLM_PROVIDER=azure-openai LLM_TIMEOUT=360000 AZURE_OPENAI_ENDPOINT= AZURE_OPENAI_API_KEY= -## it is recommended to deploy gpt-4.1-mini, o4-mini, o3 deployments, gpt-4.1 (optionally). +# it is recommended to deploy text-embedding-3-large, gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally). +AZURE_TEXT_EMBEDDING_3_LARGE_DEPLOYMENT_NAME= AZURE_GPT41MINI_DEPLOYMENT_NAME= AZURE_O4MINI_DEPLOYMENT_NAME= AZURE_O3_DEPLOYMENT_NAME= @@ -88,6 +89,7 @@ HTTPS_PROXY=[] NO_PROXY=[] # if using AWS Bedrock +# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4. LLM_PROVIDER=bedrock-anthropic LLM_TIMEOUT=360000 AWS_ACCESS_KEY_ID= @@ -110,7 +112,7 @@ CODERABBIT_API_KEY= ENABLE_METRICS=[true] ENABLE_LEARNINGS=[true] # if using CodeRabbit's learnings, also provide the following -# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc. +# for example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc. OBJECT_STORE_URI=[] JIRA_HOST=[] diff --git a/docs/self-hosted/github.md b/docs/self-hosted/github.md index 8f7e4962..3031e45c 100644 --- a/docs/self-hosted/github.md +++ b/docs/self-hosted/github.md @@ -67,7 +67,8 @@ LLM_PROVIDER=azure-openai LLM_TIMEOUT=360000 AZURE_OPENAI_ENDPOINT= AZURE_OPENAI_API_KEY= -## it is recommended to deploy gpt-4.1-mini, o4-mini, o3 deployments, gpt-4.1 (optionally). +# it is recommended to deploy text-embedding-3-large, gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally). +AZURE_TEXT_EMBEDDING_3_LARGE_DEPLOYMENT_NAME= AZURE_GPT41MINI_DEPLOYMENT_NAME= AZURE_O4MINI_DEPLOYMENT_NAME= AZURE_O3_DEPLOYMENT_NAME= @@ -99,6 +100,7 @@ HTTPS_PROXY=[] NO_PROXY=[] # if using AWS Bedrock +# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4. LLM_PROVIDER=bedrock-anthropic LLM_TIMEOUT=360000 AWS_ACCESS_KEY_ID= @@ -128,7 +130,7 @@ CODERABBIT_API_KEY= ENABLE_METRICS=[true] ENABLE_LEARNINGS=[true] # if using CodeRabbit's learnings, also provide the following -# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc. +# for example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc. OBJECT_STORE_URI=[] JIRA_HOST=[] diff --git a/docs/self-hosted/gitlab.md b/docs/self-hosted/gitlab.md index 42736e2f..cd35c19f 100644 --- a/docs/self-hosted/gitlab.md +++ b/docs/self-hosted/gitlab.md @@ -62,7 +62,8 @@ LLM_PROVIDER=azure-openai LLM_TIMEOUT=360000 AZURE_OPENAI_ENDPOINT= AZURE_OPENAI_API_KEY= -## it is recommended to deploy gpt-4.1-mini, o4-mini, o3 deployments, gpt-4.1 (optionally). +# it is recommended to deploy text-embedding-3-large, gpt-4.1-mini, o4-mini, o3, gpt-4.1 (optionally). +AZURE_TEXT_EMBEDDING_3_LARGE_DEPLOYMENT_NAME= AZURE_GPT41MINI_DEPLOYMENT_NAME= AZURE_O4MINI_DEPLOYMENT_NAME= AZURE_O3_DEPLOYMENT_NAME= @@ -94,6 +95,7 @@ HTTPS_PROXY=[] NO_PROXY=[] # if using AWS Bedrock +# it is required to have access to claude-3-haiku, claude-3-5-haiku, claude-sonnet-4, claude-opus-4. LLM_PROVIDER=bedrock-anthropic LLM_TIMEOUT=360000 AWS_ACCESS_KEY_ID= @@ -112,6 +114,9 @@ SELF_HOSTED=gitlab GITLAB_BOT_TOKEN= GITLAB_WEBHOOK_SECRET= +# if seeing '500 Internal Server Error' in CodeRabbit logs when trying to post review comments, +# make sure to set the following environment variable to 1500 (1.5 seconds). +GITLAB_PUBLISH_DELAY=[] CODERABBIT_LICENSE_KEY= @@ -119,7 +124,7 @@ CODERABBIT_API_KEY= ENABLE_METRICS=[true] ENABLE_LEARNINGS=[true] # if using CodeRabbit's learnings, also provide the following -# For example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc. +# for example, s3://bucket/path/to/database, gs://bucket/path/to/database, etc. OBJECT_STORE_URI=[] JIRA_HOST=[] diff --git a/docs/tools/brakeman.md b/docs/tools/brakeman.md new file mode 100644 index 00000000..d9fac002 --- /dev/null +++ b/docs/tools/brakeman.md @@ -0,0 +1,40 @@ +--- +title: Brakeman +sidebar_label: Brakeman +description: CodeRabbit's guide to Brakeman. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[Brakeman](https://brakemanscanner.org/) is a static analysis tool which checks Ruby on Rails applications for security vulnerabilities. It scans your application's code for potential security issues and provides detailed reports about any vulnerabilities it finds. + +## Supported Files + +Brakeman will run on files with the following extensions: + +- `Gemfile` +- `*.rb` +- `*.erb` + +## Features + +Brakeman can detect many critical vulnerabilities such as: + +- SQL injection +- Cross-site scripting (XSS) +- Mass assignment +- Remote code execution +- And many more security vulnerabilities +- Out of date package versions +- Etc + +## Links + +- [Brakeman Official Website](https://brakemanscanner.org/) +- [Brakeman GitHub Repository](https://github.com/presidentbeef/brakeman) +- [Brakeman Documentation](https://brakemanscanner.org/docs/) +- [Warning Types](https://brakemanscanner.org/docs/warning_types/) diff --git a/docs/tools/checkmake.md b/docs/tools/checkmake.md new file mode 100644 index 00000000..8d623ca1 --- /dev/null +++ b/docs/tools/checkmake.md @@ -0,0 +1,30 @@ +--- +title: Checkmake +sidebar_label: Checkmake +description: CodeRabbit's guide to Checkmake. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[Checkmake](https://github.com/mrtazz/checkmake) is a linter for Makefiles. + +## Files + +Checkmake will run checks against any `Makefile`. + +## Configuration + +Checkmake supports the following config files: + +- `checkmake.yml` +- `checkmake.yaml` + +CodeRabbit will use the default settings based on the profile selected if no config file is found. + +## Links + +- [Checkmake Configuration](https://github.com/mrtazz/checkmake#configuration) diff --git a/docs/tools/clippy.md b/docs/tools/clippy.md new file mode 100644 index 00000000..257af0e3 --- /dev/null +++ b/docs/tools/clippy.md @@ -0,0 +1,50 @@ +--- +title: Clippy +sidebar_label: Clippy +description: CodeRabbit's guide to Clippy. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[Clippy](https://github.com/rust-lang/rust-clippy) is a collection of lints to catch common mistakes and improve your Rust code. It is the official linter for the Rust programming language. + +## Supported Files + +Clippy will run on files with the following extensions: + +- `*.rs` + +## Configuration + +Clippy supports the following configuration files: + +- `clippy.toml` +- `.clippy.toml` + +:::note + +Clippy does not require configuration to run. If no configuration file is found, it will use default settings. + +A Cargo.toml is required. + +::: + +## Features + +Clippy can detect many code quality issues such as: + +- Style violations +- Common mistakes +- Performance issues +- Deprecated code patterns +- And many more Rust-specific issues + +## Links + +- [Clippy GitHub Repository](https://github.com/rust-lang/rust-clippy) +- [Clippy Documentation](https://rust-lang.github.io/rust-clippy/master/) +- [Available Lints](https://rust-lang.github.io/rust-clippy/master/index.html) diff --git a/docs/tools/dotenv.md b/docs/tools/dotenv.md new file mode 100644 index 00000000..cac2613f --- /dev/null +++ b/docs/tools/dotenv.md @@ -0,0 +1,33 @@ +--- +title: Dotenv Linter +sidebar_label: Dotenv Linter +description: CodeRabbit's guide to Dotenv Linter. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[Dotenv Linter](https://github.com/dotenv-linter/dotenv-linter) is a lightning-fast linter for `.env` files. It helps ensure your environment files are consistent, typo-free, and follow best practices. + +:::note + +Dotenv Linter does not require configuration to run and automatically anlysises `.env` files. If no configuration file is found, it will use default settings. + +::: + +## Features + +Dotenv Linter can detect: + +- Key duplication +- Missing values +- Incorrect formatting +- Invalid characters +- And many more issues + +## Links + +- [Dotenv Linter GitHub Repository](https://github.com/dotenv-linter/dotenv-linter) diff --git a/docs/tools/flake8.md b/docs/tools/flake8.md new file mode 100644 index 00000000..a1a18881 --- /dev/null +++ b/docs/tools/flake8.md @@ -0,0 +1,46 @@ +--- +title: Flake8 +sidebar_label: Flake8 +description: CodeRabbit's guide to Flake8. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[Flake8](https://flake8.pycqa.org/) is a Python linting utility that wraps PyFlakes, pycodestyle, and Mccabe to check your Python or Jupiter Notebook code for style and logical errors. + +## Supported Files + +Flake8 will run on files with the following extensions: + +- `*.py` +- `*.ipynb` (using nbqa) + +## Configuration + +Flake8 supports the following config files: + +- `.flake8` + +CodeRabbit will not run Flake8 if no config file is found. + +## Features + +Flake8 can detect many issues such as: + +- Style violations (PEP 8) +- Logical errors and unused imports +- Code complexity issues +- Syntax errors +- And many more + +## Links + +- [Flake8 Official Website](https://flake8.pycqa.org/) +- [Flake8 GitHub Repository](https://github.com/pycqa/flake8) +- [Flake8 Documentation](https://flake8.pycqa.org/en/latest/) +- [Flake8 Configuration](https://flake8.pycqa.org/en/latest/user/configuration.html) +- [nbqa Documentation](https://github.com/nbQA-dev/nbQA) diff --git a/docs/tools/htmlhint.md b/docs/tools/htmlhint.md new file mode 100644 index 00000000..c8fd61ea --- /dev/null +++ b/docs/tools/htmlhint.md @@ -0,0 +1,31 @@ +--- +title: HTMLHint +sidebar_label: HTMLHint +description: CodeRabbit's guide to HTMLHint. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[HTMLHint](https://htmlhint.com/) is a static code analysis tool for HTML. + +## Files + +HTMLHint will run checks against `*.html` files. + +## Configuration + +HTMLHint supports the following config files: + +- `.htmlhintrc` +- `.htmlhintrc.json` +- `htmlhintrc.json` + +CodeRabbit will use the default settings based on the profile selected if no config file is found. + +## Links + +- [HTMLHint Configuration](https://htmlhint.com/docs/user-guide/getting-started) diff --git a/docs/tools/list.md b/docs/tools/list.md new file mode 100644 index 00000000..f81880a3 --- /dev/null +++ b/docs/tools/list.md @@ -0,0 +1,90 @@ +--- +title: List of supported tools +description: Overview of CodeRabbit's supported linters and security analysis tools +--- + +This is a list of the third-party open-source linters and security analysis tools that CodeRabbit uses to generate code reviews. + +For more information about fine-tuning the CodeRabbit configuration of a tool, click that tool's name in the following list. + +For an overview of how CodeRabbit uses these tools when generating code reviews, as well as general information about controlling their use, see [Configure third-party tools](/tools/). + +| Technology | Tools | Category | +| :-------------------------- | :--------------------------------------------------------- | :-------------------------------------------------- | +| All | [Gitleaks][Gitleaks], [Pipeline Remediation][Pipeline] | Code Security, CI/CD | +| Azure DevOps Pipelines | [Pipeline Remediation][Pipeline] | CI/CD Failure Remediation | +| CircleCI | [CircleCI][CircleCI], [Pipeline Remediation][Pipeline] | Configuration Validation, CI/CD Failure Remediation | +| CloudFormation | [Checkov][Checkov] | Code Security | +| Cppcheck | [Cppcheck][Cppcheck] | Code Quality | +| CSS | [Biome][Biome] | Code Quality | +| Docker | [Hadolint][Hadolint], [Checkov][Checkov] | Code Quality, Code Security | +| Environment Files (.env) | [Dotenv Linter][DotenvLinter] | Code Quality | +| GitHub Actions | [actionlint][actionlint], [Pipeline Remediation][Pipeline] | Code Quality, CI/CD Failure Remediation | +| GitLab Pipelines | [Pipeline Remediation][Pipeline] | CI/CD Failure Remediation | +| Go | [golangci-lint][golangci-lint] | Code Quality | +| Helm | [Checkov][Checkov] | Code Security | +| HTML | [HTMLHint][HTMLHint] | Code Quality | +| Javascript | [Biome][Biome], [oxlint][oxlint] | Code Quality | +| JSON, JSONC | [Biome][Biome] | Code Quality | +| JSX | [Biome][Biome], [oxlint][oxlint] | Code Quality | +| Kotlin | [detekt][detekt] | Code Quality | +| Kubernetes | [Checkov][Checkov] | Code Security | +| Lua | [Luacheck][Luacheck] | Code Quality | +| Makefile | [Checkmake][Checkmake] | Code Quality | +| Markdown | [markdownlint][markdownlint], [LanguageTool][LanguageTool] | Code Quality, Grammar Checking | +| PHP | [PHPStan][PHPStan], [PHPMD][PHPMD], [PHPCS][PHPCS] | Code Quality | +| Plaintext | [LanguageTool][LanguageTool] | Grammar and Spell Checking | +| Java | [PMD][PMD] | Code Quality | +| Protobuf | [Buf][Buf] | Code Quality | +| Python | [Ruff][Ruff], [Pylint][Pylint], [Flake8][Flake8] | Code Quality | +| Jupyter Notebooks | [Ruff][Ruff], [Pylint][Pylint], [Flake8][Flake8] | Code Quality | +| Regal | [Regal][Regal] | Code Quality | +| Ruby | [RuboCop][RuboCop], [Brakeman][Brakeman] | Code Quality, Code Security | +| Rust | [Clippy][Clippy] | Code Quality | +| Semgrep | [Semgrep][Semgrep] | Code Security | +| Shell (sh, bash, ksh, dash) | [ShellCheck][ShellCheck] | Code Quality | +| Shopify | [Shopify CLI][ShopifyCLI] | Code Quality | +| SQL | [SQLFluff][SQLFluff] | Code Quality | +| Swift | [SwiftLint][SwiftLint] | Code Quality | +| Terraform | [Checkov][Checkov] | Code Security | +| TSX | [Biome][Biome], [oxlint][oxlint] | Code Quality | +| Typescript | [Biome][Biome], [oxlint][oxlint] | Code Quality | +| YAML | [YAMLlint][YAMLlint] | Code Quality | +| Prisma | [Prisma Lint][PrismaLint] | Code Quality | + +[ShellCheck]: /tools/shellcheck.md +[SQLFluff]: /tools/sqlfluff.md +[Ruff]: /tools/ruff.md +[markdownlint]: /tools/markdownlint.md +[LanguageTool]: /tools/languagetool.md +[Biome]: /tools/biome.md +[Hadolint]: /tools/hadolint.md +[SwiftLint]: /tools/swiftlint.md +[PHPStan]: /tools/phpstan.md +[golangci-lint]: /tools/golangci-lint.md +[YAMLlint]: /tools/yamllint.md +[Gitleaks]: /tools/gitleaks.md +[Checkov]: /tools/checkov.md +[detekt]: /tools/detekt.md +[RuboCop]: /tools/rubocop.md +[Buf]: /tools/buf.md +[actionlint]: /tools/actionlint.md +[Regal]: /tools/regal.md +[PMD]: /tools/pmd.md +[Cppcheck]: /tools/cppcheck.md +[CircleCI]: /tools/circleci.md +[Semgrep]: /tools/semgrep.md +[Pipeline]: /tools/pipeline-remediation.md +[PrismaLint]: /tools/prisma-lint.md +[oxlint]: /tools/oxlint.md +[ShopifyCLI]: /tools/shopify-cli.md +[Luacheck]: /tools/luacheck.md +[Brakeman]: /tools/brakeman.md +[Clippy]: /tools/clippy.md +[Pylint]: /tools/pylint.md +[DotenvLinter]: /tools/dotenv.md +[HTMLHint]: /tools/htmlhint.md +[Checkmake]: /tools/checkmake.md +[PHPMD]: /tools/phpmd.md +[PHPCS]: /tools/phpcs.md +[Flake8]: /tools/flake8.md diff --git a/docs/tools/luacheck.md b/docs/tools/luacheck.md new file mode 100644 index 00000000..3a8414b6 --- /dev/null +++ b/docs/tools/luacheck.md @@ -0,0 +1,49 @@ +--- +title: Luacheck +sidebar_label: Luacheck +description: CodeRabbit's guide to Luacheck. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[Luacheck](https://github.com/mpeterv/luacheck) is a static analyzer and linter for Lua code that detects various issues such as undefined global variables, unused variables and values, accessing uninitialized variables, unreachable code, and more. + +## Supported Files + +Luacheck will run on files with the following extensions: + +- `.lua` + +## Configuration + +Luacheck supports the following configuration files: + +- `.luacheckrc` +- `luacheckrc` +- `.luacheckrc.lua` +- `luacheckrc.lua` + +:::note + +Luacheck does not require configuration to run. If no configuration file is found, it will use default settings. + +::: + +## Features + +Luacheck can detect: + +- Usage of undefined global variables +- Unused variables and values +- Accessing uninitialized variables +- Unreachable code +- And many more issues + +## Links + +- [Luacheck GitHub Repository](https://github.com/mpeterv/luacheck) +- [Luacheck Documentation](https://luacheck.readthedocs.io/) diff --git a/docs/tools/oxlint.md b/docs/tools/oxlint.md index 8a93cbd2..fd5e7e2c 100644 --- a/docs/tools/oxlint.md +++ b/docs/tools/oxlint.md @@ -1,7 +1,7 @@ --- -title: oxlint -sidebar_label: oxlint -description: CodeRabbit's guide to oxlint. +title: Oxlint +sidebar_label: Oxlint +description: CodeRabbit's guide to Oxlint. --- ```mdx-code-block @@ -10,37 +10,41 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; ``` -[oxlint](https://github.com/oxc-project/oxc) is a blazingly fast JavaScript/TypeScript linter written in Rust that is 50-100x faster than ESLint. +[Oxlint](https://oxc.rs/docs/guide/usage/linter) is a blazingly fast JavaScript/TypeScript linter written in Rust that is 50-100x faster than ESLint. -## Files +## Supported Files -oxlint will run on files with the following extensions: +Oxlint will run on files with the following extensions: - `.js` +- `.mjs` +- `.cjs` - `.jsx` - `.ts` +- `.mts` +- `.cts` - `.tsx` +- `.vue` +- `.astro` +- `.svelte` ## Configuration -oxlint supports the following config files: +Oxlint supports the following configuration file: -- `oxlint.json` -- `.oxlintrc` - `.oxlintrc.json` -- `oxlint.config.json` :::note -oxlint does not require configuration to run. If no oxlint config file is found and Biome is enabled, CodeRabbit will use Biome instead as oxlint functionality is included within Biome. If Biome is not enabled or an oxlint config file is found, CodeRabbit will use the default oxlint config. +If no Oxlint config file is found and Biome is enabled, CodeRabbit will use Biome instead as Oxlint functionality is included within Biome. -::: +If Biome is not enabled or an Oxlint config file is found, CodeRabbit will use the `.oxlintrc.json` Oxlint config to run. -## Rule Configuration +Oxlint does not require configuration to run if Biome is disabled and Oxlint is enabled. -While oxlint embraces convention over configuration, you can customize rules in your config file if needed. The config file should be in JSON format. See the [oxlint documentation](https://oxc-project.github.io) for more details on available rules and configuration options. +::: ## Links -- [oxlint GitHub Repository](https://github.com/oxc-project/oxc) -- [oxlint Website](https://oxc.rust-server.org) +- [Oxlint GitHub Repository](https://github.com/oxc-project/oxc/releases/) +- [Oxlint Website](https://oxc.rs/docs/guide/usage/linter) diff --git a/docs/tools/phpcs.md b/docs/tools/phpcs.md new file mode 100644 index 00000000..468e23dc --- /dev/null +++ b/docs/tools/phpcs.md @@ -0,0 +1,56 @@ +--- +title: PHPCS +sidebar_label: PHPCS +description: CodeRabbit's guide to PHPCS. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[PHPCS](https://github.com/squizlabs/PHP_CodeSniffer) (PHP CodeSniffer) is a development tool that ensures your code conforms to a coding standard. It is an essential tool for any development team that wants to ensure their code is consistent and follows best practices. + +## Files + +PHPCS will run on files with the following extensions: + +- `.php` + +## Features + +PHPCS can detect and fix various coding standard violations including: + +- **PSR Standards**: Enforces PSR-1, PSR-2, PSR-12, and other coding standards +- **Custom Standards**: Supports custom coding standards and rules +- **Auto-fixing**: Can automatically fix many coding standard violations +- **Custom Rules**: Allows creation of custom sniff rules +- **Multiple Standards**: Can enforce multiple coding standards simultaneously + +## Popular Standards + +PHPCS supports many coding standards including: + +- **PSR-1**: Basic Coding Standard +- **PSR-2**: Coding Style Guide +- **PSR-12**: Extended Coding Style +- **Squiz**: Squiz Labs coding standard +- **PEAR**: PEAR coding standard +- **Zend**: Zend Framework coding standard + +## Configuration + +PHPCS requires a configuration file to run. CodeRabbit will only run PHPCS if one of the following configuration files is found: + +- `phpcs.xml` - XML configuration file +- `phpcs.xml.dist` - Distributed XML configuration file + +CodeRabbit will not run PHPCS if no configuration file is found. + +## Links + +- [PHPCS GitHub Repository](https://github.com/squizlabs/PHP_CodeSniffer) +- [PHPCS Documentation](https://github.com/squizlabs/PHP_CodeSniffer/wiki) +- [Available Coding Standards](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Coding-Standards) +- [Creating Custom Standards](https://github.com/squizlabs/PHP_CodeSniffer/wiki/Coding-Standards#creating-a-coding-standard) diff --git a/docs/tools/phpmd.md b/docs/tools/phpmd.md new file mode 100644 index 00000000..84df5b11 --- /dev/null +++ b/docs/tools/phpmd.md @@ -0,0 +1,44 @@ +--- +title: PHPMD +sidebar_label: PHPMD +description: CodeRabbit's guide to PHPMD. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[PHPMD](https://phpmd.org/) (PHP Mess Detector) is a static analysis tool for PHP that detects potential problems in your code such as possible bugs, suboptimal code, overcomplicated expressions, and unused parameters, variables, methods, and classes. + +## Files + +PHPMD will run on files with the following extensions: + +- `.php` + +## Features + +PHPMD can detect various code quality issues including: + +- **Clean Code Rules**: Detects code smells and violations of clean code principles +- **Controversial Rules**: Identifies potentially problematic code patterns +- **Design Rules**: Finds design-related issues and architectural problems +- **Naming Rules**: Checks for naming convention violations +- **Unused Code Rules**: Detects unused variables, parameters, methods, and classes +- **Size Rules**: Identifies overly complex methods and classes + +### Review Mode Behavior + +CodeRabbit's review mode affects which PHPMD rules are applied: + +- **Chill Mode**: Only checks for unused code (`unusedcode` rule set) +- **Nitpick Mode**: Checks all rule sets including clean code, code size, controversial rules, design issues, naming conventions, and unused code (`cleancode,codesize,controversial,design,naming,unusedcode`) + +## Links + +- [PHPMD Official Website](https://phpmd.org/) +- [PHPMD GitHub Repository](https://github.com/phpmd/phpmd) +- [PHPMD Documentation](https://phpmd.org/documentation/index.html) +- [Available Rules](https://phpmd.org/rules/index.html) diff --git a/docs/tools/pipeline-remediation.md b/docs/tools/pipeline-remediation.md index d03ad33d..2beb0213 100644 --- a/docs/tools/pipeline-remediation.md +++ b/docs/tools/pipeline-remediation.md @@ -94,7 +94,7 @@ With CodeRabbit CI/CD Pipeline Remediation, you have coderabbit automatically re ### GitLab CI/CD -- Pipeline failure analysis +- GitLab CI/CD Pipeline failure analysis - Integration with GitLab Advanced Security - Support for DAST (Dynamic Application Security Testing) findings - Remediation for SAST (Static Application Security Testing) issues @@ -105,16 +105,16 @@ With CodeRabbit CI/CD Pipeline Remediation, you have coderabbit automatically re ### CircleCI -- Workflow failure detection +- CircleCI Pipeline failure analysis - Job-level error analysis - Configuration validation - Dependency resolution CircleCI Integration -### Azure DevOps +### Azure DevOps Pipelines -- Pipeline failure detection +- Azure DevOps CI/CD Pipeline failure analysis - Integration with Azure DevOps Checks - Support for custom tasks and pipelines - Remediation for build issues @@ -174,4 +174,4 @@ Our tool handles a wide range of pipeline failures including: - [GitHub Actions Configuration](https://docs.github.com/en/actions) - [GitLab CI/CD Documentation](https://docs.gitlab.com/ee/ci/) - [CircleCI Documentation](https://circleci.com/docs/) -- [Azure DevOps Documentation](https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/pipelines-get-started?view=azure-devops) +- [Azure DevOps Pipeline Documentation](https://learn.microsoft.com/en-us/azure/devops/pipelines/get-started/pipelines-get-started?view=azure-devops) diff --git a/docs/tools/pylint.md b/docs/tools/pylint.md new file mode 100644 index 00000000..6c45484d --- /dev/null +++ b/docs/tools/pylint.md @@ -0,0 +1,50 @@ +--- +title: Pylint +sidebar_label: Pylint +description: CodeRabbit's guide to Pylint. +--- + +```mdx-code-block +import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; + + +``` + +[Pylint](https://pylint.pycqa.org/) is a static code analysis tool for Python or Jupiter Notebooks. It checks your Python code for errors, enforces a coding standard, and looks for code smells. + +## Supported Files + +Pylint will run on files with the following extensions: + +- `*.py` +- `.ipynb` (using nbqa) + +## Configuration + +Pylint supports the following config files: + +- `.pylintrc` +- `pylintrc` +- `.pylintrc.toml` +- `pylintrc.toml` + +CodeRabbit will not run Pylint if no config file is found. + +## Features + +Pylint can detect many issues such as: + +- Coding standard violations (PEP8) +- Unused variables and imports +- Undefined variables +- Code smells and refactoring suggestions +- Error-prone constructs +- And many more + +## Links + +- [Pylint Official Website](https://pylint.pycqa.org/) +- [Pylint GitHub Repository](https://github.com/pylint-dev/pylint) +- [Pylint Documentation](https://pylint.pycqa.org/en/latest/) +- [Message Control](https://pylint.pycqa.org/en/latest/user_guide/message-control.html) +- [nbqa Documentation](https://github.com/nbQA-dev/nbQA) diff --git a/docs/tools/ruff.md b/docs/tools/ruff.md index fe897d7b..97ebacde 100644 --- a/docs/tools/ruff.md +++ b/docs/tools/ruff.md @@ -10,13 +10,14 @@ import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; ``` -[Ruff](https://docs.astral.sh/ruff/) is a linter for Python. +[Ruff](https://docs.astral.sh/ruff/) is a linter for Python or Jupiter Notebooks. ## Files Ruff will run on files with the following extensions: - `.py` +- `.ipynb` (using nbqa) ## Configuration @@ -31,3 +32,4 @@ CodeRabbit will use the default settings based on the profile selected if no con ## Links - [Ruff Configuration](https://docs.astral.sh/ruff/configuration/) +- [nbqa Documentation](https://github.com/nbQA-dev/nbQA) diff --git a/docs/tools/tools.md b/docs/tools/tools.md index 113c2fee..45b376c5 100644 --- a/docs/tools/tools.md +++ b/docs/tools/tools.md @@ -3,6 +3,8 @@ title: Configure third-party tool use description: Overview of CodeRabbit's supported linters and security analysis tools. --- +This page provides an overview of how CodeRabbit uses third-party open-source tools to deliver its multifaceted code reviews. For a complete list of supported tools, see [Supported tools](/tools/list). + ```mdx-code-block import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'; @@ -40,68 +42,6 @@ Remove extraneous f prefix (F541) ``` -## Supported Tools - -| Technology | Tools | Category | -| :-------------------------- | :--------------------------------------------------------- | :-------------------------------------------------- | -| All | [Gitleaks][Gitleaks], [Pipeline Remediation][Pipeline] | Code Security, CI/CD | -| Azure DevOps Pipelines | [Pipeline Remediation][Pipeline] | CI/CD Failure Remediation | -| CircleCI | [CircleCI][CircleCI], [Pipeline Remediation][Pipeline] | Configuration Validation, CI/CD Failure Remediation | -| CloudFormation | [Checkov][Checkov] | Code Security | -| Cppcheck | [Cppcheck][Cppcheck] | Code Quality | -| CSS | [Biome][Biome] | Code Quality | -| Docker | [Hadolint][Hadolint], [Checkov][Checkov] | Code Quality, Code Security | -| GitHub Actions | [actionlint][actionlint], [Pipeline Remediation][Pipeline] | Code Quality, CI/CD Failure Remediation | -| GitLab Pipelines | [Pipeline Remediation][Pipeline] | CI/CD Failure Remediation | -| Go | [golangci-lint][golangci-lint] | Code Quality | -| Helm | [Checkov][Checkov] | Code Security | -| Javascript | [Biome][Biome], [oxlint][oxlint] | Code Quality | -| JSON, JSONC | [Biome][Biome] | Code Quality | -| JSX | [Biome][Biome], [oxlint][oxlint] | Code Quality | -| Kotlin | [detekt][detekt] | Code Quality | -| Kubernetes | [Checkov][Checkov] | Code Security | -| Markdown | [markdownlint][markdownlint], [LanguageTool][LanguageTool] | Code Quality, Grammar Checking | -| PHP | [PHPStan][PHPStan] | Code Quality | -| Plaintext | [LanguageTool][LanguageTool] | Grammar and Spell Checking | -| Java | [PMD][PMD] | Code Quality | -| Protobuf | [Buf][Buf] | Code Quality | -| Python | [Ruff][Ruff] | Code Quality | -| Regal | [Regal][Regal] | Code Quality | -| Ruby | [RuboCop][RuboCop] | Code Quality | -| Semgrep | [Semgrep][Semgrep] | Code Security | -| Shell (sh, bash, ksh, dash) | [ShellCheck][ShellCheck] | Code Quality | -| Shopify | [Shopify CLI][ShopifyCLI] | Code Quality | -| SQL | [SQLFluff][SQLFluff] | Code Quality | -| Swift | [SwiftLint][SwiftLint] | Code Quality | -| Terraform | [Checkov][Checkov] | Code Security | -| TSX | [Biome][Biome], [oxlint][oxlint] | Code Quality | -| Typescript | [Biome][Biome], [oxlint][oxlint] | Code Quality | -| YAML | [YAMLlint][YAMLlint] | Code Quality | -| Prisma | [Prisma Lint][PrismaLint] | Code Quality | - -[ShellCheck]: ./shellcheck.md -[SQLFluff]: ./sqlfluff.md -[Ruff]: ./ruff.md -[markdownlint]: ./markdownlint.md -[LanguageTool]: ./languagetool.md -[Biome]: ./biome.md -[Hadolint]: ./hadolint.md -[SwiftLint]: ./swiftlint.md -[PHPStan]: ./phpstan.md -[golangci-lint]: ./golangci-lint.md -[YAMLlint]: ./yamllint.md -[Gitleaks]: ./gitleaks.md -[Checkov]: ./checkov.md -[detekt]: ./detekt.md -[RuboCop]: ./rubocop.md -[Buf]: ./buf.md -[actionlint]: ./actionlint.md -[Regal]: ./regal.md -[PMD]: ./pmd.md -[Cppcheck]: ./cppcheck.md -[CircleCI]: ./circleci.md -[Semgrep]: ./semgrep.md -[Pipeline]: ./pipeline-remediation.md -[PrismaLint]: ./prisma-lint.md -[oxlint]: ./oxlint.md -[ShopifyCLI]: ./shopify-cli.md +## What's next + +- For a complete list of tools that CodeRabbit supports, see [Supported tools](/tools/list). diff --git a/sidebars.ts b/sidebars.ts index 8e701fc2..3cc53ff0 100644 --- a/sidebars.ts +++ b/sidebars.ts @@ -30,13 +30,13 @@ const sidebars: SidebarsConfig = { docsSidebar: [ { type: "category", - collapsed: false, + collapsed: true, label: "Get started with CodeRabbit", items: ["overview/introduction", "getting-started/quickstart"], }, { type: "category", - collapsed: false, + collapsed: true, label: "Add CodeRabbit to your repository", items: [ "platforms/platforms", @@ -70,35 +70,51 @@ const sidebars: SidebarsConfig = { }, { type: "category", - collapsed: false, + collapsed: true, + label: "Manage your account", + items: ["getting-started/subscription-management", "guides/roles"], + }, + { + type: "category", + collapsed: true, label: "Configure CodeRabbit", items: [ + "guides/configuration-overview", + "guides/organization-settings", + "guides/repository-settings", "getting-started/configure-coderabbit", + "guides/initial-configuration", "integrations/knowledge-base", + "guides/review-instructions", "tools/tools", + "guides/roles", ], }, { type: "category", - collapsed: false, + collapsed: true, label: "Review pull requests", items: [ + "guides/code-review-overview", "guides/commands", + "guides/generate-improvements", + "guides/code-review-troubleshooting", "guides/agent_chat", { type: "category", - collapsed: false, + collapsed: true, label: "Analyze and improve your code", items: [ "integrations/code-graph-analysis", "finishing-touches/docstrings", + "finishing-touches/unit-test-generation", ], }, ], }, { type: "category", - collapsed: false, + collapsed: true, label: "Create and resolve issues", items: [ "integrations/issue-integrations", @@ -109,17 +125,39 @@ const sidebars: SidebarsConfig = { }, { type: "category", - collapsed: false, + collapsed: true, + label: "Review local changes", + items: [ + "guides/about-vscode", + "guides/install-vscode", + "guides/use-vscode", + "guides/config-vscode", + "guides/uninstall-vscode", + ], + }, + { + type: "category", + collapsed: true, label: "Generate reports", items: [ + "guides/reports-overview", + "guides/scheduled-reports", "guides/ondemand-reports", "guides/custom-reports", - "guides/scheduled-reports", ], }, { type: "category", - collapsed: false, + collapsed: true, + label: "Best practices", + items: [ + "guides/setup-best-practices", + "guides/code-review-best-practices", + ], + }, + { + type: "category", + collapsed: true, label: "Reference", items: [ { @@ -127,11 +165,15 @@ const sidebars: SidebarsConfig = { label: "CodeRabbit API", href: "https://api.coderabbit.ai/api/swagger/", }, + "reference/review-commands", + "reference/configuration", + "reference/yaml-template", { type: "category", label: "Supported tools", collapsed: true, items: [ + "tools/list", "tools/actionlint", "tools/biome", "tools/buf", @@ -140,12 +182,16 @@ const sidebars: SidebarsConfig = { "tools/cppcheck", "tools/detekt", "tools/eslint", + "tools/flake8", "tools/gitleaks", "tools/golangci-lint", "tools/hadolint", "tools/languagetool", + "tools/luacheck", "tools/markdownlint", "tools/oxlint", + "tools/phpcs", + "tools/phpmd", "tools/phpstan", "tools/pipeline-remediation", "tools/pmd", @@ -160,15 +206,15 @@ const sidebars: SidebarsConfig = { "tools/yamllint", ], }, + "reference/caching", ], }, { type: "category", - collapsed: false, + collapsed: true, label: "Resources", items: [ "getting-started/support", - "getting-started/subscription-management", "overview/why-coderabbit", "faq", "early-access", diff --git a/src/css/custom.css b/src/css/custom.css index 4a77db0a..7365089e 100644 --- a/src/css/custom.css +++ b/src/css/custom.css @@ -39,6 +39,8 @@ --ifm-navbar-height: 5rem; --ifm-font-family-base: "Poppins", "Work Sans", sans-serif; --ifm-background-color-primary: #f6f6f1; + --ifm-background-color-secondary: #e8e8e8; + --ifm-breadcrumb-item-background-active: #ffe9e2; } [data-theme="dark"] { @@ -51,6 +53,8 @@ --ifm-color-primary-lightest: #171717; --docusaurus-highlighted-code-line-bg: rgba(0, 0, 0, 0.3); --ifm-background-color-primary: #171717; + --ifm-background-color-secondary: #232323; + --ifm-breadcrumb-item-background-active: #3f322e; } #__docusaurus { @@ -102,6 +106,8 @@ a[docid="docs"] > svg { overflow: hidden; max-width: 100%; background: #000; + border-radius: 1rem; + border: 4px solid var(--ifm-background-color-secondary); } .video-container iframe { @@ -293,3 +299,39 @@ a[docid="docs"] > svg { display: none; } } + +/* Disable automatic next/previous pagination links */ +.pagination-nav { + display: none; +} +/* ===== MARKDOWN STYLES ===== */ +.theme-doc-markdown.markdown { + line-height: 1.8rem; +} +/* ===== BREADCRUMB STYLES ===== */ + +.breadcrumbs { + display: flex; + gap: 0.5rem; + overflow-x: auto; + white-space: nowrap; +} +.breadcrumbs::-webkit-scrollbar { + display: none; +} +.breadcrumbs__item { + display: flex; + align-items: center; + white-space: nowrap; + gap: 1rem; +} +.breadcrumbs__link { + transition: color 0.2s ease; + background-color: var(--ifm-background-color-secondary); +} + +.breadcrumbs__item--active .breadcrumbs__link { + font-weight: 600; + cursor: default; + background-color: var(--ifm-breadcrumb-item-background-active); +} diff --git a/static/img/guides/path-filters.png b/static/img/guides/path-filters.png new file mode 100644 index 00000000..9f398a51 Binary files /dev/null and b/static/img/guides/path-filters.png differ diff --git a/static/img/guides/score-card-report-result.png b/static/img/guides/score-card-report-result.png new file mode 100644 index 00000000..15b51539 Binary files /dev/null and b/static/img/guides/score-card-report-result.png differ diff --git a/static/img/guides/score-card-result-comment.png b/static/img/guides/score-card-result-comment.png new file mode 100644 index 00000000..1ea43248 Binary files /dev/null and b/static/img/guides/score-card-result-comment.png differ diff --git a/static/img/guides/score-card-trigger-comment.png b/static/img/guides/score-card-trigger-comment.png new file mode 100644 index 00000000..2f690948 Binary files /dev/null and b/static/img/guides/score-card-trigger-comment.png differ diff --git a/static/img/guides/where-score-report-prompt-go.png b/static/img/guides/where-score-report-prompt-go.png new file mode 100644 index 00000000..3b26a1f1 Binary files /dev/null and b/static/img/guides/where-score-report-prompt-go.png differ diff --git a/static/img/integrations/login-self-hosted-github.png b/static/img/integrations/login-self-hosted-github.png index 99f511c6..35e76ed1 100644 Binary files a/static/img/integrations/login-self-hosted-github.png and b/static/img/integrations/login-self-hosted-github.png differ diff --git a/static/img/integrations/self-hosted-github-host-url.png b/static/img/integrations/self-hosted-github-host-url.png index b8224720..2cb6d671 100644 Binary files a/static/img/integrations/self-hosted-github-host-url.png and b/static/img/integrations/self-hosted-github-host-url.png differ diff --git a/static/img/knowledge-base/code-guidelines.png b/static/img/knowledge-base/code-guidelines.png new file mode 100644 index 00000000..638a656f Binary files /dev/null and b/static/img/knowledge-base/code-guidelines.png differ diff --git a/static/img/reference/path-instructions.png b/static/img/reference/path-instructions.png new file mode 100644 index 00000000..adcb5884 Binary files /dev/null and b/static/img/reference/path-instructions.png differ diff --git a/static/schema/schema.v2.json b/static/schema/schema.v2.json index 1442d1f0..89085d9b 100644 --- a/static/schema/schema.v2.json +++ b/static/schema/schema.v2.json @@ -95,7 +95,17 @@ "de-LU", "fr-FR", "bg-BG", - "bg" + "bg", + "he-IL", + "he", + "hi-IN", + "hi", + "vi-VN", + "vi", + "th-TH", + "th", + "bn-BD", + "bn" ], "default": "en-US", "description": "Set the language for reviews by using the corresponding ISO language code." @@ -326,6 +336,14 @@ }, "default": [], "description": "Base branches (other than the default branch) to review. Accepts regex patterns." + }, + "ignore_usernames": { + "type": "array", + "items": { + "type": "string" + }, + "default": [], + "description": "Ignore reviewing pull requests by these usernames. These should match the Git platform usernames exactly, not the email addresses." } }, "additionalProperties": false, @@ -346,6 +364,19 @@ "additionalProperties": false, "default": {}, "description": "Docstrings | Options for generating Docstrings for your PRs/MRs." + }, + "unit_tests": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Unit Tests | Allow CodeRabbit to generate unit tests for PRs/MRs." + } + }, + "additionalProperties": false, + "default": {}, + "description": "Unit Tests | Options for generating unit tests for your PRs/MRs." } }, "additionalProperties": false, @@ -389,7 +420,7 @@ }, "additionalProperties": false, "default": {}, - "description": "Enable ast-grep | ast-grep is a code analysis tool that helps you to find patterns in your codebase using abstract syntax trees patterns. | v0.31.1" + "description": "Enable ast-grep | ast-grep is a code analysis tool that helps you to find patterns in your codebase using abstract syntax trees patterns. | v0.38.1" }, "shellcheck": { "type": "object", @@ -410,7 +441,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable Ruff | Ruff is a Python linter and code formatter. | Enable Ruff integration. | v0.8.2" + "description": "Enable Ruff | Ruff is a Python linter and code formatter. | Enable Ruff integration. | v0.11.9" } }, "additionalProperties": false, @@ -440,10 +471,10 @@ }, "timeout_ms": { "type": "number", - "maximum": 300000, + "maximum": 900000, "minimum": 0, "default": 90000, - "description": "Time in milliseconds to wait for all GitHub Checks to conclude." + "description": "Time in milliseconds to wait for all GitHub Checks to conclude. Default 90 seconds, max 15 minutes (900000ms)." } }, "additionalProperties": false, @@ -555,7 +586,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable PHPStan | PHPStan requires [config file](https://phpstan.org/config-reference#config-file) in your repository root. Please ensure that this file contains the `paths:` parameter. | v2.0.3" + "description": "Enable PHPStan | PHPStan requires [config file](https://phpstan.org/config-reference#config-file) in your repository root. Please ensure that this file contains the `paths:` parameter. | v2.1.15" }, "level": { "type": "string", @@ -581,6 +612,32 @@ "default": {}, "description": "PHPStan is a tool to analyze PHP code." }, + "phpmd": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable PHPMD | PHPMD is a tool to find potential problems in PHP code. | v2.15.0" + } + }, + "additionalProperties": false, + "default": {}, + "description": "PHPMD is a tool to find potential problems in PHP code." + }, + "phpcs": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable PHP CodeSniffer | PHP CodeSniffer is a PHP linter and coding standard checker. | v3.7.2" + } + }, + "additionalProperties": false, + "default": {}, + "description": "PHP CodeSniffer is a PHP linter and coding standard checker." + }, "golangci-lint": { "type": "object", "properties": { @@ -604,7 +661,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable YAMLlint | YAMLlint is a linter for YAML files. | Enable YAMLlint integration. | v1.35.1" + "description": "Enable YAMLlint | YAMLlint is a linter for YAML files. | Enable YAMLlint integration. | v1.37.1" } }, "additionalProperties": false, @@ -617,7 +674,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable Gitleaks | Gitleaks is a secret scanner. | Enable Gitleaks integration. | v8.21.2" + "description": "Enable Gitleaks | Gitleaks is a secret scanner. | Enable Gitleaks integration. | v8.26.0" } }, "additionalProperties": false, @@ -643,7 +700,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable detekt | detekt is a static code analysis tool for Kotlin files. | v1.23.7" + "description": "Enable detekt | detekt is a static code analysis tool for Kotlin files. | v1.23.8" }, "config_file": { "type": "string", @@ -667,13 +724,26 @@ "default": {}, "description": "ESLint is a static code analysis tool for JavaScript files." }, + "flake8": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable Flake8 | Flake8 is a Python linter that wraps PyFlakes, pycodestyle and Ned Batchelder's McCabe script. | v7.2.0" + } + }, + "additionalProperties": false, + "default": {}, + "description": "Flake8 is a Python linter that wraps PyFlakes, pycodestyle and Ned Batchelder's McCabe script." + }, "rubocop": { "type": "object", "properties": { "enabled": { "type": "boolean", "default": true, - "description": "Enable RuboCop | RuboCop is a Ruby static code analyzer (a.k.a. linter ) and code formatter. | v1.73" + "description": "Enable RuboCop | RuboCop is a Ruby static code analyzer (a.k.a. linter ) and code formatter. | v1.75.5" } }, "additionalProperties": false, @@ -686,7 +756,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable Buf | Buf offers linting for Protobuf files. | v1.47.2" + "description": "Enable Buf | Buf offers linting for Protobuf files. | v1.54.0" } }, "additionalProperties": false, @@ -699,7 +769,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable Regal | Regal is a linter and language server for Rego. | v0.29.2" + "description": "Enable Regal | Regal is a linter and language server for Rego. | v0.33.1" } }, "additionalProperties": false, @@ -712,7 +782,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable actionlint | is a static checker for GitHub Actions workflow files. | v1.7.4" + "description": "Enable actionlint | is a static checker for GitHub Actions workflow files. | v1.7.7" } }, "additionalProperties": false, @@ -725,7 +795,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable PMD | PMD is an extensible multilanguage static code analyzer. Itโ€™s mainly concerned with Java. | v7.8.0" + "description": "Enable PMD | PMD is an extensible multilanguage static code analyzer. Itโ€™s mainly concerned with Java. | v7.13.0" }, "config_file": { "type": "string", @@ -742,7 +812,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable Cppcheck | Cppcheck is a static code analysis tool for the C and C++ programming languages. | v2.10-2" + "description": "Enable Cppcheck | Cppcheck is a static code analysis tool for the C and C++ programming languages. | v2.17.1" } }, "additionalProperties": false, @@ -755,7 +825,7 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable Semgrep | Semgrep is a static analysis tool designed to scan code for security vulnerabilities and code quality issues. | Enable Semgrep integration. | v1.99.0" + "description": "Enable Semgrep | Semgrep is a static analysis tool designed to scan code for security vulnerabilities and code quality issues. | Enable Semgrep integration. | v1.122.0" }, "config_file": { "type": "string", @@ -772,20 +842,33 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable CircleCI | CircleCI tool is a static checker for CircleCI config files. | v0.1.31151" + "description": "Enable CircleCI | CircleCI tool is a static checker for CircleCI config files. | v0.1.31687" } }, "additionalProperties": false, "default": {}, "description": "CircleCI tool is a static checker for CircleCI config files." }, + "clippy": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable Clippy | Clippy is a collection of lints to catch common mistakes and improve your Rust code. | Enable Clippy integration." + } + }, + "additionalProperties": false, + "default": {}, + "description": "Clippy is a collection of lints to catch common mistakes and improve your Rust code." + }, "sqlfluff": { "type": "object", "properties": { "enabled": { "type": "boolean", "default": true, - "description": "Enable SQLFluff | SQLFluff is an open source, dialect-flexible and configurable SQL linter. | v3.3.0" + "description": "Enable SQLFluff | SQLFluff is an open source, dialect-flexible and configurable SQL linter. | v3.4.0" } }, "additionalProperties": false, @@ -798,20 +881,33 @@ "enabled": { "type": "boolean", "default": true, - "description": "Enable Prisma Schema linting | Prisma Schema linting helps maintain consistent and error-free schema files | v0.10.0" + "description": "Enable Prisma Schema linting | Prisma Schema linting helps maintain consistent and error-free schema files | v0.10.1" } }, "additionalProperties": false, "default": {}, "description": "Configuration for Prisma Schema linting to ensure schema file quality" }, + "pylint": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable Pylint | Pylint is a Python static code analysis tool. | v3.3.7" + } + }, + "additionalProperties": false, + "default": {}, + "description": "Pylint is a Python static code analysis tool." + }, "oxc": { "type": "object", "properties": { "enabled": { "type": "boolean", "default": true, - "description": "Enable OXC | OXC is a JavaScript/TypeScript linter written in Rust. | v0.16.5" + "description": "Enable OXC | OXC is a JavaScript/TypeScript linter written in Rust. | v0.16.10" } }, "additionalProperties": false, @@ -830,6 +926,71 @@ "additionalProperties": false, "default": {}, "description": "Configuration for Shopify Theme Check to ensure theme quality and best practices" + }, + "luacheck": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable Lua code linting | Luacheck helps maintain consistent and error-free Lua code | v1.2.0" + } + }, + "additionalProperties": false, + "default": {}, + "description": "Configuration for Lua code linting to ensure code quality" + }, + "brakeman": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable Brakeman | Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications. | v7.0.2" + } + }, + "additionalProperties": false, + "default": {}, + "description": "Brakeman is a static analysis security vulnerability scanner for Ruby on Rails applications. | v7.0.2" + }, + "dotenvLint": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable dotenv-linter | dotenv-linter is a tool for checking and fixing .env files for problems and best practices | v3.3.0" + } + }, + "additionalProperties": false, + "default": {}, + "description": "dotenv-linter is a tool for checking and fixing .env files for problems and best practices" + }, + "htmlhint": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable HTMLHint | HTMLHint is a static code analysis tool for HTML files. | Enable HTMLHint integration. | v1.5.0" + } + }, + "additionalProperties": false, + "description": "HTMLHint is a static code analysis tool for HTML files.", + "default": {} + }, + "checkmake": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enable checkmake | checkmake is a linter for Makefiles. | v0.2.2" + } + }, + "additionalProperties": false, + "default": {}, + "description": "checkmake is a linter for Makefiles." } }, "additionalProperties": false, @@ -892,7 +1053,7 @@ "opt_out": { "type": "boolean", "default": false, - "description": "Opt out | Opt out of all knowledge base features that require data retention." + "description": "Opt Out | Disable all knowledge base features that require data retention. If you opt out after opting in, all of your existing knowledge base data will be removed from the system." }, "web_search": { "type": "object", @@ -906,6 +1067,27 @@ "additionalProperties": false, "default": {} }, + "code_guidelines": { + "type": "object", + "properties": { + "enabled": { + "type": "boolean", + "default": true, + "description": "Enabled | Enable CodeRabbit to enforce your organization's coding standards during reviews." + }, + "filePatterns": { + "type": "array", + "items": { + "type": "string" + }, + "default": [], + "description": "File Patterns | Specify files for your coding guideline documents in this section. CodeRabbit will scan these files to understand your team's standards and apply them during code reviews. Multiple files supported. File names are case-sensitive. Common files like: (**/.cursorrules, .github/copilot-instructions.md, **/CLAUDE.md, **/GEMINI.md, **/.cursor/rules/*, **/.windsurfrules, **/.clinerules/*, **/.rules/*, **/AGENT.md) are included by default." + } + }, + "additionalProperties": false, + "default": {}, + "description": "CodeRabbit will analyse and learn from your organization's code guidelines, which you can mention in the file patterns section. These guidelines will then be used to conduct thorough code reviews." + }, "learnings": { "type": "object", "properties": { @@ -1088,7 +1270,17 @@ "de-LU", "fr-FR", "bg-BG", - "bg" + "bg", + "he-IL", + "he", + "hi-IN", + "hi", + "vi-VN", + "vi", + "th-TH", + "th", + "bn-BD", + "bn" ], "default": "en-US", "description": "Set the language for docstrings by using the corresponding ISO language code." @@ -1120,6 +1312,37 @@ "path_instructions": [] }, "description": "Settings related to the generation of docstrings." + }, + "unit_tests": { + "type": "object", + "properties": { + "path_instructions": { + "type": "array", + "items": { + "type": "object", + "properties": { + "path": { + "type": "string", + "description": "File path glob pattern. Example: **/*.js" + }, + "instructions": { + "type": "string", + "maxLength": 20000, + "description": "Provides additional guidelines for unit test generation based on file paths." + } + }, + "required": ["path", "instructions"], + "additionalProperties": false + }, + "default": [], + "description": "Unit Test Generation | Provide additional guidelines for unit test generation based on file paths." + } + }, + "additionalProperties": false, + "default": { + "path_instructions": [] + }, + "description": "Settings related to the generation of unit tests." } }, "additionalProperties": false,