gitlab-ai-review 3.0.0 → 3.0.1
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 +158 -20
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -183,42 +183,180 @@ const results = await sdk.reviewAndCommentOnLines({
|
|
|
183
183
|
|
|
184
184
|
## 在 GitLab CI/CD 中使用
|
|
185
185
|
|
|
186
|
-
|
|
186
|
+
### 推荐配置:使用 npx 直接运行
|
|
187
|
+
|
|
188
|
+
在 GitLab 项目根目录创建 `.gitlab-ci.yml` 文件:
|
|
187
189
|
|
|
188
190
|
```yaml
|
|
191
|
+
# GitLab CI/CD 配置
|
|
192
|
+
# 使用 gitlab-ai-review CLI (npx 方式)
|
|
193
|
+
|
|
189
194
|
stages:
|
|
190
195
|
- review
|
|
191
196
|
|
|
192
|
-
ai-review
|
|
197
|
+
# gitlab-ai-review CLI 执行任务(推荐)
|
|
198
|
+
ai-code-review:
|
|
193
199
|
stage: review
|
|
194
|
-
image: node:18
|
|
200
|
+
image: node:18-alpine
|
|
201
|
+
tags:
|
|
202
|
+
- docker
|
|
203
|
+
timeout: 30m
|
|
195
204
|
only:
|
|
196
|
-
- merge_requests
|
|
205
|
+
- merge_requests # 只在 MR 时运行
|
|
206
|
+
variables:
|
|
207
|
+
# 🔑 手动传递 GitLab Token
|
|
208
|
+
# 注意:在生产环境中,应该在 GitLab CI/CD Settings > Variables 中配置
|
|
209
|
+
GITLAB_TOKEN: $GITLAB_TOKEN
|
|
210
|
+
|
|
211
|
+
# 🤖 ARK API Key(用于 AI Review)
|
|
212
|
+
ARK_API_KEY: $ARK_API_KEY
|
|
213
|
+
|
|
214
|
+
# GitLab CI 自动提供的环境变量(无需配置):
|
|
215
|
+
# - CI_JOB_TOKEN (自动生成的临时 Token)
|
|
216
|
+
# - CI_SERVER_URL (GitLab 地址)
|
|
217
|
+
# - CI_PROJECT_ID (项目 ID)
|
|
218
|
+
# - CI_MERGE_REQUEST_IID (MR 编号)
|
|
219
|
+
|
|
197
220
|
script:
|
|
198
|
-
-
|
|
199
|
-
-
|
|
221
|
+
- echo ""
|
|
222
|
+
- echo "🔑 环境变量检查..."
|
|
223
|
+
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
224
|
+
- echo "ARK_API_KEY = ${ARK_API_KEY}"
|
|
225
|
+
- echo "GITLAB_TOKEN = ${GITLAB_TOKEN:0:10}..."
|
|
226
|
+
- echo "CI_JOB_TOKEN = ${CI_JOB_TOKEN:0:10}..."
|
|
227
|
+
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
228
|
+
- echo ""
|
|
229
|
+
- echo "🚀 使用 npx 执行 gitlab-ai-review CLI..."
|
|
230
|
+
- echo "━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━"
|
|
231
|
+
- npx gitlab-ai-review
|
|
232
|
+
|
|
233
|
+
allow_failure: true # 不阻塞 MR 合并
|
|
234
|
+
timeout: 10m # 超时时间
|
|
200
235
|
```
|
|
201
236
|
|
|
202
|
-
|
|
237
|
+
### 环境变量配置
|
|
238
|
+
|
|
239
|
+
在 GitLab 项目的 **Settings > CI/CD > Variables** 中配置:
|
|
240
|
+
|
|
241
|
+
| 变量名 | 说明 | 是否必需 |
|
|
242
|
+
|-------|------|---------|
|
|
243
|
+
| `ARK_API_KEY` | 火山引擎 ARK API 密钥 | ✅ 必需 |
|
|
244
|
+
| `GITLAB_TOKEN` | GitLab 访问令牌 | ⚠️ 建议配置(可用 `CI_JOB_TOKEN` 替代) |
|
|
245
|
+
|
|
246
|
+
### AI 模型信息
|
|
247
|
+
|
|
248
|
+
本项目使用**火山引擎豆包大模型**进行代码审查:
|
|
249
|
+
|
|
250
|
+
- **模型**: `doubao-seed-1-6-251015`
|
|
251
|
+
- **申请地址**: [火山引擎 ARK 平台](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-seed-1-6)
|
|
252
|
+
|
|
253
|
+
**如何申请 ARK API Key:**
|
|
254
|
+
1. 访问 [火山引擎 ARK 控制台](https://console.volcengine.com/ark/region:ark+cn-beijing/model/detail?Id=doubao-seed-1-6)
|
|
255
|
+
2. 注册/登录账号
|
|
256
|
+
3. 创建 API Key
|
|
257
|
+
4. 将 API Key 配置到 GitLab CI/CD Variables 中
|
|
258
|
+
|
|
259
|
+
---
|
|
260
|
+
|
|
261
|
+
## 🎯 影响分析示例
|
|
262
|
+
|
|
263
|
+
### 场景 1:删除被使用的函数
|
|
203
264
|
|
|
204
265
|
```javascript
|
|
205
|
-
|
|
266
|
+
// 变更:删除了 utils/api.js 中的 fetchData
|
|
267
|
+
- export function fetchData(url) { ... }
|
|
206
268
|
|
|
207
|
-
|
|
269
|
+
// AI 审查结果:
|
|
270
|
+
🤖 AI 代码审查
|
|
208
271
|
|
|
209
|
-
|
|
210
|
-
const mr = await sdk.getMergeRequest();
|
|
211
|
-
console.log('正在审查 MR:', mr.title);
|
|
272
|
+
⚠️ 严重问题:函数 fetchData 已被删除
|
|
212
273
|
|
|
213
|
-
|
|
214
|
-
|
|
215
|
-
|
|
274
|
+
影响分析显示:
|
|
275
|
+
- components/UserList.vue (第 45 行) 在使用此函数
|
|
276
|
+
- pages/Dashboard.vue (第 78 行) 在使用此函数
|
|
277
|
+
- services/data.js (第 12 行) 在使用此函数
|
|
216
278
|
|
|
217
|
-
|
|
218
|
-
|
|
279
|
+
共 3 个文件将无法正常工作,建议:
|
|
280
|
+
1. 恢复此函数,或
|
|
281
|
+
2. 提供替代方案并更新所有调用处
|
|
282
|
+
```
|
|
283
|
+
|
|
284
|
+
### 场景 2:文件内部冲突
|
|
285
|
+
|
|
286
|
+
```javascript
|
|
287
|
+
// 变更:删除了辅助函数
|
|
288
|
+
- function calculateTotal(items) { ... }
|
|
289
|
+
|
|
290
|
+
export function checkout() {
|
|
291
|
+
const total = calculateTotal(cart.items) // 💥 这里会报错
|
|
292
|
+
// ...
|
|
293
|
+
}
|
|
294
|
+
|
|
295
|
+
// AI 审查结果:
|
|
296
|
+
🤖 AI 代码审查
|
|
297
|
+
|
|
298
|
+
🚨 严重错误:文件内部冲突
|
|
299
|
+
|
|
300
|
+
函数 calculateTotal 在第 5 行被删除,但在第 12 行仍被调用。
|
|
301
|
+
这将导致运行时错误:ReferenceError: calculateTotal is not defined
|
|
302
|
+
|
|
303
|
+
必须修复:
|
|
304
|
+
1. 恢复 calculateTotal 函数,或
|
|
305
|
+
2. 修改第 12 行的调用逻辑
|
|
306
|
+
```
|
|
307
|
+
|
|
308
|
+
### 场景 3:函数签名变更
|
|
309
|
+
|
|
310
|
+
```javascript
|
|
311
|
+
// 变更:修改了函数参数
|
|
312
|
+
- export function process(data) { ... }
|
|
313
|
+
+ export function process(data, options = {}) { ... }
|
|
314
|
+
|
|
315
|
+
// AI 审查结果:
|
|
316
|
+
🤖 AI 代码审查
|
|
317
|
+
|
|
318
|
+
⚠️ 函数签名已改变,新增了 options 参数
|
|
319
|
+
|
|
320
|
+
影响分析显示有 8 个文件在使用此函数,但都未传递新参数。
|
|
321
|
+
虽然有默认值,但建议检查是否需要在关键场景中传递 options。
|
|
322
|
+
|
|
323
|
+
受影响的文件:
|
|
324
|
+
- components/Processor.vue
|
|
325
|
+
- services/processor.js
|
|
326
|
+
...
|
|
219
327
|
```
|
|
220
328
|
|
|
221
|
-
##
|
|
329
|
+
## 版本历史
|
|
330
|
+
|
|
331
|
+
### 3.0.0 - 全面影响分析 🆕
|
|
332
|
+
|
|
333
|
+
**重大更新**:从简单的 diff 审查升级为全面的影响分析系统
|
|
334
|
+
|
|
335
|
+
- ✨ 删除符号检测:自动检测被删除的函数/类/组件,并分析影响范围
|
|
336
|
+
- ✨ 文件内部冲突检查:检测文件内部是否使用了被删除的符号
|
|
337
|
+
- ✨ 完整文件上下文:AI 审查时提供完整文件内容,而非仅 diff
|
|
338
|
+
- ✨ 跨文件依赖追踪:使用 GitLab Search API 搜索符号使用情况
|
|
339
|
+
- ✨ 修改符号识别:识别被修改的函数签名,检查 API 兼容性
|
|
340
|
+
- ⚡ 使用火山引擎豆包大模型 `doubao-seed-1-6-251015`
|
|
341
|
+
|
|
342
|
+
### 2.4.0
|
|
343
|
+
|
|
344
|
+
- ✅ 行级 AI 代码审查
|
|
345
|
+
- ✅ 批量审查和评论
|
|
346
|
+
- ✅ 基础影响分析
|
|
347
|
+
|
|
348
|
+
### 2.3.0
|
|
349
|
+
|
|
350
|
+
- ✅ 支持 `reviewguard.md` 配置文件
|
|
351
|
+
- ✅ 项目特定审查规则
|
|
352
|
+
|
|
353
|
+
### 2.0.0
|
|
354
|
+
|
|
355
|
+
- ✅ CI/CD 自动配置
|
|
356
|
+
- ✅ 手动配置支持
|
|
357
|
+
- ✅ GitLab API 客户端封装
|
|
358
|
+
|
|
359
|
+
### 1.0.0
|
|
222
360
|
|
|
223
|
-
-
|
|
224
|
-
-
|
|
361
|
+
- ✅ 初始版本发布
|
|
362
|
+
- ✅ 基础 GitLab 集成
|