-
Notifications
You must be signed in to change notification settings - Fork 1
Expand file tree
/
Copy pathaction.yml
More file actions
221 lines (215 loc) 路 6.88 KB
/
Copy pathaction.yml
File metadata and controls
221 lines (215 loc) 路 6.88 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
name: "Multi-Provider Code Review"
description: "Hybrid AST + LLM code review with multiple providers"
author: "Keith Herrington"
branding:
icon: "check-circle"
color: "blue"
inputs:
GITHUB_TOKEN:
description: "GitHub token"
required: true
PR_NUMBER:
description: "Pull request number"
required: true
REVIEW_PROVIDERS:
description: |
Comma-separated provider list (e.g., "openrouter/model1,opencode/model2").
BEHAVIOR CHANGE (v0.2.0+):
- Previously: Defaulted to specific hardcoded providers
- Now: Defaults to empty string (enables dynamic discovery)
DEFAULT (empty): Enables dynamic provider discovery - automatically selects best free models
from OpenRouter API (if OPENROUTER_API_KEY set), OpenCode CLI, and hardcoded fallbacks.
Well-tested and recommended for most users.
CUSTOM: Override discovery with specific providers. Disables automatic fallback chain.
Use when you need specific models or want predictable provider selection.
required: false
default: ""
FALLBACK_PROVIDERS:
description: |
Comma-separated fallback providers used when primary providers fail.
DEFAULT (empty): Uses automatic fallback discovery (same mechanism as REVIEW_PROVIDERS).
CUSTOM: Override with specific fallback models.
Only used when REVIEW_PROVIDERS is also set (custom mode).
required: false
default: ""
SYNTHESIS_MODEL:
description: "Model used for synthesis/prompts"
required: false
default: "openrouter/free"
INLINE_MAX_COMMENTS:
description: "Maximum inline comments"
required: false
default: "5"
INLINE_MIN_SEVERITY:
description: "Minimum severity for inline comments"
required: false
default: "major"
INLINE_MIN_AGREEMENT:
description: "Providers required to agree"
required: false
default: "2"
MIN_CHANGED_LINES:
description: "Skip if below this line count"
required: false
default: "0"
MAX_CHANGED_FILES:
description: "Skip if over this file count"
required: false
default: "0"
SKIP_LABELS:
description: "Comma-separated labels to skip"
required: false
default: ""
PROVIDER_LIMIT:
description: "Limit number of providers to rotate"
required: false
default: "6"
PROVIDER_RETRIES:
description: "Retries per provider"
required: false
default: "2"
PROVIDER_MAX_PARALLEL:
description: "Maximum providers to run in parallel"
required: false
default: "3"
DIFF_MAX_BYTES:
description: "Maximum diff bytes to send to providers"
required: false
default: "120000"
RUN_TIMEOUT_SECONDS:
description: "Timeout per provider run"
required: false
default: "600"
BUDGET_MAX_USD:
description: "Budget guard in USD"
required: false
default: "0"
ENABLE_AST_ANALYSIS:
description: "Enable AST analysis"
required: false
default: "true"
ENABLE_SECURITY:
description: "Enable security scan"
required: false
default: "true"
ENABLE_CACHING:
description: "Enable caching of findings"
required: false
default: "true"
ENABLE_TEST_HINTS:
description: "Enable test coverage hints"
required: false
default: "true"
ENABLE_AI_DETECTION:
description: "Enable AI-generated code detection"
required: false
default: "true"
INCREMENTAL_ENABLED:
description: "Enable incremental review (only review changed files on PR updates)"
required: false
default: "true"
INCREMENTAL_CACHE_TTL_DAYS:
description: "Days to keep incremental review cache"
required: false
default: "7"
LEARNING_ENABLED:
description: "Enable feedback learning system"
required: false
default: "true"
LEARNING_MIN_FEEDBACK_COUNT:
description: "Minimum feedback count before adjusting confidence"
required: false
default: "5"
QUIET_USE_LEARNING:
description: "Use learned confidence thresholds in quiet mode"
required: false
default: "true"
QUIET_MIN_CONFIDENCE:
description: "Minimum confidence threshold for quiet mode filtering (0.0-1.0)"
required: false
default: "0.5"
GRAPH_ENABLED:
description: "Enable code graph for dependency tracking"
required: false
default: "true"
GRAPH_CACHE_ENABLED:
description: "Cache code graph between runs"
required: false
default: "true"
GRAPH_MAX_DEPTH:
description: "Maximum depth for dependency traversal"
required: false
default: "5"
GRAPH_TIMEOUT_SECONDS:
description: "Timeout for graph building in seconds"
required: false
default: "10"
REPORT_BASENAME:
description: "Base name for JSON/SARIF reports"
required: false
default: "multi-provider-review"
SKIP_TRIVIAL_CHANGES:
description: "Skip reviews for trivial changes (dependency locks, docs, config files, test fixtures)"
required: false
default: "true"
SKIP_DEPENDENCY_UPDATES:
description: "Skip dependency lock file updates (package-lock.json, yarn.lock, etc.)"
required: false
default: "true"
SKIP_DOCUMENTATION_ONLY:
description: "Skip documentation-only changes (*.md, docs/, README, CHANGELOG)"
required: false
default: "true"
SKIP_FORMATTING_ONLY:
description: "Skip formatting-only changes (whitespace, indentation)"
required: false
default: "false"
SKIP_TEST_FIXTURES:
description: "Skip test fixture changes (__fixtures__, __snapshots__, *.snap)"
required: false
default: "true"
SKIP_CONFIG_FILES:
description: "Skip config file changes (.eslintrc, .prettierrc, .gitignore, .gitattributes, tsconfig.json)"
required: false
default: "true"
SKIP_BUILD_ARTIFACTS:
description: "Skip build artifact changes (dist/, build/, *.min.js, *.map)"
required: false
default: "true"
TRIVIAL_PATTERNS:
description: "Custom regex patterns for trivial files (comma-separated)"
required: false
default: ""
PATH_BASED_INTENSITY:
description: "Enable path-based review intensity (opt-in feature)"
required: false
default: "false"
PATH_INTENSITY_PATTERNS:
description: "JSON array of path patterns with intensities (e.g., [{\"pattern\":\"src/auth/**\",\"intensity\":\"thorough\"}])"
required: false
default: ""
PATH_DEFAULT_INTENSITY:
description: "Default review intensity for files that don't match patterns (thorough, standard, light)"
required: false
default: "standard"
DRY_RUN:
description: "Preview mode - run review without posting to GitHub"
required: false
default: "false"
OPENROUTER_API_KEY:
description: "API key for OpenRouter"
required: false
outputs:
findings_count:
description: "Number of findings"
critical_count:
description: "Critical findings count"
cost_usd:
description: "Total cost in USD"
total_cost:
description: "Total cost in USD (alias for cost_usd)"
ai_likelihood:
description: "Average AI-generated likelihood"
runs:
using: "node20"
main: "dist/index.js"