gitlab-ai-review 3.4.0 → 3.5.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/lib/prompt-tools.js +29 -14
- package/package.json +1 -1
package/lib/prompt-tools.js
CHANGED
|
@@ -47,20 +47,26 @@ export function buildFileReviewPrompt(fileName, meaningfulChanges) {
|
|
|
47
47
|
prompt += `**类型**: ${change.type === 'addition' ? '新增' : '删除'}\n`;
|
|
48
48
|
prompt += `**内容**:\n\`\`\`\n`;
|
|
49
49
|
|
|
50
|
-
//
|
|
50
|
+
// 上下文(只显示不变的行,过滤掉 + 和 - 开头的变更行)
|
|
51
51
|
if (change.context?.before?.length > 0) {
|
|
52
52
|
change.context.before.forEach(line => {
|
|
53
|
-
|
|
53
|
+
// 跳过变更行(以 + 或 - 开头)
|
|
54
|
+
if (!line.trim().startsWith('+') && !line.trim().startsWith('-')) {
|
|
55
|
+
prompt += ` ${line}\n`;
|
|
56
|
+
}
|
|
54
57
|
});
|
|
55
58
|
}
|
|
56
59
|
|
|
57
60
|
// 变更行
|
|
58
61
|
prompt += `${change.type === 'addition' ? '+' : '-'} ${change.content}\n`;
|
|
59
62
|
|
|
60
|
-
//
|
|
63
|
+
// 下文(只显示不变的行)
|
|
61
64
|
if (change.context?.after?.length > 0) {
|
|
62
65
|
change.context.after.forEach(line => {
|
|
63
|
-
|
|
66
|
+
// 跳过变更行(以 + 或 - 开头)
|
|
67
|
+
if (!line.trim().startsWith('+') && !line.trim().startsWith('-')) {
|
|
68
|
+
prompt += ` ${line}\n`;
|
|
69
|
+
}
|
|
64
70
|
});
|
|
65
71
|
}
|
|
66
72
|
|
|
@@ -92,7 +98,7 @@ export function buildFileReviewPrompt(fileName, meaningfulChanges) {
|
|
|
92
98
|
{
|
|
93
99
|
"lineNumber": 15,
|
|
94
100
|
"hasIssue": true,
|
|
95
|
-
"comment": "
|
|
101
|
+
"comment": "必须按照上面'项目特定的审查规则'中定义的格式填写"
|
|
96
102
|
}
|
|
97
103
|
]
|
|
98
104
|
}
|
|
@@ -106,8 +112,10 @@ export function buildFileReviewPrompt(fileName, meaningfulChanges) {
|
|
|
106
112
|
- comment 必须是字符串
|
|
107
113
|
|
|
108
114
|
**comment 字段的内容:**
|
|
109
|
-
-
|
|
110
|
-
-
|
|
115
|
+
- **必须严格遵循"项目特定的审查规则"(reviewguard.md)中定义的格式**
|
|
116
|
+
- 如果规则中定义了包含 emoji、评分等格式,**必须完整使用该格式**
|
|
117
|
+
- comment 是一个字符串,可以包含换行符 \\n 来格式化内容
|
|
118
|
+
- 不要自创格式,必须参考上面"项目特定的审查规则"中的示例
|
|
111
119
|
|
|
112
120
|
6. 如果所有代码都没有问题,返回空的 reviews 数组:\`{"reviews": []}\`
|
|
113
121
|
7. 只返回 JSON,不要包含其他文字说明`;
|
|
@@ -253,20 +261,26 @@ export function buildFileReviewWithImpactPrompt(fileName, meaningfulChanges, imp
|
|
|
253
261
|
prompt += `**类型**: ${change.type === 'addition' ? '新增' : '删除'}\n`;
|
|
254
262
|
prompt += `**内容**:\n\`\`\`\n`;
|
|
255
263
|
|
|
256
|
-
//
|
|
264
|
+
// 上下文(只显示不变的行,过滤掉 + 和 - 开头的变更行)
|
|
257
265
|
if (change.context?.before?.length > 0) {
|
|
258
266
|
change.context.before.forEach(line => {
|
|
259
|
-
|
|
267
|
+
// 跳过变更行(以 + 或 - 开头)
|
|
268
|
+
if (!line.trim().startsWith('+') && !line.trim().startsWith('-')) {
|
|
269
|
+
prompt += ` ${line}\n`;
|
|
270
|
+
}
|
|
260
271
|
});
|
|
261
272
|
}
|
|
262
273
|
|
|
263
274
|
// 变更行
|
|
264
275
|
prompt += `${change.type === 'addition' ? '+' : '-'} ${change.content}\n`;
|
|
265
276
|
|
|
266
|
-
//
|
|
277
|
+
// 下文(只显示不变的行)
|
|
267
278
|
if (change.context?.after?.length > 0) {
|
|
268
279
|
change.context.after.forEach(line => {
|
|
269
|
-
|
|
280
|
+
// 跳过变更行(以 + 或 - 开头)
|
|
281
|
+
if (!line.trim().startsWith('+') && !line.trim().startsWith('-')) {
|
|
282
|
+
prompt += ` ${line}\n`;
|
|
283
|
+
}
|
|
270
284
|
});
|
|
271
285
|
}
|
|
272
286
|
|
|
@@ -303,12 +317,13 @@ export function buildFileReviewWithImpactPrompt(fileName, meaningfulChanges, imp
|
|
|
303
317
|
- 如果发现其他文件受影响,在当前变更行的 comment 字符串中说明
|
|
304
318
|
|
|
305
319
|
**comment 字段的内容:**
|
|
306
|
-
-
|
|
320
|
+
- **必须严格遵循"项目特定的审查规则"(reviewguard.md)中定义的格式**
|
|
321
|
+
- 如果规则中定义了包含【严重程度评分】、emoji、分点说明等格式,**必须完整使用该格式**
|
|
307
322
|
- comment 是一个字符串,可以包含换行符 \\n 来格式化内容
|
|
308
|
-
-
|
|
323
|
+
- 不要自创格式,必须参考上面"项目特定的审查规则"中的示例
|
|
309
324
|
|
|
310
325
|
**示例:**
|
|
311
|
-
|
|
326
|
+
如果 reviewguard.md 中定义了格式,删除第 15 行的函数时,comment 内容必须是:
|
|
312
327
|
"【严重程度评分:8/10】\\n\\n📋 问题描述:\\n删除了函数 fetchData 但该函数仍被多处使用\\n\\n🔍 影响分析:\\n• 当前文件:函数定义被完全移除\\n• 受影响的其他文件:components/UserList.vue (第 45 行)\\n\\n💡 改进建议:\\n1. 恢复此函数或提供替代方案\\n2. 先标记为 @deprecated"
|
|
313
328
|
|
|
314
329
|
7. 如果所有代码都没有问题,返回空的 reviews 数组:\`{"reviews": []}\`
|