-
Notifications
You must be signed in to change notification settings - Fork 8
Expand file tree
/
Copy path.coderabbit.yaml
More file actions
151 lines (141 loc) · 6.63 KB
/
.coderabbit.yaml
File metadata and controls
151 lines (141 loc) · 6.63 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
# SPDX-FileCopyrightText: Copyright (c) 2026, NVIDIA CORPORATION & AFFILIATES. All rights reserved.
# SPDX-License-Identifier: Apache-2.0
# yaml-language-server: $schema=https://coderabbit.ai/integrations/schema.v2.json
# Docs: https://docs.coderabbit.ai/reference/configuration
language: "en-US"
tone_instructions: "Be concise, technical, and specific. Prioritize correctness, safety, and maintainability over style nits."
reviews:
profile: assertive
review_status: true
review_details: true
collapse_walkthrough: false
pre_merge_checks:
title:
mode: error
requirements: >-
Title must follow Conventional Commits format:
type(optional-scope)[!]: concise imperative summary
Allowed types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert.
Use lowercase type and scope. If the change is a breaking change, a ! suffix is required before the colon.
Keep it under 72 characters and do not use a trailing period.
description:
mode: warning
issue_assessment:
mode: warning
auto_title_placeholder: "@coderabbitai"
auto_title_instructions: |
Generate the PR title using Conventional Commits format:
type(optional-scope)[!]: concise imperative summary
Allowed types: feat, fix, docs, style, refactor, perf, test, build, ci, chore, revert.
Prefer scopes from this repository when clear: core, adaptive, python, ffi, node, wasm, go, docs, ci, deps, patches
Use lowercase type and scope. If the change is a breaking change, add a ! suffix before the colon.
Keep it under 72 characters and do not use a trailing period.
auto_review:
base_branches: ["main", "release/.*"]
enabled: true
drafts: false
auto_incremental_review: true
path_filters:
- "!target/**"
- "!**/target/**"
- "!.venv/**"
- "!**/.venv/**"
- "!**/node_modules/**"
- "!crates/node/coverage/**"
- "!crates/wasm/coverage/**"
- "!**/.pytest_cache/**"
- "!**/.ruff_cache/**"
- "!**/.scannerwork/**"
- "!crates/wasm/pkg/**"
- "!crates/wasm/pkg-test/**"
- "!third_party/**"
- "!**/junit.xml"
- "!**/*.profraw"
- "!**/*.profdata"
- "!**/*.lcov"
path_instructions:
- path: "crates/{core,adaptive}/**/*.rs"
instructions: |
Review the Rust runtime for async correctness, scope isolation, middleware ordering, and event lifecycle regressions.
Pay close attention to task-local/thread-local scope propagation, callback lifetimes, stream finalization, and root_uuid isolation.
Public API changes should preserve existing behavior unless tests and docs show the intended migration path.
- path: "crates/{python,ffi,node,wasm}/**/*"
instructions: |
Treat binding changes as public API changes. Check for parity with the other language bindings, FFI ownership/lifetime safety,
callback error propagation, stable type conversion, and consistent async/stream semantics.
Flag changes that update one binding without corresponding tests or documentation for the same surface elsewhere.
- path: "python/nemo_flow/**/*"
instructions: |
Review Python wrapper changes for typed API consistency, contextvars-based scope isolation, async behavior, and parity with the native extension.
Stubs and runtime implementations should stay aligned.
- path: "go/nemo_flow/**/*"
instructions: |
Review Go binding changes for cgo memory ownership, race safety, callback cleanup, idiomatic exported APIs, and parity with Rust/FFI behavior.
Any API change should include focused Go tests and consider race-test behavior.
- path: "{crates/**/tests/**,python/tests/**,go/nemo_flow/**/*_test.go}"
instructions: |
Tests should cover the behavior promised by the changed API surface, including error paths and cross-request isolation where relevant.
Prefer assertions on lifecycle events, scope stacks, middleware ordering, and binding parity over shallow smoke tests.
- path: "patches/**/*.patch"
instructions: |
Patch changes should remain reviewable as regenerated diffs against the matching third_party submodule.
Check that integration behavior, package metadata, and tests remain consistent with the main NeMo Flow API.
- path: "{docs/**,README.md,CONTRIBUTING.md,RELEASING.md,SECURITY.md}"
instructions: |
Review documentation for technical accuracy against the current API, command correctness, and consistency across language bindings.
Flag stale examples, missing SPDX headers where required, and instructions that no longer match CI or pre-commit behavior.
- path: "**/SKILL.md"
instructions: |
Do not flag SKILL.md files for missing SPDX headers. Skill entrypoints intentionally start with YAML frontmatter instead.
Verify that every SKILL.md keeps valid YAML frontmatter with at least name and description fields before the Markdown body.
- path: "{.github/**,.gitlab-ci.yml,.pre-commit-config.yaml,justfile,scripts/**}"
instructions: |
Review automation changes for reproducibility, pinned versions where appropriate, secret handling, and consistency with the documented validation matrix.
Pay attention to commands that need generated native artifacts, FFI libraries, or platform-specific environment variables.
poem: false
sequence_diagrams: true
suggested_reviewers: false
tools:
actionlint:
enabled: true
clippy:
enabled: true
golangci-lint:
enabled: true
ruff:
enabled: true
shellcheck:
enabled: true
yamllint:
enabled: true
markdownlint:
enabled: true
gitleaks:
enabled: true
osvScanner:
enabled: true
semgrep:
enabled: true
auto_apply_labels: true
labeling_instructions:
- label: DO NOT MERGE
instructions: >-
Apply this label to PRs that should not be merged due to critical issues, incomplete work, or other blocking
concerns. Check the PR description for specific details about why it should not be merged. There is no need to
apply this label to draft PRs.
- label: duplicate
instructions: >-
Apply this label when the PR addresses the same issue or implements the same feature as another existing
PR or issue.
- label: invalid
instructions: >-
Apply this label when the PR contains invalid changes, doesn't follow project guidelines, or has fundamental
issues that make it unsuitable for the project.
knowledge_base:
code_guidelines:
enabled: true
filePatterns:
- "AGENTS.md"
- "CLAUDE.md"
- "CONTRIBUTING.md"
- ".agents/skills/**/*.md"