diff --git a/.coderabbit.yaml b/.coderabbit.yaml new file mode 100644 index 0000000..22e9b38 --- /dev/null +++ b/.coderabbit.yaml @@ -0,0 +1,153 @@ +# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json +# CodeRabbit config docs: https://docs.coderabbit.ai/reference/configuration + +# General settings +language: "en-US" +early_access: true + +# REVIEW CONFIGURATION +reviews: + profile: "chill" + review_status: true + commit_status: true + fail_commit_status: false + request_changes_workflow: false + in_progress_fortune: false + + high_level_summary: false + high_level_summary_in_walkthrough: false + collapse_walkthrough: true + changed_files_summary: false + sequence_diagrams: false + estimate_code_review_effort: false + poem: false + + related_issues: false + related_prs: false + + suggested_labels: false + auto_apply_labels: false + suggested_reviewers: false + auto_assign_reviewers: false + + auto_review: + enabled: true + drafts: false + base_branches: + - ".*" + + auto_title_placeholder: "@coderabbitai" + auto_title_instructions: | + Generate PR titles following Conventional Commits format: `type: Subject` + + 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: warning + + # Files to include/exclude from reviews + path_filters: + - "**" # Include all (base) + - "!.specify/scripts/" # Spec Kit (except memory) + - "!.specify/templates/" # Spec Kit (except memory) + - "!.github/prompts/speckit.*" # Spec Kit prompts + - "!node_modules/" # NPM dependencies + - "!*-lock.json" # NPM/PNPM lock files + - "!packages/" # NuGet packages cache + - "!.jekyll-cache/" # Jekyll cache + - "!vendor/" # Ruby vendor and gem files + - "!Gemfile.lock" # Ruby dependencies lock + - "!bin/" # .NET build output + - "!obj/" # .NET build intermediate files + - "!*.g.cs" # Generated source files + - "!*.xlsx" # Manual calculation spreadsheets + - "!*.bak" # Backup files + + # Tool integrations + tools: + gitleaks: + enabled: true + semgrep: + enabled: true + osvScanner: + enabled: true + markdownlint: + enabled: true + yamllint: + enabled: true + actionlint: + enabled: true + shellcheck: + enabled: true + github-checks: + enabled: true + timeout_ms: 400000 + eslint: + enabled: false + ruff: + enabled: false + golangci-lint: + enabled: false + hadolint: + enabled: false + checkov: + enabled: false + htmlhint: + enabled: false + languagetool: + enabled: false + biome: + enabled: false + oxc: + enabled: false + +# KNOWLEDGE BASE CONFIGURATION +knowledge_base: + opt_out: false + code_guidelines: + enabled: true + filePatterns: + - ".github/copilot-instructions.md" + - ".github/instructions/*.instructions.md" + - ".github/instructions/**/*.instructions.md" + - "**/agents.md" + learnings: + scope: "auto" + issues: + scope: "auto" + pull_requests: + scope: "auto" + mcp: + usage: "auto"