Skip to content

Commit 05aadc0

Browse files
Merge branch 'main' into fix/sidebar-tools
2 parents 713412f + 626d15d commit 05aadc0

16 files changed

+435
-31
lines changed

docs/changelog.md

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,16 @@ description: The latest updates and changes to CodeRabbit.
55
sidebar_position: 13
66
---
77

8+
## July 10, 2025
9+
10+
### Enhanced Python Static Analysis: nbqa Support for Jupyter Notebooks
11+
12+
We're excited to announce enhanced Python static analysis capabilities with nbqa support for Jupyter Notebooks!
13+
14+
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.
15+
16+
See our [Ruff](/tools/ruff), [Flake8](/tools/flake8), and [Pylint](/tools/pylint) documentation for more details.
17+
818
## July 3, 2025
919

1020
### Enhanced Python Static Analysis: Flake8 Support

docs/guides/code-review-overview.md

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,8 @@ description: An overview of CodeRabbit's core code review features.
44
sidebar_label: Overview
55
---
66

7+
import ProPlanNotice from '@site/src/components/ProPlanNotice.mdx'
8+
79
The central feature of CodeRabbit is its ability to proactively review
810
new pull requests on your code repository.
911

@@ -42,6 +44,15 @@ perform a code review:
4244
- If an open pull request that CodeRabbit has already reviewed gets modified with another
4345
commit, then CodeRabbit performs an incremental review that focuses on the new commit.
4446

47+
### Which pull requests get automatically reviewed {#eligibility}
48+
49+
CodeRabbit automatically reviews a pull request when **either** of the following statements is true:
50+
51+
- 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.
52+
- 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.
53+
54+
<ProPlanNotice />
55+
4556
## Interact with CodeRabbit reviews {#interact}
4657

4758
After CodeRabbit attaches its initial code-review comment to a pull request, you can

docs/guides/configuration-overview.md

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -46,6 +46,28 @@ For more information, see [Set your repository preferences](/guides/repository-s
4646

4747
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).
4848

49+
## Configuration priority {#priority}
50+
51+
CodeRabbit follows a specific hierarchy when determining which configuration settings to use. Understanding this priority system helps you manage your configuration effectively:
52+
53+
### Priority order (highest to lowest)
54+
55+
1. **Local `.coderabbit.yaml` file of head branch**
56+
2. **Repository settings** (web UI)
57+
3. **Organization settings** (web UI)
58+
59+
### How priority works
60+
61+
- **If you have a local `.coderabbit.yaml` file in your head branch**: All repository and organization settings are ignored. Only the local YAML file configuration is used. Anything not defined in that file uses default settings.
62+
- **If you don't have a local YAML file but have enabled repository settings**: Organization settings are ignored. Only repository settings are used.
63+
- **If you have organization settings and repository settings are disabled**: Only organization settings are used.
64+
65+
### Configuration inheritance
66+
67+
When a configuration source is active, it completely overrides all lower-priority sources. For example, if you set `reviews.tools.github-checks.timeout_ms` to `900000` in organization settings, but you have a local `.coderabbit.yaml` file that doesn't define this setting, CodeRabbit will use the default value of `90000` instead of the organization setting.
68+
69+
This means that configuration is not merged or inherited - the highest priority source takes complete control over all settings.
70+
4971
## Initial configuration {#initial}
5072

5173
The [Initial configuration guide](/guides/initial-configuration) tours you through several settings that we

