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