gitlab-ai-review 3.8.1 → 3.8.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 +31 -8
  2. package/package.json +1 -1
package/index.js CHANGED
@@ -457,30 +457,53 @@ export class GitLabAIReview {
457
457
  impactAnalysis
458
458
  );
459
459
 
460
+ // 智能合并修改块的评论
461
+ const mergedReviews = this.mergeModificationReviews(fileReview.reviews, meaningfulChanges);
462
+
460
463
  // 根据 AI 返回的结果,只对有问题的行添加评论
461
- for (const review of fileReview.reviews) {
464
+ for (const review of mergedReviews) {
462
465
  if (review.hasIssue) {
463
466
  try {
467
+ // 构建评论位置参数
468
+ const positionParams = {
469
+ filePath: fileName,
470
+ oldPath: change.old_path,
471
+ };
472
+
473
+ // 如果是修改块(同时有 oldLine 和 newLine),同时指定两个行号
474
+ if (review.oldLine && review.newLine) {
475
+ positionParams.oldLine = review.oldLine;
476
+ positionParams.newLine = review.newLine;
477
+ } else if (review.lineNumber) {
478
+ // 单独的删除或新增
479
+ const relatedChange = meaningfulChanges.find(c => c.lineNumber === review.lineNumber);
480
+ const isDeletion = relatedChange && relatedChange.type === 'deletion';
481
+ if (isDeletion) {
482
+ positionParams.oldLine = review.lineNumber;
483
+ } else {
484
+ positionParams.newLine = review.lineNumber;
485
+ }
486
+ }
487
+
464
488
  const commentResult = await this.gitlabClient.createLineComment(
465
489
  this.config.project.projectId,
466
490
  this.config.project.mergeRequestIid,
467
491
  `🤖 **AI 代码审查**\n\n${review.comment}`,
468
- {
469
- filePath: fileName,
470
- oldPath: change.old_path,
471
- newLine: review.lineNumber,
472
- }
492
+ positionParams
473
493
  );
474
494
 
475
495
  results.push({
476
496
  status: 'success',
477
497
  fileName,
478
- lineNumber: review.lineNumber,
498
+ lineNumber: review.lineNumber || review.newLine || review.oldLine,
479
499
  comment: review.comment,
480
500
  commentResult,
481
501
  });
482
502
 
483
- console.log(` ✓ ${review.lineNumber} 行:已添加评论`);
503
+ const lineDesc = review.oldLine && review.newLine
504
+ ? `第 ${review.oldLine}-${review.newLine} 行`
505
+ : `第 ${review.lineNumber} 行`;
506
+ console.log(` ✓ ${lineDesc}:已添加评论`);
484
507
  } catch (error) {
485
508
  results.push({
486
509
  status: 'error',
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "gitlab-ai-review",
3
- "version": "3.8.1",
3
+ "version": "3.8.3",
4
4
  "description": "GitLab AI Review SDK with Impact Analysis - 支持影响分析、删除符号检测、注释代码识别、文件内部冲突检查、智能文件过滤的智能代码审查工具",
5
5
  "main": "index.js",
6
6
  "type": "module",