| ... | @@ -1,14 +1,43 @@ | ... | @@ -1,14 +1,43 @@ |
| 1 | import { defineConfig } from "@coderabbitai/config"; | 1 | import { defineConfig, type CodeRabbitContext } from "@coderabbitai/config"; |
| 2 | | 2 | |
| 3 | export default defineConfig({ | 3 | const approvability = `Fail when a maintainer should read this pull request before CodeRabbit approves it, and name the rule and file. Fail if it: |
| | 4 | |
| | 5 | - Changes a product default: a setting's default value, or what users get without opting in. Making a feature do what it already promises is a bug fix, not a default change. |
| | 6 | - Adds or broadens a directive that disables or suppresses a lint, type-checker, LSP, or other static-analysis diagnostic, including file-level, line-level, and configuration-level overrides. |
| | 7 | - Adds a subsystem or user workflow, or is a large refactor across apps or packages. |
| | 8 | - Changes packages/contracts or persisted data in a way that existing clients or stored data might not accept. |
| | 9 | - Changes authentication, pairing, credentials, secrets, or remote connection trust. |
| | 10 | - Adds or changes an external side effect, such as acting on GitHub, publishing a release, or calling a webhook. |
| | 11 | - Adds, upgrades, or patches a dependency. |
| | 12 | - Changes CI or release configuration, agent or contributor instructions, or any review tool's configuration, including .github/, AGENTS.md, CONTRIBUTING.md, .agents/, and .coderabbit.config.ts. |
| | 13 | |
| | 14 | Otherwise pass. A focused bug fix, copy or layout fix, revert, or docs-only or test-only change passes unless a rule above applies. If you cannot decide, fail rather than report inconclusive. When failing, say that the pull request needs a maintainer's review. |
| | 15 | `; |
| | 16 | |
| | 17 | // Org members and collaborators merge their own pull requests. On anyone else's, CodeRabbit |
| | 18 | // requests changes until its comments are resolved and its checks pass, then approves. |
| | 19 | const UNGATED_AUTHORS = new Set(["OWNER", "MEMBER", "COLLABORATOR"]); |
| | 20 | const isGated = ({ pr }: CodeRabbitContext) => !UNGATED_AUTHORS.has(pr?.authorAssociation ?? ""); |
| | 21 | |
| | 22 | export default defineConfig((ctx) => ({ |
| 4 | reviews: { | 23 | reviews: { |
| 5 | high_level_summary: false, | 24 | high_level_summary: false, |
| 6 | review_status: false, | 25 | review_status: false, |
| | 26 | request_changes_workflow: isGated(ctx), |
| | 27 | allow_author_approval: !isGated(ctx), |
| 7 | auto_review: { | 28 | auto_review: { |
| 8 | enabled: true, | 29 | enabled: true, |
| 9 | }, | 30 | }, |
| 10 | pre_merge_checks: { | 31 | pre_merge_checks: { |
| 11 | docstrings: { mode: "off" }, | 32 | docstrings: { mode: "off" }, |
| | 33 | override_requested_reviewers_only: isGated(ctx), |
| | 34 | custom_checks: [ |
| | 35 | { |
| | 36 | name: "Approvability", |
| | 37 | mode: isGated(ctx) ? "error" : "off", |
| | 38 | instructions: approvability, |
| | 39 | }, |
| | 40 | ], |
| 12 | }, | 41 | }, |
| 13 | path_filters: [ | 42 | path_filters: [ |
| 14 | // Vendored read-only reference checkouts of upstream Effect and Alchemy | 43 | // Vendored read-only reference checkouts of upstream Effect and Alchemy |
| ... | @@ -34,4 +63,4 @@ export default defineConfig({ | ... | @@ -34,4 +63,4 @@ export default defineConfig({ |
| 34 | ], | 63 | ], |
| 35 | }, | 64 | }, |
| 36 | }, | 65 | }, |
| 37 | }); | 66 | })); |