Skip to content

Commit bf61d9a

Browse files
authored
Merge pull request #2248 from prestist/coderabbit-config
*: add coderabbit configuration
2 parents 7feb4ce + cbe4a08 commit bf61d9a

1 file changed

Lines changed: 222 additions & 0 deletions

File tree

.coderabbit.yaml

Lines changed: 222 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,222 @@
1+
language: "en-US"
2+
3+
reviews:
4+
profile: "chill"
5+
request_changes_workflow: true
6+
high_level_summary: false
7+
high_level_summary_in_walkthrough: false
8+
poem: false
9+
in_progress_fortune: false
10+
review_status: true
11+
review_details: true
12+
collapse_walkthrough: true
13+
changed_files_summary: true
14+
sequence_diagrams: true
15+
estimate_code_review_effort: true
16+
assess_linked_issues: true
17+
related_issues: true
18+
related_prs: true
19+
suggested_labels: true
20+
auto_apply_labels: false
21+
suggested_reviewers: true
22+
auto_assign_reviewers: false
23+
enable_prompt_for_ai_agents: true
24+
abort_on_close: true
25+
26+
path_filters:
27+
- "!vendor/**"
28+
29+
path_instructions:
30+
- path: "config/v3_0/**"
31+
instructions: >
32+
This is a frozen stable config spec (v3.0). Files here must NEVER be
33+
modified. If changes are proposed, flag them as incorrect -- frozen
34+
specs are immutable.
35+
- path: "config/v3_1/**"
36+
instructions: >
37+
This is a frozen stable config spec (v3.1). Files here must NEVER be
38+
modified. If changes are proposed, flag them as incorrect -- frozen
39+
specs are immutable.
40+
- path: "config/v3_2/**"
41+
instructions: >
42+
This is a frozen stable config spec (v3.2). Files here must NEVER be
43+
modified. If changes are proposed, flag them as incorrect -- frozen
44+
specs are immutable.
45+
- path: "config/v3_3/**"
46+
instructions: >
47+
This is a frozen stable config spec (v3.3). Files here must NEVER be
48+
modified. If changes are proposed, flag them as incorrect -- frozen
49+
specs are immutable.
50+
- path: "config/v3_4/**"
51+
instructions: >
52+
This is a frozen stable config spec (v3.4). Files here must NEVER be
53+
modified. If changes are proposed, flag them as incorrect -- frozen
54+
specs are immutable.
55+
- path: "config/v3_5/**"
56+
instructions: >
57+
This is a frozen stable config spec (v3.5). Files here must NEVER be
58+
modified. If changes are proposed, flag them as incorrect -- frozen
59+
specs are immutable.
60+
- path: "config/v3_6/**"
61+
instructions: >
62+
This is a frozen stable config spec (v3.6). Files here must NEVER be
63+
modified. If changes are proposed, flag them as incorrect -- frozen
64+
specs are immutable.
65+
- path: "config/v3_7_experimental/**"
66+
instructions: >
67+
This is the active experimental config spec. New features go here.
68+
Ensure schema changes are accompanied by running ./generate.
69+
types/schema.go is generated -- it must not be manually edited.
70+
Verify that translation functions in translate/ are updated for any
71+
new or changed fields.
72+
- path: "config/**"
73+
instructions: >
74+
The config/ directory is the frontend stable library API consumed by
75+
external programs (e.g., Butane). API-breaking changes require bumping
76+
the Ignition major version. Ensure backward compatibility.
77+
- path: "internal/exec/stages/**"
78+
instructions: >
79+
Execution stages are fixed (fetch-offline, fetch, disks, mount, files,
80+
umount). External projects hardcode this list. Do not add or remove
81+
stages. Config must be declarative -- describe desired state, not
82+
actions.
83+
- path: "internal/providers/**"
84+
instructions: >
85+
Platform providers must retry config fetch, allow empty config, and
86+
never guess the platform ID. Every provider must be documented in
87+
docs/supported-platforms.md. Any fields requiring network access must
88+
be registered in the fetch-offline needs-net detector.
89+
- path: "internal/resource/**"
90+
instructions: >
91+
Resource fetching code (HTTP, S3, GCS, TFTP, data URIs). Security is
92+
critical here -- always provide secure defaults. No directives that
93+
encourage unsafe behavior.
94+
- path: "tests/**"
95+
instructions: >
96+
Blackbox integration tests. New test modules must be imported in
97+
tests/registry/registry.go. Use table-driven tests with struct{ in, out }
98+
slices.
99+
- path: "docs/**"
100+
instructions: >
101+
Documentation served via GitHub Pages/Jekyll. Every platform must be
102+
documented in supported-platforms.md. The ./test script validates doc
103+
consistency.
104+
105+
auto_review:
106+
enabled: true
107+
drafts: false
108+
auto_incremental_review: true
109+
ignore_title_keywords:
110+
- "WIP"
111+
- "DO NOT MERGE"
112+
113+
finishing_touches:
114+
docstrings:
115+
enabled: false
116+
unit_tests:
117+
enabled: true
118+
autofix:
119+
enabled: true
120+
121+
pre_merge_checks:
122+
title:
123+
mode: "warning"
124+
requirements: >
125+
PR title must follow the format 'subsystem: lowercase description'.
126+
Examples: 'providers/hetzner: add Hetzner Cloud support',
127+
'config/v3_6: stabilize spec', '*: refactor provider interface'.
128+
Use imperative mood, lowercase after colon, no trailing period.
129+
description:
130+
mode: "warning"
131+
custom_checks:
132+
- name: "Commit message convention"
133+
mode: "warning"
134+
instructions: >
135+
Check that every non-merge commit message in this PR follows the
136+
format 'subsystem: lowercase description'. The subsystem is
137+
typically a file path prefix (e.g., 'providers/hetzner',
138+
'config/v3_6', 'internal/exec/stages/files'), a component name
139+
(e.g., 'docs', 'tests', 'ci'), or '*' for cross-cutting changes.
140+
After the colon and space, the description must start with a
141+
lowercase letter and use imperative mood (e.g., 'add', 'fix',
142+
'update', not 'Added', 'Fixes', 'Updates'). There must be no
143+
trailing period. Merge commits (starting with 'Merge') should be
144+
ignored. Flag any commit that does not conform.
145+
146+
tools:
147+
golangci-lint:
148+
enabled: true
149+
shellcheck:
150+
enabled: true
151+
yamllint:
152+
enabled: true
153+
markdownlint:
154+
enabled: true
155+
hadolint:
156+
enabled: true
157+
actionlint:
158+
enabled: true
159+
zizmor:
160+
enabled: true
161+
gitleaks:
162+
enabled: true
163+
trufflehog:
164+
enabled: true
165+
# Disable tools irrelevant to this Go project
166+
checkov:
167+
enabled: false
168+
clang:
169+
enabled: false
170+
cppcheck:
171+
enabled: false
172+
ruff:
173+
enabled: false
174+
biome:
175+
enabled: false
176+
eslint:
177+
enabled: false
178+
phpstan:
179+
enabled: false
180+
phpmd:
181+
enabled: false
182+
phpcs:
183+
enabled: false
184+
swiftlint:
185+
enabled: false
186+
detekt:
187+
enabled: false
188+
rubocop:
189+
enabled: false
190+
flake8:
191+
enabled: false
192+
pylint:
193+
enabled: false
194+
oxc:
195+
enabled: false
196+
stylelint:
197+
enabled: false
198+
htmlhint:
199+
enabled: false
200+
clippy:
201+
enabled: false
202+
brakeman:
203+
enabled: false
204+
fortitudeLint:
205+
enabled: false
206+
shopifyThemeCheck:
207+
enabled: false
208+
luacheck:
209+
enabled: false
210+
prismaLint:
211+
enabled: false
212+
sqlfluff:
213+
enabled: false
214+
squawk:
215+
enabled: false
216+
dotenvLint:
217+
enabled: false
218+
buf:
219+
enabled: false
220+
221+
chat:
222+
auto_reply: true

0 commit comments

Comments
 (0)