gitlab-ai-review 4.1.1 → 4.1.3

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.
Files changed (2) hide show
  1. package/index.js +33 -21
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -16,7 +16,7 @@ import * as ImpactAnalyzer from './lib/impact-analyzer.js';
16
16
  export class GitLabAIReview {
17
17
  constructor(options = {}) {
18
18
  this.name = 'GitLab AI Review SDK';
19
- this.version = '4.1.1';
19
+ this.version = '4.1.3';
20
20
 
21
21
  // 如果传入了配置,使用手动配置;否则使用自动检测
22
22
  if (options.token || options.gitlab) {
@@ -236,20 +236,32 @@ export class GitLabAIReview {
236
236
  for (const review of mergedReviews) {
237
237
  if (review.hasIssue) {
238
238
  try {
239
- // 构建评论位置参数
239
+ // 构建评论位置参数 - 使用实际的变更行号
240
240
  const positionParams = {
241
241
  filePath: fileName,
242
242
  oldPath: change.old_path,
243
243
  };
244
244
 
245
+ // 如果是修改块(同时有 oldLine 和 newLine),同时指定两个行号
246
+ if (review.oldLine && review.newLine) {
247
+ positionParams.oldLine = review.oldLine;
248
+ positionParams.newLine = review.newLine;
249
+ } else if (review.lineNumber) {
250
+ // 单独的删除或新增
251
+ const relatedChange = meaningfulChanges.find(c => c.lineNumber === review.lineNumber);
252
+ const isDeletion = relatedChange && relatedChange.type === 'deletion';
253
+ if (isDeletion) {
254
+ positionParams.oldLine = review.lineNumber;
255
+ } else {
256
+ positionParams.newLine = review.lineNumber;
257
+ }
258
+ }
259
+
245
260
  // 构建评论内容,包含完整的修改块上下文
246
261
  let commentBody = '🤖 **AI 代码审查**\n\n';
247
262
 
248
263
  // 如果是修改块(同时有 oldLine 和 newLine),显示完整的删除和新增
249
264
  if (review.oldLine && review.newLine) {
250
- positionParams.oldLine = review.oldLine;
251
- positionParams.newLine = review.newLine;
252
-
253
265
  // 添加修改块的上下文
254
266
  const oldChange = meaningfulChanges.find(c => c.lineNumber === review.oldLine && c.type === 'deletion');
255
267
  const newChange = meaningfulChanges.find(c => c.lineNumber === review.newLine && c.type === 'addition');
@@ -269,12 +281,6 @@ export class GitLabAIReview {
269
281
  const relatedChange = meaningfulChanges.find(c => c.lineNumber === review.lineNumber);
270
282
  const isDeletion = relatedChange && relatedChange.type === 'deletion';
271
283
 
272
- if (isDeletion) {
273
- positionParams.oldLine = review.lineNumber;
274
- } else {
275
- positionParams.newLine = review.lineNumber;
276
- }
277
-
278
284
  // 添加单个变更的上下文
279
285
  if (relatedChange) {
280
286
  commentBody += `**📝 ${isDeletion ? '删除' : '新增'}内容:**\n\`\`\`${isDeletion ? 'diff' : 'javascript'}\n`;
@@ -549,20 +555,32 @@ export class GitLabAIReview {
549
555
  for (const review of mergedReviews) {
550
556
  if (review.hasIssue) {
551
557
  try {
552
- // 构建评论位置参数
558
+ // 构建评论位置参数 - 使用实际的变更行号
553
559
  const positionParams = {
554
560
  filePath: fileName,
555
561
  oldPath: change.old_path,
556
562
  };
557
563
 
564
+ // 如果是修改块(同时有 oldLine 和 newLine),同时指定两个行号
565
+ if (review.oldLine && review.newLine) {
566
+ positionParams.oldLine = review.oldLine;
567
+ positionParams.newLine = review.newLine;
568
+ } else if (review.lineNumber) {
569
+ // 单独的删除或新增
570
+ const relatedChange = meaningfulChanges.find(c => c.lineNumber === review.lineNumber);
571
+ const isDeletion = relatedChange && relatedChange.type === 'deletion';
572
+ if (isDeletion) {
573
+ positionParams.oldLine = review.lineNumber;
574
+ } else {
575
+ positionParams.newLine = review.lineNumber;
576
+ }
577
+ }
578
+
558
579
  // 构建评论内容,包含完整的修改块上下文
559
580
  let commentBody = '🤖 **AI 代码审查**\n\n';
560
581
 
561
582
  // 如果是修改块(同时有 oldLine 和 newLine),显示完整的删除和新增
562
583
  if (review.oldLine && review.newLine) {
563
- positionParams.oldLine = review.oldLine;
564
- positionParams.newLine = review.newLine;
565
-
566
584
  // 添加修改块的上下文
567
585
  const oldChange = meaningfulChanges.find(c => c.lineNumber === review.oldLine && c.type === 'deletion');
568
586
  const newChange = meaningfulChanges.find(c => c.lineNumber === review.newLine && c.type === 'addition');
@@ -582,12 +600,6 @@ export class GitLabAIReview {
582
600
  const relatedChange = meaningfulChanges.find(c => c.lineNumber === review.lineNumber);
583
601
  const isDeletion = relatedChange && relatedChange.type === 'deletion';
584
602
 
585
- if (isDeletion) {
586
- positionParams.oldLine = review.lineNumber;
587
- } else {
588
- positionParams.newLine = review.lineNumber;
589
- }
590
-
591
603
  // 添加单个变更的上下文
592
604
  if (relatedChange) {
593
605
  commentBody += `**📝 ${isDeletion ? '删除' : '新增'}内容:**\n\`\`\`${isDeletion ? 'diff' : 'javascript'}\n`;
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitlab-ai-review",
3
- "version": "4.1.1",
3
+ "version": "4.1.3",
4
4
  "description": "GitLab AI Review SDK with Impact Analysis - 支持影响分析、删除符号检测、注释代码识别、文件内部冲突检查、智能文件过滤的智能代码审查工具",
5
5
  "main": "index.js",
6
6
  "type": "module",