Repository navigation
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
344 lines (313 loc) · 13.7 KB
/
Copy path.coderabbit.yaml
File metadata and controls
344 lines (313 loc) · 13.7 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
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
# CodeRabbit config docs: https://docs.coderabbit.ai/reference/configuration
# Defaults and examples GitHub repo: coderabbitai/awesome-coderabbit
# General settings
language: "en-US" # Language for reviews (default: "en-US")
tone_instructions: "" # Custom tone for reviews (default: "")
inheritance: false # top-level instructions (default: false)
# preview features
early_access: true # Enable early-access features (default: false)
# ISSUE ENRICHMENT (preview)
issue_enrichment:
auto_enrich:
enabled: false # Enable auto issue enrichment (default: true)
planning:
enabled: true # Enable generating a planning for issues (default: true)
auto_planning:
enabled: true # Enable auto-generated plans based on labels (default: true)
labels: # Triggering labels for auto-planning (default: [])
- rabbit-plan
labeling:
auto_apply_labels: false
labeling_instructions: []
# REVIEWS
reviews:
profile: "chill"
review_status: true
commit_status: true
fail_commit_status: false
request_changes_workflow: false
enable_prompt_for_ai_agents: true
in_progress_fortune: false
abort_on_close: true
disable_cache: false
# High level summary of the changes in the PR/MR description or walkthrough.
high_level_summary: false
high_level_summary_in_walkthrough: false
high_level_summary_placeholder: "@coderabbitai summary"
# Walkthrough
collapse_walkthrough: true
changed_files_summary: false # Generate a summary of the changed files in the walkthrough.
sequence_diagrams: false # Generate sequence diagrams in the walkthrough.
estimate_code_review_effort: false # Generate review effort in walkthrough.
assess_linked_issues: true # Assess how well the changes address the linked issues in the walkthrough.
related_issues: true # Include possibly related issues in the walkthrough.
related_prs: true # Include possibly related pull requests in the walkthrough.
poem: false # Generate a poem in the walkthrough comment.
# Automatic review scheduling
auto_review:
enabled: true
auto_incremental_review: true # Review each push (default: true)
drafts: false # Review Draft pull requests (default: false)
base_branches:
- ".*"
# Automatic labels
# Suggest labels based on the changes in the pull request in the walkthrough.
suggested_labels: false
auto_apply_labels: false
# Automatic reviewers
# Suggest reviewers based on the changes in the pull request in the walkthrough.
suggested_reviewers: false
auto_assign_reviewers: false
# Automatic PR titles
auto_title_placeholder: "@coderabbitai"
auto_title_instructions: |
Use conventional commit with short (<65 chars) sentence case Subject. See Copilot instructions.
Title strategy:
- Focus on the PRIMARY contribution or most central feature delivered in the PR
- Do NOT base the title on the last commit message
- Do NOT choose the most verbose or largest change
- Identify the core purpose or business value of the PR
- Keep titles concise and meaningful
Requirements:
- Use lowercase for type: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert, or plan
- Subject must start with an uppercase letter
- Keep total title length ≤ 65 characters
- Use imperative mood (e.g., "Add feature" not "Added feature")
Examples:
- `feat: Add WebSocket support` (not "Update connection manager")
- `fix: Resolve authentication timeout` (not "Fix bug in auth service")
- `docs: Improve API examples` (not "Update documentation files")
- `chore: Update dependencies` (when that's the sole purpose)
# Code enhancement features
finishing_touches:
docstrings:
enabled: false # Generate docstrings for PRs/MRs (default: true)
unit_tests:
enabled: false # Generate unit tests for PRs/MRs (default: true)
# Pre-merge validation checks
pre_merge_checks:
docstrings: # Docstring coverage check (default: warning)
mode: off
description: # PR description validation (default: warning)
mode: off
issue_assessment: # Linked issue assessment (default: warning)
mode: off
title: # PR title validation (default: warning)
mode: off
# Files to include/exclude from reviews
path_filters:
- "**" # Include all (base)
- "!node_modules/" # NPM dependencies
- "!*-lock.json" # NPM/PNPM lock files
- "!packages.lock.json" # NuGet lock file
- "!packages/" # NuGet packages cache
- "!.jekyll-cache/" # Jekyll cache
- "!vendor/" # Ruby vendor and gem files
- "!Gemfile.lock" # Ruby dependencies lock
- "!docs/.vitepress/cache/" # VitePress cache
- "!docs/.vitepress/dist/" # VitePress build output
- "!bin/" # .NET build output
- "!obj/" # .NET build intermediate files
- "!**/_testdata/**/*.csv" # Test data
- "!**/_testdata/**/*.json" # Test data
- "!**/*.g.cs" # Generated source code
- "!**/*.docx" # Office Word
- "!**/*.pptx" # Office PowerPoint
- "!**/*.xlsx" # Office Spreadsheets
- "!**/*.bak" # Backup files
- "!**/*.zip" # Compressed files
# Path-based configuration
path_instructions:
# Indicator documentation pages must stay aligned with the current API surface
- path: "docs/*indicators/*.md"
instructions: |
Keep each indicator page synchronized with its public API:
- Refresh the primary usage example (extension method and `Get{Indicator}` call) to match the latest signature and defaults
- Document required and optional parameters, warmup expectations, and key output columns
- Note any behavior changes, streaming considerations, or spec references introduced by the PR
# Source code - Focus on financial accuracy and performance
- path: "src/**/*.cs"
instructions: |
Focus on:
- **Mathematical accuracy**: Verify financial calculations against reference implementations
- **Performance**: Flag unnecessary allocations, excessive LINQ, boxing operations
- **Precision**: Ensure appropriate use of `double` vs `decimal` for financial calculations
- **Null safety**: Validate handling of insufficient data scenarios
- **Input validation**: Check parameter validation and error handling
- **Lookback periods**: Verify off-by-one errors in window calculations
- **Streaming support**: Ensure stateful indicators handle edge cases properly
- **Memory efficiency**: Check for proper span usage and buffer management
- **XML documentation**: Ensure all public APIs have complete documentation
# Test files - Ensure comprehensive coverage and accuracy validation
- path: "tests/**/*.cs"
instructions: |
Review for:
- **Test coverage**: Ensure edge cases and boundary conditions are tested
- **Mathematical validation**: Verify tests use manually calculated results
- **Performance tests**: Check benchmark tests for regression detection
- **Integration tests**: Validate API compatibility and chaining scenarios
- **Streaming tests**: Ensure real-time scenarios are properly tested
- **Error scenarios**: Verify exception handling and invalid input tests
# Catalog files - API definition accuracy
- path: "**/*.Catalog.cs"
instructions: |
Verify:
- **Parameter definitions**: Check types, defaults, constraints match implementation
- **Result definitions**: Ensure property names match Models exactly
- **IReusable flags**: Verify only one result per indicator has isReusable=true
- **Method names**: Follow To{IndicatorName} pattern consistently
- **Category assignments**: Use appropriate technical analysis categories
# Documentation - Accuracy and completeness
- path: "docs/**/*.md"
instructions: |
Check for:
- **Accuracy**: Ensure content matches current implementation
- **Completeness**: Verify examples, parameters, and return values are documented
- **Accessibility**: Flag missing alt text, poor heading hierarchy
- **Link validity**: Check for broken internal/external links
- **Mathematical formulas**: Verify calculation descriptions are correct
# VitePress site files
- path: "docs/**/*.{html,vue,mts,ts,js,css,scss}"
instructions: |
Focus on:
- **Accessibility**: WCAG compliance, semantic HTML, proper ARIA labels
- **Performance**: Optimize images, minimize CSS/JS, efficient loading
- **Mobile responsiveness**: Ensure layouts work across devices
- **SEO**: Check meta tags, structured data, semantic markup
- **VitePress patterns**: Follow VitePress conventions and Vue best practices
# Configuration and workflow files
- path: ".github/**/*.yml"
instructions: |
Review for:
- **Security**: No secrets in workflows, proper permissions
- **Efficiency**: Optimize CI/CD performance, avoid redundant builds
- **Dependencies**: Keep actions and versions current
- **Error handling**: Proper failure scenarios and notifications
# Project files and build configuration
- path: "**/*.{csproj,props,targets,sln}"
instructions: |
Verify:
- **Version consistency**: Package versions, target frameworks alignment
- **Security**: No vulnerable packages, proper security settings
- **Performance**: Compiler optimizations enabled for release builds
- **Analyzers**: Code quality rules properly configured
- **Packaging**: NuGet metadata complete and accurate
# Tool integrations
tools:
# tools: default on
actionlint: # GitHub Actions workflow static checker
enabled: true
ast-grep: # Code pattern analysis using AST
essential_rules: true
gitleaks: # Secret/credential scanner
enabled: true
github-checks: # GitHub Checks integration
enabled: true
timeout_ms: 90000
markdownlint: # Markdown linter for consistency
enabled: true
osvScanner: # Vulnerability package scanner
enabled: true
semgrep: # Security & code quality static analysis
enabled: true
shellcheck: # Shell script linter
enabled: true
yamllint: # YAML linter
enabled: true
# tools: default off
biome: # Fast formatter, linter, and analyzer for web
enabled: false
brakeman: # Rails security vulnerability scanner
enabled: false
buf: # Protobuf linter
enabled: false
checkov: # Infrastructure-as-code static analyzer
enabled: false
checkmake: # Makefile linter
enabled: false
circleci: # CircleCI config static checker
enabled: false
clang: # C/C++ static analysis tool
enabled: false
clippy: # Rust linter
enabled: false
cppcheck: # C/C++ static analyzer
enabled: false
detekt: # Kotlin static analyzer
enabled: false
dotenvLint: # .env file linter
enabled: false
eslint: # JavaScript/TypeScript linter
enabled: false
flake8: # Python linter
enabled: false
fortitudeLint: # Fortran linter
enabled: false
golangci-lint: # Go linter runner
enabled: false
hadolint: # Dockerfile linter
enabled: false
htmlhint: # HTML linter
enabled: false
languagetool: # Grammar and style checker (30+ languages)
enabled: false
luacheck: # Lua linter
enabled: false
oxc: # JavaScript/TypeScript linter in Rust
enabled: false
phpcs: # PHP linter and coding standard checker
enabled: false
phpmd: # PHP code quality analyzer
enabled: false
phpstan: # PHP static analysis tool
enabled: false
pmd: # Java/multilanguage static analyzer
enabled: false
prismaLint: # Prisma schema linter
enabled: false
pylint: # Python static analyzer
enabled: false
regal: # Rego linter and language server
enabled: false
ruff: # Python linter and formatter
enabled: false
rubocop: # Ruby linter and code formatter
enabled: false
shopifyThemeCheck: # Shopify Liquid theme linter
enabled: false
sqlfluff: # SQL linter
enabled: false
swiftlint: # Swift linter
enabled: false
# CHAT FEATURES
chat:
art: false
auto_reply: true
integrations:
jira:
usage: disabled
linear:
usage: disabled
# KNOWLEDGE BASE
knowledge_base:
opt_out: false
web_search:
enabled: true
code_guidelines:
enabled: true
filePatterns:
- "**/AGENTS.md"
- ".agents/skills/**/SKILL.md"
learnings:
scope: auto
issues:
scope: auto
pull_requests:
scope: auto
mcp:
usage: auto
jira:
usage: disabled
linear:
usage: disabled