coderev-cli 1.0.15 → 1.0.17
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +542 -219
- package/package.json +1 -1
- package/src/blame.js +247 -0
- package/src/cli.js +202 -170
- package/src/config.js +86 -8
- package/src/reviewer.js +19 -0
package/README.md
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# coderev-cli
|
|
2
2
|
|
|
3
|
-
> 多智能体 AI 代码审查工具 — Security / Bug / Quality 三个 Agent
|
|
3
|
+
> 多智能体 AI 代码审查工具 — Security / Bug / Quality 三个 Agent 并行审查,带置信度评分和自动修复。
|
|
4
4
|
|
|
5
5
|
[](https://www.npmjs.com/package/coderev-cli)
|
|
6
6
|
[](https://github.com/sponsors/jishuanjimingtian)
|
|
@@ -13,221 +13,444 @@
|
|
|
13
13
|
|
|
14
14
|
---
|
|
15
15
|
|
|
16
|
+
## 目录
|
|
17
|
+
|
|
18
|
+
- [项目介绍](#项目介绍)
|
|
19
|
+
- [安装](#安装)
|
|
20
|
+
- [快速上手](#快速上手)
|
|
21
|
+
- [命令详解](#命令详解)
|
|
22
|
+
- [coderev review(核心审查)](#coderev-review核心审查)
|
|
23
|
+
- [coderev fix(自动修复)](#coderev-fix自动修复)
|
|
24
|
+
- [coderev hook(Git Hooks)](#coderev-hookgit-hooks)
|
|
25
|
+
- [coderev stats(统计看板)](#coderev-stats统计看板)
|
|
26
|
+
- [coderev cache(缓存管理)](#coderev-cache缓存管理)
|
|
27
|
+
- [coderev config(配置管理)](#coderev-config配置管理)
|
|
28
|
+
- [coderev init(初始化)](#coderev-init初始化)
|
|
29
|
+
- [配置详解](#配置详解)
|
|
30
|
+
- [平台集成](#平台集成)
|
|
31
|
+
- [CI/CD 集成](#cicd-集成)
|
|
32
|
+
- [FAQ / 常见问题](#faq--常见问题)
|
|
33
|
+
|
|
34
|
+
---
|
|
35
|
+
|
|
36
|
+
## 项目介绍
|
|
37
|
+
|
|
38
|
+
**coderev 是什么?**
|
|
39
|
+
|
|
40
|
+
coderev(Code Review 缩写)是一个**多智能体 AI 代码审查 CLI 工具**。你扔给它一段代码 diff,它会并行启动 3 个 AI Agent,从**安全、缺陷、质量**三个维度审查,然后汇总成结构化的审查报告。
|
|
41
|
+
|
|
42
|
+
**为什么要用 coderev?**
|
|
43
|
+
|
|
44
|
+
| 场景 | 不用 coderev | 用 coderev |
|
|
45
|
+
|------|-------------|-----------|
|
|
46
|
+
| 每次提交前 | 凭肉眼检查或忘了检查 | 自动跑三个维度审查 |
|
|
47
|
+
| 审查同事的 PR | 逐行看,容易漏 | AI 先扫一遍,你只看高置信度 issue |
|
|
48
|
+
| 安全审计 | 依赖经验,覆盖不全 | OWASP 级别检查 |
|
|
49
|
+
| 项目代码质量把控 | 看个人标准和心情 | 统一的规则引擎 + 置信度评分 |
|
|
50
|
+
|
|
51
|
+
**适用人群**
|
|
52
|
+
- 独立开发者 — 提交前自动把关,减少 Bug
|
|
53
|
+
- 团队/开源维护者 — PR 接入 AI 初审,提高审查效率
|
|
54
|
+
- CI/CD 流水线 — 集成到 CI,自动拦截高风险代码
|
|
55
|
+
|
|
56
|
+
---
|
|
57
|
+
|
|
16
58
|
## 安装
|
|
17
59
|
|
|
60
|
+
### 全局安装(推荐)
|
|
61
|
+
|
|
18
62
|
```bash
|
|
19
63
|
npm install -g coderev-cli
|
|
20
64
|
```
|
|
21
65
|
|
|
22
|
-
>
|
|
66
|
+
> **要求 Node.js >= 18**,可使用 `node -v` 检查版本。
|
|
67
|
+
|
|
68
|
+
### 验证安装
|
|
69
|
+
|
|
70
|
+
```bash
|
|
71
|
+
coderev --help
|
|
72
|
+
```
|
|
73
|
+
|
|
74
|
+
看到命令列表则安装成功。
|
|
75
|
+
|
|
76
|
+
### 更新
|
|
23
77
|
|
|
24
78
|
```bash
|
|
25
|
-
|
|
26
|
-
node -v
|
|
79
|
+
npm update -g coderev-cli
|
|
27
80
|
```
|
|
28
81
|
|
|
29
82
|
---
|
|
30
83
|
|
|
31
84
|
## 快速上手
|
|
32
85
|
|
|
86
|
+
### 第 1 步:初始化
|
|
87
|
+
|
|
88
|
+
在项目目录中执行,生成默认配置:
|
|
89
|
+
|
|
33
90
|
```bash
|
|
34
|
-
# 1. 初始化项目配置
|
|
35
91
|
coderev init
|
|
92
|
+
```
|
|
36
93
|
|
|
37
|
-
|
|
38
|
-
# Linux / macOS:
|
|
39
|
-
export DEEPSEEK_API_KEY="***"
|
|
40
|
-
# Windows PowerShell:
|
|
41
|
-
$env:DEEPSEEK_API_KEY="***"
|
|
94
|
+
会在当前目录创建 `.coderevrc.json` 配置文件。
|
|
42
95
|
|
|
43
|
-
|
|
44
|
-
coderev review
|
|
96
|
+
### 第 2 步:设置 API Key
|
|
45
97
|
|
|
46
|
-
|
|
47
|
-
git diff main | coderev review
|
|
98
|
+
coderev 需要调用 AI API 来审查代码。支持 OpenAI 和 DeepSeek。
|
|
48
99
|
|
|
49
|
-
|
|
50
|
-
|
|
100
|
+
```bash
|
|
101
|
+
# Windows PowerShell
|
|
102
|
+
$env:DEEPSEEK_API_KEY="sk-your-key-here"
|
|
103
|
+
|
|
104
|
+
# Linux / macOS
|
|
105
|
+
export DEEPSEEK_API_KEY="sk-your-key-here"
|
|
51
106
|
```
|
|
52
107
|
|
|
53
|
-
|
|
108
|
+
也可以写入配置文件(见下方「配置详解」)。
|
|
54
109
|
|
|
55
|
-
|
|
110
|
+
### 第 3 步:运行审查
|
|
56
111
|
|
|
112
|
+
#### 审查暂存区变更(最常用的方式)
|
|
113
|
+
|
|
114
|
+
```bash
|
|
115
|
+
git add .
|
|
116
|
+
coderev review
|
|
57
117
|
```
|
|
58
|
-
|
|
59
|
-
|
|
60
|
-
|
|
61
|
-
|
|
62
|
-
|
|
63
|
-
│ 🔒 ││ 🐛 ││ 📐 │
|
|
64
|
-
│ 安全 ││ 缺陷 ││ 质量 │
|
|
65
|
-
│ 审计 ││ 检测 ││ 检查 │
|
|
66
|
-
└──┬───┘└──┬───┘└──┬───┘
|
|
67
|
-
│ │ │
|
|
68
|
-
└───────┼───────┘
|
|
69
|
-
▼
|
|
70
|
-
┌──────────┐
|
|
71
|
-
│ 合并 & │
|
|
72
|
-
│ 置信度评分 │
|
|
73
|
-
│ (0-100) │
|
|
74
|
-
└────┬─────┘
|
|
75
|
-
▼
|
|
76
|
-
结构化审查报告
|
|
118
|
+
|
|
119
|
+
#### 审查当前分支的未提交变更
|
|
120
|
+
|
|
121
|
+
```bash
|
|
122
|
+
coderev review --diff
|
|
77
123
|
```
|
|
78
124
|
|
|
79
|
-
|
|
80
|
-
|-------|---------|
|
|
81
|
-
| 🔒 安全审计 | SQL注入、XSS、SSRF、硬编码密钥、认证缺陷 |
|
|
82
|
-
| 🐛 缺陷检测 | 空指针、竞态条件、异步问题、逻辑错误 |
|
|
83
|
-
| 📐 质量检查 | 代码复杂度、DRY、命名规范、异常处理 |
|
|
125
|
+
#### 审查某个 commit
|
|
84
126
|
|
|
85
|
-
|
|
127
|
+
```bash
|
|
128
|
+
coderev review --commit HEAD~1
|
|
129
|
+
```
|
|
86
130
|
|
|
87
|
-
|
|
131
|
+
#### 审查 PR
|
|
132
|
+
|
|
133
|
+
```bash
|
|
134
|
+
coderev review --pr 42
|
|
135
|
+
```
|
|
88
136
|
|
|
89
|
-
|
|
137
|
+
### 第 4 步:查看报告
|
|
90
138
|
|
|
91
|
-
|
|
139
|
+
审查结果会直接输出在终端。如果开启 HTML 模式,可以生成可视化报告:
|
|
92
140
|
|
|
93
141
|
```bash
|
|
94
|
-
coderev review
|
|
95
|
-
|
|
96
|
-
coderev review --single # 单 Agent 模式(v0.2 兼容,更省)
|
|
97
|
-
coderev review --audit # 安全审计模式(OWASP 级)
|
|
98
|
-
coderev review --no-cache # 跳过缓存
|
|
99
|
-
coderev review --format json # JSON 输出
|
|
100
|
-
coderev review --format html # HTML 报告输出
|
|
101
|
-
coderev review --incremental # 只审查 diff 新增/变更行
|
|
102
|
-
coderev review --interactive # 交互式逐条修复问题
|
|
103
|
-
coderev review --ci # CI 模式(发现问题则 exit code 1)
|
|
142
|
+
coderev review --output html > report.html
|
|
143
|
+
# 浏览器打开 report.html
|
|
104
144
|
```
|
|
105
145
|
|
|
106
|
-
|
|
146
|
+
---
|
|
107
147
|
|
|
108
|
-
|
|
148
|
+
## 命令详解
|
|
149
|
+
|
|
150
|
+
### coderev review(核心审查)
|
|
151
|
+
|
|
152
|
+
**作用**:审查代码差异并输出审查报告。这是 coderev 最核心的命令。
|
|
153
|
+
|
|
154
|
+
**使用方式**:
|
|
109
155
|
|
|
110
156
|
```bash
|
|
157
|
+
coderev review [选项]
|
|
158
|
+
```
|
|
159
|
+
|
|
160
|
+
**默认可选参数**:
|
|
161
|
+
|
|
162
|
+
| 参数 | 说明 | 示例 |
|
|
163
|
+
|------|------|------|
|
|
164
|
+
| `--diff` | 审查当前分支未提交的变更(与最近 commit 对比) | `coderev review --diff` |
|
|
165
|
+
| `--commit <ref>` | 审查指定 commit | `coderev review --commit abc123` |
|
|
166
|
+
| `--staged` | 审查暂存区(默认行为) | `coderev review` |
|
|
167
|
+
| `--single` | 单 Agent 模式(只用 1 个 Agent,省 token,v0.2 兼容) | `coderev review --single` |
|
|
168
|
+
| `--min-confidence <0-100>` | 置信度阈值,低于此值的结果不显示(默认 60) | `coderev review --min-confidence 80` |
|
|
169
|
+
| `--no-cache` | 跳过缓存,强制重新审查 | `coderev review --no-cache` |
|
|
170
|
+
| `--format <format>` | 输出格式:`terminal`(终端) / `json` / `html` / `markdown` | `coderev review --format json` |
|
|
171
|
+
| `--output <type>` | 输出方式:`terminal`(终端)/ `json` / `html` / `markdown` | `coderev review --output html` |
|
|
172
|
+
| `--audit` | 安全审计模式,重点关注安全问题 | `coderev review --audit` |
|
|
173
|
+
| `--incremental` | 增量模式,只审查 diff 中新增和变更的行(忽略删除的行) | `coderev review --incremental` |
|
|
174
|
+
| `--interactive` | 交互式模式,逐条审查 issue 并选择是否修复 | `coderev review --interactive` |
|
|
175
|
+
| `--ci` | CI 模式,发现问题时以非零退出码终止 | `coderev review --ci` |
|
|
176
|
+
| `--pr <value>` | 审查 Pull Request,格式 `owner/repo#number` 或仅 `number`(自动检测仓库) | `coderev review --pr jishuanjimingtian/coderev#42` |
|
|
177
|
+
| `--post` | 审查 PR 后自动回贴评论(需配合 `--pr`) | `coderev review --pr 42 --post` |
|
|
178
|
+
| `--inline` | 审查 PR 后以行内方式回贴评论(需配合 `--pr`) | `coderev review --pr 42 --inline` |
|
|
179
|
+
|
|
180
|
+
**使用示例**:
|
|
181
|
+
|
|
182
|
+
```bash
|
|
183
|
+
# 最简用法:审查暂存区
|
|
184
|
+
coderev review
|
|
185
|
+
|
|
186
|
+
# 审查某个 PR 并回贴评论
|
|
187
|
+
coderev review --pr jishuanjimingtian/coderev#42 --post
|
|
188
|
+
|
|
189
|
+
# 终端输出 + 高置信度要求(减少误报)
|
|
190
|
+
coderev review --min-confidence 80
|
|
191
|
+
|
|
192
|
+
# CI 中使用,发现问题就报错
|
|
193
|
+
coderev review --ci --min-confidence 70
|
|
194
|
+
|
|
195
|
+
# 生成 HTML 报告
|
|
196
|
+
coderev review --format html > review-report.html
|
|
197
|
+
|
|
198
|
+
# 交互式审查并修复
|
|
199
|
+
coderev review --interactive
|
|
200
|
+
|
|
201
|
+
# 只审查新增的代码(增量模式)
|
|
202
|
+
coderev review --incremental
|
|
203
|
+
|
|
204
|
+
# 通过管道传入 diff(支持任意 diff 输入)
|
|
205
|
+
git diff main | coderev review
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
#### --interactive 交互式修复详解
|
|
209
|
+
|
|
210
|
+
**作用**:逐条展示每个审查发现的问题,让你决定是否用 AI 生成补丁自动修复。
|
|
211
|
+
|
|
212
|
+
**工作流程**:
|
|
213
|
+
|
|
214
|
+
```
|
|
111
215
|
coderev review --interactive
|
|
112
|
-
# 输出示例:
|
|
113
|
-
# Issue #1 of 3
|
|
114
|
-
# ● [high] [error] SQL injection risk in query construction
|
|
115
|
-
# File: src/db.js:42
|
|
116
|
-
# Suggestion: Use parameterized queries
|
|
117
|
-
# [a]pply fix / [s]kip / [q]uit > a
|
|
118
216
|
```
|
|
119
217
|
|
|
120
|
-
|
|
218
|
+
终端会依次展示每个 issue:
|
|
121
219
|
|
|
122
|
-
|
|
220
|
+
```
|
|
221
|
+
Issue #1 of 3
|
|
222
|
+
● [high] [error] SQL injection risk in query construction
|
|
223
|
+
File: src/db.js:42
|
|
224
|
+
Suggestion: Use parameterized queries
|
|
225
|
+
|
|
226
|
+
[a]pply fix / [s]kip / [q]uit > a
|
|
227
|
+
```
|
|
228
|
+
|
|
229
|
+
**交互选项**:
|
|
230
|
+
|
|
231
|
+
| 按键 | 作用 |
|
|
232
|
+
|------|------|
|
|
233
|
+
| `a` | Apply fix — AI 生成补丁并应用到文件 |
|
|
234
|
+
| `s` | Skip — 跳过当前 issue |
|
|
235
|
+
| `q` | Quit — 退出交互模式 |
|
|
236
|
+
|
|
237
|
+
#### --ci CI 模式详解
|
|
238
|
+
|
|
239
|
+
**作用**:专为 CI/CD 管道设计。如果代码中发现任何 issue(且置信度高于阈值),coderev 以非零退出码退出,中断管道执行。
|
|
123
240
|
|
|
124
241
|
```bash
|
|
125
|
-
|
|
126
|
-
coderev review --ci
|
|
242
|
+
# 常规使用
|
|
243
|
+
coderev review --ci
|
|
244
|
+
|
|
245
|
+
# 配合高阈值,只拦截确定严重的问题
|
|
246
|
+
coderev review --ci --min-confidence 80
|
|
247
|
+
|
|
248
|
+
# 结合 JSON 输出,供上游 CI 脚本处理
|
|
249
|
+
coderev review --ci --format json
|
|
127
250
|
```
|
|
128
251
|
|
|
129
|
-
|
|
252
|
+
**在 CI 配置中的用法**(例如 GitHub Actions):
|
|
253
|
+
|
|
254
|
+
```yaml
|
|
255
|
+
- name: coderev check
|
|
256
|
+
run: |
|
|
257
|
+
git fetch origin main
|
|
258
|
+
git diff origin/main...HEAD | coderev review --ci
|
|
259
|
+
```
|
|
260
|
+
|
|
261
|
+
#### --incremental 增量审查详解
|
|
262
|
+
|
|
263
|
+
**作用**:默认情况下,coderev 会审查整个 diff 的上下文。增量模式下,**只关注新增和修改的行**,忽略被删除的旧代码。适用于:
|
|
130
264
|
|
|
131
|
-
|
|
265
|
+
- 大型代码库重构,不想看大段删除
|
|
266
|
+
- 只想关注"引入的新代码"是否有问题
|
|
267
|
+
- PR 审查时快速聚焦变更内容
|
|
268
|
+
|
|
269
|
+
```bash
|
|
270
|
+
coderev review --incremental
|
|
271
|
+
```
|
|
272
|
+
|
|
273
|
+
#### HTML 报告
|
|
274
|
+
|
|
275
|
+
**作用**:生成可视化的 HTML 审查报告,支持深色/浅色模式自动适配,方便分享或归档。
|
|
132
276
|
|
|
133
277
|
```bash
|
|
134
278
|
coderev review --output html > report.html
|
|
135
|
-
# 支持深色/浅色模式自动适配
|
|
136
279
|
```
|
|
137
280
|
|
|
138
|
-
|
|
281
|
+
---
|
|
282
|
+
|
|
283
|
+
### coderev fix(自动修复)
|
|
139
284
|
|
|
140
|
-
|
|
285
|
+
**作用**:根据审查结果生成补丁文件,或直接应用到代码中。
|
|
141
286
|
|
|
142
287
|
```bash
|
|
143
|
-
coderev
|
|
288
|
+
coderev fix --file <diff文件>
|
|
144
289
|
```
|
|
145
290
|
|
|
146
|
-
|
|
291
|
+
| 参数 | 说明 | 示例 |
|
|
292
|
+
|------|------|------|
|
|
293
|
+
| `--file <path>` | **必填**,指定包含 diff 的文件路径 | `coderev fix --file changes.diff` |
|
|
294
|
+
| `--apply` | 生成补丁后**直接应用到文件** | `coderev fix --file changes.diff --apply` |
|
|
295
|
+
|
|
296
|
+
**使用示例**:
|
|
147
297
|
|
|
148
298
|
```bash
|
|
149
|
-
|
|
150
|
-
|
|
299
|
+
# 先生成 diff
|
|
300
|
+
git diff > changes.diff
|
|
301
|
+
|
|
302
|
+
# 审查并生成修复建议(不自动应用)
|
|
303
|
+
coderev fix --file changes.diff
|
|
304
|
+
|
|
305
|
+
# 审查并直接应用补丁
|
|
306
|
+
coderev fix --file changes.diff --apply
|
|
151
307
|
```
|
|
152
308
|
|
|
153
|
-
|
|
309
|
+
---
|
|
310
|
+
|
|
311
|
+
### coderev hook(Git Hooks)
|
|
312
|
+
|
|
313
|
+
**作用**:安装 Git hooks,让你在 git 操作时自动触发代码审查。支持 pre-commit(提交前)和 pre-push(推送前)。
|
|
154
314
|
|
|
155
315
|
```bash
|
|
156
|
-
coderev
|
|
157
|
-
coderev review --pr 42 # 自动检测当前仓库
|
|
158
|
-
coderev review --pr owner/repo#42 --post # 审查 + 贴评论
|
|
159
|
-
coderev review --pr owner/repo#42 --inline # 行内评论
|
|
160
|
-
coderev review --pr owner/repo#42 --format json
|
|
316
|
+
coderev hook install [hook类型] [选项]
|
|
161
317
|
```
|
|
162
318
|
|
|
163
|
-
|
|
319
|
+
| 参数 | 说明 | 示例 |
|
|
320
|
+
|------|------|------|
|
|
321
|
+
| `install` | 安装 hook | `coderev hook install` |
|
|
322
|
+
| `install pre-commit` | 安装 pre-commit hook(提交前审查) | `coderev hook install pre-commit` |
|
|
323
|
+
| `install pre-push` | 安装 pre-push hook(推送前审查) | `coderev hook install pre-push` |
|
|
324
|
+
| `--min-score <number>` | 设置最低置信度阈值 | `coderev hook install pre-commit --min-score 70` |
|
|
325
|
+
| `remove` | 移除已安装的 hook | `coderev hook remove` |
|
|
326
|
+
|
|
327
|
+
**使用示例**:
|
|
164
328
|
|
|
165
329
|
```bash
|
|
166
|
-
|
|
330
|
+
# 安装默认 hook(pre-commit)
|
|
331
|
+
coderev hook install
|
|
332
|
+
|
|
333
|
+
# 安装 pre-commit,设置置信度 70
|
|
167
334
|
coderev hook install pre-commit --min-score 70
|
|
335
|
+
|
|
336
|
+
# 安装 pre-push
|
|
168
337
|
coderev hook install pre-push
|
|
338
|
+
|
|
339
|
+
# 移除所有 hook
|
|
340
|
+
coderev hook remove
|
|
169
341
|
```
|
|
170
342
|
|
|
171
|
-
|
|
343
|
+
**安装后效果**:
|
|
344
|
+
- `git commit` 时 → 自动审查暂存区代码,发现问题会阻止提交
|
|
345
|
+
- `git push` 时 → 自动审查将要推送的变更
|
|
346
|
+
|
|
347
|
+
---
|
|
348
|
+
|
|
349
|
+
### coderev stats(统计看板)
|
|
350
|
+
|
|
351
|
+
**作用**:查看代码审查的历史统计,包括审查次数、发现的 issue 数量、类型分布等。
|
|
172
352
|
|
|
173
353
|
```bash
|
|
174
|
-
coderev stats
|
|
175
|
-
coderev stats week # 本周统计
|
|
176
|
-
coderev cache status # 缓存状态
|
|
177
|
-
coderev cache clear # 清空缓存
|
|
178
|
-
coderev config show # 查看配置
|
|
354
|
+
coderev stats [周期]
|
|
179
355
|
```
|
|
180
356
|
|
|
181
|
-
|
|
357
|
+
| 参数 | 说明 | 示例 |
|
|
358
|
+
|------|------|------|
|
|
359
|
+
| (无参数) | 查看总体统计数据 | `coderev stats` |
|
|
360
|
+
| `week` | 本周统计 | `coderev stats week` |
|
|
361
|
+
| `month` | 本月统计 | `coderev stats month` |
|
|
182
362
|
|
|
183
|
-
|
|
363
|
+
**输出示例**(实际内容取决于缓存数据):
|
|
184
364
|
|
|
185
|
-
|
|
365
|
+
```
|
|
366
|
+
📊 coderev 统计
|
|
367
|
+
═══════════════════
|
|
368
|
+
总审查次数: 47
|
|
369
|
+
总发现 issue: 156
|
|
370
|
+
安全: 23 (14.7%)
|
|
371
|
+
缺陷: 67 (42.9%)
|
|
372
|
+
质量: 66 (42.3%)
|
|
373
|
+
═══════════════════
|
|
374
|
+
```
|
|
375
|
+
|
|
376
|
+
---
|
|
186
377
|
|
|
187
|
-
###
|
|
378
|
+
### coderev cache(缓存管理)
|
|
188
379
|
|
|
189
|
-
|
|
380
|
+
**作用**:管理审查结果缓存,避免重复审查相同的代码。
|
|
190
381
|
|
|
191
382
|
```bash
|
|
192
|
-
|
|
193
|
-
coderev init
|
|
383
|
+
coderev cache <子命令>
|
|
194
384
|
```
|
|
195
385
|
|
|
196
|
-
|
|
386
|
+
| 子命令 | 说明 | 示例 |
|
|
387
|
+
|--------|------|------|
|
|
388
|
+
| `status` | 查看缓存状态(缓存条目数、过期时间) | `coderev cache status` |
|
|
389
|
+
| `clear` | 清空所有缓存 | `coderev cache clear` |
|
|
197
390
|
|
|
198
|
-
|
|
199
|
-
|
|
200
|
-
|
|
201
|
-
|
|
202
|
-
export OPENAI_API_KEY="sk-xxx"
|
|
391
|
+
**缓存机制**:
|
|
392
|
+
- 基于代码 diff 的 SHA256 哈希值
|
|
393
|
+
- 缓存有效期 24 小时
|
|
394
|
+
- 同段代码反复审查时直接返回缓存结果,节省 API 调用
|
|
203
395
|
|
|
204
|
-
|
|
205
|
-
|
|
396
|
+
---
|
|
397
|
+
|
|
398
|
+
### coderev config(配置管理)
|
|
399
|
+
|
|
400
|
+
**作用**:查看或管理当前配置。
|
|
401
|
+
|
|
402
|
+
```bash
|
|
403
|
+
coderev config <子命令>
|
|
206
404
|
```
|
|
207
405
|
|
|
208
|
-
|
|
209
|
-
|
|
210
|
-
|
|
211
|
-
|
|
212
|
-
|
|
213
|
-
|
|
214
|
-
|
|
406
|
+
| 子命令 | 说明 | 示例 |
|
|
407
|
+
|--------|------|------|
|
|
408
|
+
| `show` | 显示当前生效的完整配置 | `coderev config show` |
|
|
409
|
+
|
|
410
|
+
---
|
|
411
|
+
|
|
412
|
+
### coderev init(初始化)
|
|
413
|
+
|
|
414
|
+
**作用**:在当前项目目录生成 `.coderevrc.json` 配置文件。
|
|
415
|
+
|
|
416
|
+
```bash
|
|
417
|
+
coderev init
|
|
215
418
|
```
|
|
216
419
|
|
|
217
|
-
|
|
420
|
+
生成的文件内容:
|
|
218
421
|
|
|
219
422
|
```json
|
|
220
423
|
{
|
|
221
424
|
"ai": {
|
|
222
|
-
"
|
|
425
|
+
"provider": "deepseek",
|
|
426
|
+
"temperature": 0.3,
|
|
427
|
+
"maxTokens": 4096
|
|
428
|
+
},
|
|
429
|
+
"rules": {
|
|
430
|
+
"maxLineLength": 100,
|
|
431
|
+
"predefined": ["security", "performance", "style"]
|
|
223
432
|
}
|
|
224
433
|
}
|
|
225
434
|
```
|
|
226
|
-
|
|
435
|
+
|
|
436
|
+
如果项目已有配置文件,执行 `coderev init` 会提示是否覆盖。
|
|
227
437
|
|
|
228
438
|
---
|
|
229
439
|
|
|
230
|
-
|
|
440
|
+
## 配置详解
|
|
441
|
+
|
|
442
|
+
### 配置加载顺序
|
|
443
|
+
|
|
444
|
+
coderev 按以下优先级加载配置(高的优先):
|
|
445
|
+
|
|
446
|
+
1. **CLI 参数**(命令行传入)
|
|
447
|
+
2. **配置文件**(`.coderevrc.json` / `.coderevrc` / `coderev.config.json`)
|
|
448
|
+
3. **环境变量**(环境变量中设置的 API Key)
|
|
449
|
+
4. **默认值**
|
|
450
|
+
|
|
451
|
+
配置文件会自动从**当前目录向父目录逐级查找**,找到第一个便停止。
|
|
452
|
+
|
|
453
|
+
### 完整配置项参考
|
|
231
454
|
|
|
232
455
|
```json
|
|
233
456
|
{
|
|
@@ -244,14 +467,7 @@ $env:DEEPSEEK_API_KEY="sk-xxx"
|
|
|
244
467
|
"maxLineLength": 100,
|
|
245
468
|
"predefined": ["security", "performance", "style"],
|
|
246
469
|
"autoLanguage": true,
|
|
247
|
-
"custom": [
|
|
248
|
-
{
|
|
249
|
-
"name": "no-console-log",
|
|
250
|
-
"severity": "warning",
|
|
251
|
-
"message": "避免在生产代码中使用 console.log",
|
|
252
|
-
"filePattern": "src/**/*.js"
|
|
253
|
-
}
|
|
254
|
-
]
|
|
470
|
+
"custom": []
|
|
255
471
|
},
|
|
256
472
|
"output": {
|
|
257
473
|
"format": "terminal",
|
|
@@ -260,53 +476,90 @@ $env:DEEPSEEK_API_KEY="sk-xxx"
|
|
|
260
476
|
}
|
|
261
477
|
```
|
|
262
478
|
|
|
479
|
+
#### ai(AI 配置)
|
|
480
|
+
|
|
263
481
|
| 字段 | 类型 | 默认值 | 说明 |
|
|
264
482
|
|------|------|--------|------|
|
|
265
|
-
| `
|
|
266
|
-
| `
|
|
267
|
-
| `
|
|
268
|
-
| `
|
|
269
|
-
| `
|
|
270
|
-
| `
|
|
271
|
-
| `
|
|
272
|
-
|
|
273
|
-
|
|
274
|
-
| `rules.autoLanguage` | boolean | `true` | 是否自动检测 diff 语言并追加专项规则 |
|
|
275
|
-
| `rules.custom` | object[] | `[]` | 自定义规则数组 |
|
|
276
|
-
| `output.format` | string | `"terminal"` | 输出格式:`"terminal"` / `"markdown"` / `"json"` |
|
|
277
|
-
| `output.includeScore` | boolean | `true` | 是否显示评分 |
|
|
278
|
-
|
|
279
|
-
### 支持的 Provider
|
|
483
|
+
| `provider` | string | `"openai"` | AI 提供商,支持 `"openai"` / `"deepseek"` |
|
|
484
|
+
| `model` | string | 取决于 provider | 模型名称 |
|
|
485
|
+
| `temperature` | number | `0.3` | 生成温度(0-1),越低越确定越保守 |
|
|
486
|
+
| `maxTokens` | number | `4096` | 每次请求最大输出 token 数 |
|
|
487
|
+
| `apiKey` | string | `""` | 直接在配置文件中写入 API Key |
|
|
488
|
+
| `apiKeyEnv` | string | `"OPENAI_API_KEY"` | 读取环境变量中的 API Key |
|
|
489
|
+
| `baseURL` | string | `""` | 自定义 API 地址,兼容 OpenAI 协议的任何服务 |
|
|
490
|
+
|
|
491
|
+
**支持的 Provider 默认值**:
|
|
280
492
|
|
|
281
493
|
| provider | 默认模型 | 默认 API 地址 |
|
|
282
494
|
|----------|---------|--------------|
|
|
283
495
|
| `openai` | `gpt-4o` | `https://api.openai.com` |
|
|
284
496
|
| `deepseek` | `deepseek-chat` | `https://api.deepseek.com` |
|
|
285
497
|
|
|
286
|
-
|
|
498
|
+
**对接任意兼容 OpenAI API 的服务**(如 Azure OpenAI、本地 LLM):
|
|
287
499
|
|
|
288
|
-
|
|
500
|
+
```json
|
|
501
|
+
{
|
|
502
|
+
"ai": {
|
|
503
|
+
"provider": "openai",
|
|
504
|
+
"baseURL": "https://your-custom-endpoint.com/v1",
|
|
505
|
+
"apiKey": "sk-your-key"
|
|
506
|
+
}
|
|
507
|
+
}
|
|
508
|
+
```
|
|
289
509
|
|
|
290
|
-
|
|
510
|
+
#### rules(规则引擎配置)
|
|
291
511
|
|
|
292
|
-
|
|
512
|
+
| 字段 | 类型 | 默认值 | 说明 |
|
|
513
|
+
|------|------|--------|------|
|
|
514
|
+
| `maxLineLength` | number | `100` | 最大行长度检查,超过会警告 |
|
|
515
|
+
| `predefined` | string[] | `["security","performance","style"]` | 启用的预定义规则集 |
|
|
516
|
+
| `autoLanguage` | boolean | `true` | 是否自动检测 diff 语言并追加专项规则 |
|
|
517
|
+
| `custom` | object[] | `[]` | 自定义规则数组 |
|
|
293
518
|
|
|
294
|
-
|
|
295
|
-
|------|------|
|
|
296
|
-
| `security` | 安全检查:注入、XSS、认证缺陷、密钥泄露 |
|
|
297
|
-
| `performance` | 性能检查:不必要的循环、内存泄漏、N+1 查询 |
|
|
298
|
-
| `style` | 代码风格:空格、import、未使用变量 |
|
|
299
|
-
| `typescript` | TypeScript 最佳实践(strict 模式、泛型、类型断言) |
|
|
300
|
-
| `react` | React 最佳实践(hooks 规则、key props、组件命名) |
|
|
301
|
-
| `node` | Node.js 最佳实践(错误处理、async 模式、文件安全) |
|
|
302
|
-
| `naming` | 命名规范(camelCase、PascalCase、常量大写) |
|
|
303
|
-
| `testing` | 测试质量(断言覆盖、边界情况、测试隔离) |
|
|
519
|
+
**预定义规则集一览**:
|
|
304
520
|
|
|
305
|
-
|
|
521
|
+
通过配置 `rules.predefined` 数组,可以自由组合启用以下规则集:
|
|
306
522
|
|
|
307
|
-
|
|
523
|
+
| 名称 | 检查重点 |
|
|
524
|
+
|------|---------|
|
|
525
|
+
| `security` | SQL/NoSQL 注入、XSS、SSRF、CSRF、硬编码密钥、认证缺陷、授权缺失 |
|
|
526
|
+
| `performance` | 不必要的循环、大对象未释放、N+1 查询、内存泄漏、冗余计算 |
|
|
527
|
+
| `style` | 空格/缩进不统一、未使用的 import/变量、分号规范、命名约定 |
|
|
528
|
+
| `typescript` | 非严格模式、滥用 any、泛型使用不当、类型断言滥用、枚举误用 |
|
|
529
|
+
| `react` | hooks 规则违反、缺少 key props、函数组件命名、副作用清理 |
|
|
530
|
+
| `node` | 未捕获异常、异步回调链、文件 I/O 未关闭、路径遍历 |
|
|
531
|
+
| `naming` | 驼峰 vs 帕斯卡命名规范、常量大写、函数命名动词化 |
|
|
532
|
+
| `testing` | 断言覆盖不足、边界条件缺失、测试间耦合、输出不明确 |
|
|
533
|
+
|
|
534
|
+
**启用示例**:
|
|
535
|
+
|
|
536
|
+
```json
|
|
537
|
+
{
|
|
538
|
+
"rules": {
|
|
539
|
+
"predefined": ["security", "typescript", "react", "naming", "testing"]
|
|
540
|
+
}
|
|
541
|
+
}
|
|
542
|
+
```
|
|
543
|
+
|
|
544
|
+
#### rules.autoLanguage 自动语言检测
|
|
545
|
+
|
|
546
|
+
coderev 会自动检查 diff 中文件的扩展名,追加对应的语言专项规则:
|
|
547
|
+
|
|
548
|
+
| 语言 | 扩展名 | 检查重点 |
|
|
549
|
+
|------|--------|---------|
|
|
550
|
+
| JavaScript | `.js`, `.jsx`, `.mjs` | async/await 链、== vs ===、内存泄漏、循环依赖 |
|
|
551
|
+
| TypeScript | `.ts`, `.tsx` | strict 模式、禁止 any、泛型约束、类型断言 |
|
|
552
|
+
| Python | `.py` | PEP 8 规范、异常类型指定、mutable 默认参数、async 用法 |
|
|
553
|
+
| Rust | `.rs` | unsafe 块审计、unwrap/expect 滥用、ownership 问题 |
|
|
554
|
+
| Go | `.go` | error 忽略、goroutine 泄漏、context 传播、data race |
|
|
555
|
+
| Java | `.java` | null 处理、checked exception、== vs .equals()、线程安全 |
|
|
556
|
+
| SQL | `.sql` | 注入防护、N+1 查询、索引缺失、大 IN-clause |
|
|
308
557
|
|
|
309
|
-
|
|
558
|
+
可通过 `rules.autoLanguage: false` 关闭此功能。
|
|
559
|
+
|
|
560
|
+
#### rules.custom 自定义规则
|
|
561
|
+
|
|
562
|
+
**作用**:针对团队或项目的特定规范,编写专属审查规则。
|
|
310
563
|
|
|
311
564
|
```json
|
|
312
565
|
{
|
|
@@ -322,41 +575,38 @@ $env:DEEPSEEK_API_KEY="sk-xxx"
|
|
|
322
575
|
"severity": "error",
|
|
323
576
|
"message": "React 组件必须包裹 ErrorBoundary",
|
|
324
577
|
"filePattern": "src/components/**/*.jsx"
|
|
578
|
+
},
|
|
579
|
+
{
|
|
580
|
+
"name": "single-quote-string",
|
|
581
|
+
"severity": "warning",
|
|
582
|
+
"message": "请使用单引号",
|
|
583
|
+
"filePattern": "src/**/*.ts"
|
|
325
584
|
}
|
|
326
585
|
]
|
|
327
586
|
}
|
|
328
587
|
}
|
|
329
588
|
```
|
|
330
589
|
|
|
331
|
-
| 字段 | 说明 |
|
|
332
|
-
|
|
333
|
-
| `name` | 规则名称 |
|
|
334
|
-
| `severity` |
|
|
335
|
-
| `message` |
|
|
336
|
-
| `filePattern` | 可选,限定生效的文件 glob
|
|
337
|
-
| `enabled` | 可选,设为 `false`
|
|
338
|
-
|
|
339
|
-
---
|
|
340
|
-
|
|
341
|
-
### 语言专项规则
|
|
590
|
+
| 字段 | 必填 | 类型 | 说明 |
|
|
591
|
+
|------|------|------|------|
|
|
592
|
+
| `name` | ✅ | string | 规则名称 |
|
|
593
|
+
| `severity` | ✅ | string | `"error"` / `"warning"` / `"info"` |
|
|
594
|
+
| `message` | ✅ | string | 审查时显示的提示文字 |
|
|
595
|
+
| `filePattern` | ❌ | string | 可选,限定生效的文件 glob 模式,如 `src/**/*.ts` |
|
|
596
|
+
| `enabled` | ❌ | boolean | 可选,设为 `false` 可临时禁用此规则 |
|
|
342
597
|
|
|
343
|
-
|
|
598
|
+
#### output(输出配置)
|
|
344
599
|
|
|
345
|
-
|
|
|
346
|
-
|
|
347
|
-
|
|
|
348
|
-
|
|
|
349
|
-
| Python | PEP 8、except 类型、mutable 默认参数、async 用法 |
|
|
350
|
-
| Rust | unsafe 审计、unwrap/expect、生命周期、ownership |
|
|
351
|
-
| Go | error handling、goroutine 安全、context 传播、data race |
|
|
352
|
-
| Java | null 处理、checked exception、== vs .equals()、线程安全 |
|
|
353
|
-
| SQL | 注入防护、N+1 查询、索引缺失、大 IN-clause |
|
|
600
|
+
| 字段 | 类型 | 默认值 | 说明 |
|
|
601
|
+
|------|------|--------|------|
|
|
602
|
+
| `format` | string | `"terminal"` | 输出格式:`"terminal"` / `"json"` / `"html"` / `"markdown"` |
|
|
603
|
+
| `includeScore` | boolean | `true` | 是否显示置信度评分 |
|
|
354
604
|
|
|
355
|
-
|
|
605
|
+
### .coderevignore 忽略文件
|
|
356
606
|
|
|
357
|
-
|
|
607
|
+
**作用**:指定 coderev 审查时跳过哪些文件或目录。
|
|
358
608
|
|
|
359
|
-
|
|
609
|
+
在项目根目录创建 `.coderevignore` 文件,语法同 `.gitignore`(glob 模式):
|
|
360
610
|
|
|
361
611
|
```
|
|
362
612
|
# coderev ignore list
|
|
@@ -369,11 +619,11 @@ dist/
|
|
|
369
619
|
build/
|
|
370
620
|
```
|
|
371
621
|
|
|
372
|
-
|
|
622
|
+
### .coderevhint 项目上下文
|
|
373
623
|
|
|
374
|
-
|
|
624
|
+
**作用**:给 AI 审查引擎提供项目背景,让它更准确理解你的代码。
|
|
375
625
|
|
|
376
|
-
|
|
626
|
+
在项目根目录创建 `.coderevhint` 文件:
|
|
377
627
|
|
|
378
628
|
```
|
|
379
629
|
# 项目概况
|
|
@@ -386,56 +636,129 @@ build/
|
|
|
386
636
|
- Avoid: any 类型、使用 any 断言
|
|
387
637
|
```
|
|
388
638
|
|
|
389
|
-
|
|
639
|
+
也兼容 `CLAUDE.md` 格式,两者可共存。
|
|
390
640
|
|
|
391
|
-
|
|
641
|
+
### API Key 配置方式对比
|
|
392
642
|
|
|
393
|
-
|
|
643
|
+
| 方式 | 安全性 | 适用场景 | 配置方法 |
|
|
644
|
+
|------|--------|---------|---------|
|
|
645
|
+
| 环境变量 | ✅ 最安全(不落盘) | 本地开发、CI 环境 | `$env:OPENAI_API_KEY="..."` |
|
|
646
|
+
| 配置文件直接写 | ⚠️ 注意.gitignore | 本地个人使用 | `"apiKey": "..."` |
|
|
647
|
+
| 配置文件引用 env | ✅ 安全 + 方便 | 推荐方式 | `"apiKeyEnv": "DEEPSEEK_API_KEY"` |
|
|
394
648
|
|
|
395
|
-
|
|
396
|
-
|------|---------|---------|
|
|
397
|
-
| GitHub | ✅ | ✅ 行内 / 摘要 |
|
|
398
|
-
| GitLab | ✅ | ✅ |
|
|
399
|
-
| Gitee | ✅ | ✅ |
|
|
400
|
-
| Bitbucket | ✅ | ✅ |
|
|
649
|
+
> **推荐做法**:环境变量 + `apiKeyEnv`。既不在代码中暴露 key,又无需每次都手动设置。
|
|
401
650
|
|
|
402
651
|
---
|
|
403
652
|
|
|
404
|
-
##
|
|
653
|
+
## 平台集成
|
|
654
|
+
|
|
655
|
+
### 支持的 Git 平台
|
|
656
|
+
|
|
657
|
+
coderev 支持四大平台,均支持 PR 审查和评论回贴:
|
|
658
|
+
|
|
659
|
+
| 平台 | PR 审查 | 摘要评论 | 行内评论 | 自动检测 |
|
|
660
|
+
|------|:-------:|:--------:|:--------:|:--------:|
|
|
661
|
+
| GitHub | ✅ | ✅ | ✅ | ✅ |
|
|
662
|
+
| GitLab | ✅ | ✅ | ✅ | ✅ |
|
|
663
|
+
| Gitee | ✅ | ✅ | ❌ | ❌ 需完整格式 |
|
|
664
|
+
| Bitbucket | ✅ | ✅ | ❌ | ❌ 需完整格式 |
|
|
665
|
+
|
|
666
|
+
**使用方式**:
|
|
667
|
+
|
|
668
|
+
```bash
|
|
669
|
+
# GitHub — 自动检测当前仓库
|
|
670
|
+
coderev review --pr 42
|
|
671
|
+
|
|
672
|
+
# 指定仓库(其他平台或跨平台)
|
|
673
|
+
coderev review --pr owner/repo#42
|
|
405
674
|
|
|
406
|
-
|
|
407
|
-
|
|
408
|
-
|
|
675
|
+
# 审查 + 回贴评论
|
|
676
|
+
coderev review --pr 42 --post
|
|
677
|
+
|
|
678
|
+
# 审查 + 行内评论(仅 GitHub/GitLab)
|
|
679
|
+
coderev review --pr 42 --inline
|
|
680
|
+
```
|
|
409
681
|
|
|
410
682
|
---
|
|
411
683
|
|
|
412
|
-
## CI
|
|
684
|
+
## CI/CD 集成
|
|
685
|
+
|
|
686
|
+
### GitHub Actions
|
|
413
687
|
|
|
414
|
-
|
|
688
|
+
项目初始化时自动生成 `.github/workflows/coderev-review.yml`,在 PR 创建或更新时自动触发代码审查。
|
|
689
|
+
|
|
690
|
+
**工作流说明**:
|
|
691
|
+
- 触发条件:PR 打开、同步、重新打开
|
|
692
|
+
- 执行内容:对比 PR 的 diff → coderev 审查 → 结果回贴到 PR 评论
|
|
693
|
+
- 效果:每个 PR 自动获得一份 AI 审查报告
|
|
694
|
+
|
|
695
|
+
### 自定义 CI 集成
|
|
696
|
+
|
|
697
|
+
在任意 CI 管道中:
|
|
698
|
+
|
|
699
|
+
```bash
|
|
700
|
+
# 对比当前分支与 main
|
|
701
|
+
git fetch origin main
|
|
702
|
+
git diff origin/main...HEAD | coderev review --ci --min-confidence 70
|
|
703
|
+
```
|
|
704
|
+
|
|
705
|
+
如果代码存在高置信度问题,管道会以非零退出码中断,阻止合并。
|
|
415
706
|
|
|
416
707
|
---
|
|
417
708
|
|
|
418
|
-
##
|
|
419
|
-
|
|
420
|
-
```
|
|
421
|
-
coderev/
|
|
422
|
-
├── src/
|
|
423
|
-
│ ├── cli.js # CLI 入口
|
|
424
|
-
│ ├── reviewer.js # 多 Agent 审查核心
|
|
425
|
-
│ ├── config.js # 配置加载
|
|
426
|
-
│ ├── github.js # GitHub API
|
|
427
|
-
│ ├── gitlab.js # GitLab API
|
|
428
|
-
│ ├── gitee.js # Gitee API
|
|
429
|
-
│ ├── bitbucket.js # Bitbucket API
|
|
430
|
-
│ ├── cache.js # 缓存系统
|
|
431
|
-
│ ├── rules.js # 规则引擎
|
|
432
|
-
│ ├── stats.js # 统计看板
|
|
433
|
-
│ └── coderev.test.js # 20 个单元测试
|
|
434
|
-
├── .github/workflows/
|
|
435
|
-
├── .coderevrc.json
|
|
436
|
-
├── .coderevignore
|
|
437
|
-
└── .coderevhint
|
|
709
|
+
## 架构
|
|
710
|
+
|
|
438
711
|
```
|
|
712
|
+
你的代码 (git diff / PR)
|
|
713
|
+
│
|
|
714
|
+
┌──────┼──────┐
|
|
715
|
+
▼ ▼ ▼
|
|
716
|
+
┌──────┐┌──────┐┌──────┐
|
|
717
|
+
│ 🔒 ││ 🐛 ││ 📐 │
|
|
718
|
+
│ 安全 ││ 缺陷 ││ 质量 │
|
|
719
|
+
│ 审计 ││ 检测 ││ 检查 │
|
|
720
|
+
└──┬───┘└──┬───┘└──┬───┘
|
|
721
|
+
│ │ │
|
|
722
|
+
└───────┼───────┘
|
|
723
|
+
▼
|
|
724
|
+
┌──────────┐
|
|
725
|
+
│ 合并 & │
|
|
726
|
+
│ 置信度评分 │
|
|
727
|
+
│ (0-100) │
|
|
728
|
+
└────┬─────┘
|
|
729
|
+
▼
|
|
730
|
+
结构化审查报告
|
|
731
|
+
```
|
|
732
|
+
|
|
733
|
+
| Agent | 专注领域 |
|
|
734
|
+
|-------|---------|
|
|
735
|
+
| 🔒 安全审计 | SQL注入、XSS、SSRF、硬编码密钥、认证缺陷 |
|
|
736
|
+
| 🐛 缺陷检测 | 空指针、竞态条件、异步问题、逻辑错误 |
|
|
737
|
+
| 📐 质量检查 | 代码复杂度、DRY、命名规范、异常处理 |
|
|
738
|
+
|
|
739
|
+
每个 issue 附带**置信度评分 (0-100)**,低于阈值(默认 60)自动过滤。多 Agent 发现的重复问题自动合并去重。
|
|
740
|
+
|
|
741
|
+
---
|
|
742
|
+
|
|
743
|
+
## FAQ / 常见问题
|
|
744
|
+
|
|
745
|
+
### Q:为什么审查结果为空?
|
|
746
|
+
A:可能是代码本身没有问题,也可能是置信度低于阈值。可以尝试 `coderev review --min-confidence 0` 查看所有结果。
|
|
747
|
+
|
|
748
|
+
### Q:怎么换 API Key?
|
|
749
|
+
A:重新设置环境变量即可,或在 `.coderevrc.json` 中修改 `ai.apiKey` / `ai.apiKeyEnv`。
|
|
750
|
+
|
|
751
|
+
### Q:不想用 DeepSeek,想用其他 AI?
|
|
752
|
+
A:改成 `provider: "openai"`,再设置 `apiKeyEnv: "OPENAI_API_KEY"`。如果用的是兼容 OpenAI 协议的自定义 API,设置 `baseURL` 即可。
|
|
753
|
+
|
|
754
|
+
### Q:coderev 会泄漏我的代码吗?
|
|
755
|
+
A:代码通过你的 API Key 发送到 AI 服务商。coderev 本身不会存储或转发你的代码。本地缓存仅存储在你自己机器上。
|
|
756
|
+
|
|
757
|
+
### Q:缓存能关掉吗?
|
|
758
|
+
A:可以,审查时加 `--no-cache` 参数即可跳过缓存。
|
|
759
|
+
|
|
760
|
+
### Q:怎么给 coderev 加自己的规则?
|
|
761
|
+
A:在 `.coderevrc.json` 的 `rules.custom` 数组中添加。详见上方「自定义规则」章节。
|
|
439
762
|
|
|
440
763
|
---
|
|
441
764
|
|