docs/guides/initial-configuration.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -72,7 +72,7 @@ By default, CodeRabbit writes thorough code reviews with several sub-sections. I
7272
- [Related issues](/reference/configuration#related-issues): lists issues found in your issue tracker that might be related to this pull request.
7373
- [Related pull requests](/reference/configuration#realted-prs): lists pull requests that might be related to this pull request.
7474
- [Suggested labels](/reference/configuration#suggested-labels): Suggests labels for this pull request.
75-
- [Suggested reviewers](/reference/configuration#suggested-reveiwers): automatically suggest reviewers for PR
75+
- [Suggested reviewers](/reference/configuration#suggested-reviewers): automatically suggest reviewers for PR
7676
- [Poem](/reference/configuration#poem): generates a short poem about this pull request.
7777

7878
## Adjust path-specific CodeRabbit behavior {#path}

docs/reference/configuration.md

Lines changed: 128 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -2850,6 +2850,47 @@ ESLint is a static code analysis tool for JavaScript files.
28502850

28512851
ESLint is a static code analysis tool for JavaScript files.
28522852

2853+
### Flake8
2854+
2855+
Flake8 is a static code analysis tool for Python files.
2856+
2857+
#### Enable Flake8
2858+
2859+
<Tabs groupId="config-setting">
2860+
<TabItem value="web-ui" label="Web UI">
2861+
<table>
2862+
<tbody>
2863+
<tr>
2864+
<td><strong>Location</strong></td>
2865+
<td>Review &gt; Tools &gt; Flake8 &gt; Enable</td>
2866+
</tr>
2867+
<tr>
2868+
<td><strong>Default</strong></td>
2869+
<td>true</td>
2870+
</tr>
2871+
</tbody></table>
2872+
</TabItem>
2873+
<TabItem value="yaml" label=".coderabbit.yaml" default>
2874+
<table>
2875+
<tbody>
2876+
<tr>
2877+
<td><strong>Field</strong></td>
2878+
<td>`reviews.tools.flake8.enabled`</td>
2879+
</tr>
2880+
<tr>
2881+
<td><strong>Datatype</strong></td>
2882+
<td>boolean</td>
2883+
</tr>
2884+
<tr>
2885+
<td><strong>Default</strong></td>
2886+
<td>true</td>
2887+
</tr>
2888+
</tbody></table>
2889+
</TabItem>
2890+
</Tabs>
2891+
2892+
Flake8 is a static code analysis tool for Python files.
2893+
28532894
### GitHub Checks
28542895

28552896
GitHub Checks integration configuration.
@@ -3511,19 +3552,19 @@ markdownlint-cli2 is a static analysis tool to enforce standards and consistency
35113552

35123553
markdownlint-cli2 is a static analysis tool to enforce standards and consistency for Markdown files.
35133554

3514-
### OXC
3555+
### Oxlint
35153556

3516-
OXC is a JavaScript/TypeScript linter written in Rust.
3557+
Oxlint is a JavaScript/TypeScript linter for OXC written in Rust.
35173558

3518-
#### Enable OXC
3559+
#### Enable Oxlint
35193560

35203561
<Tabs groupId="config-setting">
35213562
<TabItem value="web-ui" label="Web UI">
35223563
<table>
35233564
<tbody>
35243565
<tr>
35253566
<td><strong>Location</strong></td>
3526-
<td>Review > Tools > Enable OXC</td>
3567+
<td>Review > Tools > Enable Oxlint</td>
35273568
</tr>
35283569
<tr>
35293570
<td><strong>Default</strong></td>
@@ -3550,7 +3591,7 @@ OXC is a JavaScript/TypeScript linter written in Rust.
35503591
</TabItem>
35513592
</Tabs>
35523593

3553-
OXC is a JavaScript/TypeScript linter written in Rust.
3594+
Oxlint is a JavaScript/TypeScript linter for OXC written in Rust.
35543595

35553596
### PHPStan
35563597

@@ -3708,6 +3749,88 @@ Enable PMD.
37083749

37093750
Optional path to the PMD configuration file relative to the repository.
37103751

3752+
### PHPMD
3753+
3754+
PHPMD is a static code analysis tool for PHP files.
3755+
3756+
#### Enable PHPMD
3757+
3758+
<Tabs groupId="config-setting">
3759+
<TabItem value="web-ui" label="Web UI">
3760+
<table>
3761+
<tbody>
3762+
<tr>
3763+
<td><strong>Location</strong></td>
3764+
<td>Review &gt; Tools &gt; Enable PHPMD</td>
3765+
</tr>
3766+
<tr>
3767+
<td><strong>Default</strong></td>
3768+
<td>true</td>
3769+
</tr>
3770+
</tbody></table>
3771+
</TabItem>
3772+
<TabItem value="yaml" label=".coderabbit.yaml" default>
3773+
<table>
3774+
<tbody>
3775+
<tr>
3776+
<td><strong>Field</strong></td>
3777+
<td>`reviews.tools.phpmd.enabled`</td>
3778+
</tr>
3779+
<tr>
3780+
<td><strong>Datatype</strong></td>
3781+
<td>boolean</td>
3782+
</tr>
3783+
<tr>
3784+
<td><strong>Default</strong></td>
3785+
<td>true</td>
3786+
</tr>
3787+
</tbody></table>
3788+
</TabItem>
3789+
</Tabs>
3790+
3791+
PHPMD is a static code analysis tool for PHP files.
3792+
3793+
### PHPCS
3794+
3795+
PHPCS is a static code analysis and coding-standard checker for PHP (plus JS/CSS) files.
3796+
3797+
#### Enable PHPCS
3798+
3799+
<Tabs groupId="config-setting">
3800+
<TabItem value="web-ui" label="Web UI">
3801+
<table>
3802+
<tbody>
3803+
<tr>
3804+
<td><strong>Location</strong></td>
3805+
<td>Review &gt; Tools &gt; Enable PHPCS</td>
3806+
</tr>
3807+
<tr>
3808+
<td><strong>Default</strong></td>
3809+
<td>true</td>
3810+
</tr>
3811+
</tbody></table>
3812+
</TabItem>
3813+
<TabItem value="yaml" label=".coderabbit.yaml" default>
3814+
<table>
3815+
<tbody>
3816+
<tr>
3817+
<td><strong>Field</strong></td>
3818+
<td>`reviews.tools.phpcs.enabled`</td>
3819+
</tr>
3820+
<tr>
3821+
<td><strong>Datatype</strong></td>
3822+
<td>boolean</td>
3823+
</tr>
3824+
<tr>
3825+
<td><strong>Default</strong></td>
3826+
<td>true</td>
3827+
</tr>
3828+
</tbody></table>
3829+
</TabItem>
3830+
</Tabs>
3831+
3832+
PHPCS is a static code analysis tool for PHP, JavaScript and CSS files.
3833+
37113834
### Prisma Schema Linting
37123835

37133836
Configuration for Prisma Schema linting to ensure schema file quality

docs/reference/yaml-template.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -107,6 +107,8 @@ reviews:
107107
config_file: ""
108108
eslint:
109109
enabled: true
110+
flake8:
111+
enabled: true
110112
rubocop:
111113
enabled: true
112114
buf:
@@ -118,6 +120,10 @@ reviews:
118120
pmd:
119121
enabled: true
120122
config_file: ""
123+
phpmd:
124+
enabled: true
125+
phpcs:
126+
enabled: true
121127
cppcheck:
122128
enabled: true
123129
semgrep:

docs/self-hosted/azure-devops.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -127,13 +127,16 @@ LINEAR_PAT=[<linear-personal-access-token>]
127127

128128
ENABLE_WEB_SEARCH=[true]
129129
PERPLEXITY_API_KEY=[<perplexity-api-key>]
130+
131+
YAML_CONFIG=[<escaped-yaml-config>]
130132
```
131133

132134
:::note
133135

134136
- If you are using Azure OpenAI, verify that the model deployment names are in the .env file.
135137
- Values marked with [] are not optional to provide.
136138
- You can generate `CODERABBIT_API_KEY` from CodeRabbit UI -> Organizations Settings -> API Keys.
139+
- `YAML_CONFIG` is an optional configuration file that can be used to customize CodeRabbit's behavior at the deployment level. It takes the same format as the [CodeRabbit YAML configuration](/docs/getting-started/configure-coderabbit.md) file. It requires the entire YAML file to be in an escaped string format, for example, `YAML_CONFIG="key1: value1\nkey2: value2"`. You can use [Escape YAML](https://escapeyaml.dev/) to generate the escaped string.
137140

138141
:::
139142

docs/self-hosted/bitbucket.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,16 @@ LINEAR_PAT=[<linear-personal-access-token>]
122122

123123
ENABLE_WEB_SEARCH=[true]
124124
PERPLEXITY_API_KEY=[<perplexity-api-key>]
125+
126+
YAML_CONFIG=[<escaped-yaml-config>]
125127
```
126128

127129
:::note
128130

129131
- If you are using Azure OpenAI, verify that the model deployment names are in the .env file.
130132
Values marked with [] are optional and can be omitted if the feature is not needed.
131133
- You can generate `CODERABBIT_API_KEY` from CodeRabbit UI -> Organizations Settings -> API Keys.
134+
- `YAML_CONFIG` is an optional configuration file that can be used to customize CodeRabbit's behavior at the deployment level. It takes the same format as the [CodeRabbit YAML configuration](/docs/getting-started/configure-coderabbit.md) file. It requires the entire YAML file to be in an escaped string format, for example, `YAML_CONFIG="key1: value1\nkey2: value2"`. You can use [Escape YAML](https://escapeyaml.dev/) to generate the escaped string.
132135

133136
:::
134137

docs/self-hosted/github.md

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -140,6 +140,8 @@ LINEAR_PAT=[<linear-personal-access-token>]
140140

141141
ENABLE_WEB_SEARCH=[true]
142142
PERPLEXITY_API_KEY=[<perplexity-api-key>]
143+
144+
YAML_CONFIG=[<escaped-yaml-config>]
143145
```
144146

145147
:::note
@@ -150,6 +152,7 @@ PERPLEXITY_API_KEY=[<perplexity-api-key>]
150152
- For `GITHUB_HOSTNAME`, use GitHub Enterprise server's hostname, for example, “github.acme-inc.com”
151153
- You can generate `CODERABBIT_API_KEY` from CodeRabbit UI -> Organizations Settings -> API Keys.
152154
- When `ENABLE_LEARNINGS` is set to `true`, CodeRabbit will use `CODERABBIT_API_KEY` to store learnings on our servers.
155+
- `YAML_CONFIG` is an optional configuration file that can be used to customize CodeRabbit's behavior at the deployment level. It takes the same format as the [CodeRabbit YAML configuration](/docs/getting-started/configure-coderabbit.md) file. It requires the entire YAML file to be in an escaped string format, for example, `YAML_CONFIG="key1: value1\nkey2: value2"`. You can use [Escape YAML](https://escapeyaml.dev/) to generate the escaped string.
153156

154157
:::
155158

docs/self-hosted/gitlab.md

Lines changed: 37 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -37,13 +37,46 @@ Consult official CodeRabbitAI documentation for a detailed [guide](https://docs.
3737
1. **Navigate to Add Webhook Page**: Go to the webhook configuration page in the desired GitLab project.
3838
2. **Add Webhook URL**: Enter the URL pointing to the CodeRabbit service, followed by `/gitlab_webhooks` (e.g., `http://127.0.0.1:8080/gitlab_webhooks`).
3939
3. **Generate and Save Secret Token**: Generate a secret token, add it to the webhook, and store it securely. This will be needed for the `.env` file as `GITLAB_WEBHOOK_SECRET` (you can use a single secret token for all projects).
40-
4. Select triggers:
40+
4. **Select triggers**:
4141

4242
- Push events
4343
- Comments
4444
- Issues events
4545
- Merge request events
4646

47+
## Add Webhook Using a Script
48+
49+
We have a convenient [script](/code/gitlab-webhook.sh) to help you add webhooks to a project or all projects under a group in a GitLab instance.
50+
51+
```bash
52+
# Make sure the script is executable:
53+
chmod +x gitlab-webhook.sh
54+
```
55+
56+
Example usage:
57+
58+
```bash
59+
# PAT example (header auto-detected)
60+
export GITLAB_TOKEN="glpat-xxxxx"
61+
./gitlab-add-webhook.sh \
62+
-h "gitlab.example.com" -u "http://<coderabbit-agent-addr>/gitlab_webhooks" \
63+
-s "mySecret" -p 42
64+
65+
# PAT example (explicit header)
66+
./gitlab-add-webhook.sh \
67+
-h "gitlab.example.com" -u "http://<coderabbit-agent-addr>/gitlab_webhooks" \
68+
-s "mySecret" -g "mygroup/mysubgroup/myproject" \
69+
-t "glpat-xxxxx" \
70+
-A "PRIVATE-TOKEN"
71+
72+
# OAuth token with explicit header
73+
./gitlab-add-webhook.sh \
74+
-h "gitlab.example.com" -u "http://<coderabbit-agent-addr>/gitlab_webhooks" \
75+
-s "mySecret" -g "company/backend" \
76+
-t "eyJhbGciOi..." \
77+
-A "Authorization: Bearer"
78+
```
79+
4780
## Prepare a `.env` file
4881

4982
Create a `.env` file with the following content:
@@ -134,13 +167,16 @@ LINEAR_PAT=[<linear-personal-access-token>]
134167

135168
ENABLE_WEB_SEARCH=[true]
136169
PERPLEXITY_API_KEY=[<perplexity-api-key>]
170+
171+
YAML_CONFIG=[<escaped-yaml-config>]
137172
```
138173

139174
:::note
140175

141176
- If you are using Azure OpenAI, verify that the model deployment names are in the .env file.
142177
- Values marked with [] are not optional to provide.
143178
- You can generate `CODERABBIT_API_KEY` from CodeRabbit UI -> Organizations Settings -> API Keys.
179+
- `YAML_CONFIG` is an optional configuration file that can be used to customize CodeRabbit's behavior at the deployment level. It takes the same format as the [CodeRabbit YAML configuration](/docs/getting-started/configure-coderabbit.md) file. It requires the entire YAML file to be in an escaped string format, for example, `YAML_CONFIG="key1: value1\nkey2: value2"`. You can use [Escape YAML](https://escapeyaml.dev/) to generate the escaped string.
144180

145181
:::
146182

0 commit comments

Comments
 (0)