gitlab-ai-review 2.3.0 → 2.4.0
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/cli.js +66 -0
- package/package.json +6 -2
package/cli.js
ADDED
|
@@ -0,0 +1,66 @@
|
|
|
1
|
+
#!/usr/bin/env node
|
|
2
|
+
|
|
3
|
+
/**
|
|
4
|
+
* GitLab AI Review CLI
|
|
5
|
+
* 支持通过 npx 直接执行代码审查
|
|
6
|
+
*/
|
|
7
|
+
|
|
8
|
+
import { GitLabAIReview } from './index.js';
|
|
9
|
+
|
|
10
|
+
async function main() {
|
|
11
|
+
console.log('🚀 GitLab AI Review CLI 启动...\n');
|
|
12
|
+
|
|
13
|
+
try {
|
|
14
|
+
// 1. 创建 SDK 实例(自动从环境变量读取配置)
|
|
15
|
+
const sdk = new GitLabAIReview();
|
|
16
|
+
|
|
17
|
+
// 2. 验证配置
|
|
18
|
+
console.log('📋 配置信息:');
|
|
19
|
+
console.log(` - GitLab Host: ${sdk.config.gitlab.host}`);
|
|
20
|
+
console.log(` - Project ID: ${sdk.config.project.projectId}`);
|
|
21
|
+
console.log(` - MR IID: ${sdk.config.project.mergeRequestIid}`);
|
|
22
|
+
console.log(` - AI API Key: ${sdk.config.ai?.arkApiKey ? '✅ 已配置' : '❌ 未配置'}`);
|
|
23
|
+
console.log(` - Review Guard: ${sdk.config.ai?.guardConfig?.content ? '✅ 已加载' : '⚠️ 未找到'}`);
|
|
24
|
+
console.log();
|
|
25
|
+
|
|
26
|
+
// 3. 获取 MR 变更信息
|
|
27
|
+
console.log('📥 获取 MR 变更信息...');
|
|
28
|
+
const changes = await sdk.getMergeRequestChanges();
|
|
29
|
+
console.log(`✅ 共发现 ${changes.length} 个文件变更\n`);
|
|
30
|
+
|
|
31
|
+
// 4. 执行 AI 代码审查
|
|
32
|
+
if (sdk.config.ai?.arkApiKey && changes.length > 0) {
|
|
33
|
+
console.log('🤖 开始 AI 代码审查...\n');
|
|
34
|
+
|
|
35
|
+
const results = await sdk.reviewAndCommentOnLines();
|
|
36
|
+
|
|
37
|
+
console.log('\n📊 审查结果汇总:');
|
|
38
|
+
console.log(` - 审查文件数: ${results.length}`);
|
|
39
|
+
const successCount = results.filter(r => r.success).length;
|
|
40
|
+
const commentCount = results.reduce((sum, r) => sum + (r.commentCount || 0), 0);
|
|
41
|
+
console.log(` - 成功: ${successCount}`);
|
|
42
|
+
console.log(` - 添加评论数: ${commentCount}`);
|
|
43
|
+
|
|
44
|
+
if (results.some(r => !r.success)) {
|
|
45
|
+
console.log('\n⚠️ 部分文件审查失败,请检查上方日志');
|
|
46
|
+
process.exit(1);
|
|
47
|
+
} else {
|
|
48
|
+
console.log('\n✅ 代码审查完成!');
|
|
49
|
+
}
|
|
50
|
+
} else if (!sdk.config.ai?.arkApiKey) {
|
|
51
|
+
console.error('❌ 错误: 未配置 ARK_API_KEY 环境变量');
|
|
52
|
+
process.exit(1);
|
|
53
|
+
} else {
|
|
54
|
+
console.log('ℹ️ 没有文件变更,跳过审查');
|
|
55
|
+
}
|
|
56
|
+
|
|
57
|
+
} catch (error) {
|
|
58
|
+
console.error('\n❌ 执行失败:', error.message);
|
|
59
|
+
console.error(error.stack);
|
|
60
|
+
process.exit(1);
|
|
61
|
+
}
|
|
62
|
+
}
|
|
63
|
+
|
|
64
|
+
// 执行主函数
|
|
65
|
+
main();
|
|
66
|
+
|
package/package.json
CHANGED
|
@@ -1,15 +1,19 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "gitlab-ai-review",
|
|
3
|
-
"version": "2.
|
|
4
|
-
"description": "GitLab AI Review SDK -
|
|
3
|
+
"version": "2.4.0",
|
|
4
|
+
"description": "GitLab AI Review SDK - 支持 SDK 调用和 CLI 执行",
|
|
5
5
|
"main": "index.js",
|
|
6
6
|
"type": "module",
|
|
7
|
+
"bin": {
|
|
8
|
+
"gitlab-ai-review": "./cli.js"
|
|
9
|
+
},
|
|
7
10
|
"scripts": {
|
|
8
11
|
"test": "node test-info.js",
|
|
9
12
|
"test:info": "node test-info.js"
|
|
10
13
|
},
|
|
11
14
|
"files": [
|
|
12
15
|
"index.js",
|
|
16
|
+
"cli.js",
|
|
13
17
|
"lib/",
|
|
14
18
|
"test-info.js",
|
|
15
19
|
"README.md"
|