@wuyanbin/ai-code-review-cli-remote 1.0.7 → 1.0.8

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/dist/gitlab.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  import type { AIComment } from "./types";
2
- export declare function postGitlabDiagnosticsNote(options: {
2
+ export declare function postGitlabDiscussions(options: {
3
3
  comments: AIComment[];
4
4
  token?: string;
5
5
  env?: NodeJS.ProcessEnv;
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../src/gitlab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA8BzC,wBAAsB,yBAAyB,CAAC,OAAO,EAAE;IACvD,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,OAAO,CAAC,CA0CnB"}
1
+ {"version":3,"file":"gitlab.d.ts","sourceRoot":"","sources":["../src/gitlab.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AA+CzC,wBAAsB,qBAAqB,CAAC,OAAO,EAAE;IACnD,QAAQ,EAAE,SAAS,EAAE,CAAC;IACtB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,GAAG,CAAC,EAAE,MAAM,CAAC,UAAU,CAAC;CACzB,GAAG,OAAO,CAAC,OAAO,CAAC,CAwDnB"}
package/dist/gitlab.js CHANGED
@@ -1,55 +1,82 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.postGitlabDiagnosticsNote = postGitlabDiagnosticsNote;
4
- function directCommentEnabled(env) {
5
- return env.AICR_DIRECT_GITLAB_COMMENT !== "false";
3
+ exports.postGitlabDiscussions = postGitlabDiscussions;
4
+ function buildCommentBody(comment) {
5
+ const message = comment.message || "AI Code Review 提示";
6
+ return comment.suggestion ? `${message}\n\n建议:${comment.suggestion}` : message;
6
7
  }
7
- function formatDiagnosticsNote(comments) {
8
- const lines = [
9
- "## AI Code Review",
10
- "",
11
- `发现 ${comments.length} 条审查意见:`,
12
- "",
13
- ];
14
- for (const comment of comments) {
15
- lines.push(`- **${comment.file}:${comment.line}** [${comment.severity}] ${comment.message}${comment.suggestion ? `\n 建议:${comment.suggestion}` : ""}`);
8
+ function buildApiUrl(env, suffix) {
9
+ if (!env.CI_API_V4_URL || !env.CI_PROJECT_ID || !env.CI_MERGE_REQUEST_IID) {
10
+ return null;
16
11
  }
17
- return lines.join("\n");
12
+ const apiBase = env.CI_API_V4_URL.replace(/\/+$/, "");
13
+ const projectId = encodeURIComponent(env.CI_PROJECT_ID);
14
+ const mrIid = encodeURIComponent(env.CI_MERGE_REQUEST_IID);
15
+ return `${apiBase}/projects/${projectId}/merge_requests/${mrIid}${suffix}`;
16
+ }
17
+ async function fetchMergeRequest(token, env) {
18
+ const url = buildApiUrl(env, "");
19
+ if (!url)
20
+ return null;
21
+ const resp = await fetch(url, {
22
+ headers: { Authorization: `Bearer ${token}` },
23
+ });
24
+ if (!resp.ok) {
25
+ console.error(`[gitlab] merge request fetch failed status=${resp.status}`);
26
+ return null;
27
+ }
28
+ return (await resp.json());
18
29
  }
19
- async function postGitlabDiagnosticsNote(options) {
30
+ async function postGitlabDiscussions(options) {
20
31
  const env = options.env ?? process.env;
21
- if (!directCommentEnabled(env)) {
22
- console.error("[gitlab] direct MR note skipped: disabled");
32
+ if (options.comments.length === 0) {
33
+ console.error("[gitlab] MR discussions skipped: no diagnostics");
23
34
  return false;
24
35
  }
25
- if (options.comments.length === 0) {
26
- console.error("[gitlab] direct MR note skipped: no diagnostics");
36
+ if (!options.token) {
37
+ console.error("[gitlab] MR discussions skipped: missing GitLab token");
27
38
  return false;
28
39
  }
29
- if (!options.token ||
30
- !env.CI_API_V4_URL ||
31
- !env.CI_PROJECT_ID ||
32
- !env.CI_MERGE_REQUEST_IID) {
33
- console.error("[gitlab] direct MR note skipped: missing GitLab CI context");
40
+ const discussionUrl = buildApiUrl(env, "/discussions");
41
+ if (!discussionUrl) {
42
+ console.error("[gitlab] MR discussions skipped: missing GitLab CI context");
34
43
  return false;
35
44
  }
36
- const projectId = encodeURIComponent(env.CI_PROJECT_ID);
37
- const mrIid = encodeURIComponent(env.CI_MERGE_REQUEST_IID);
38
- const url = `${env.CI_API_V4_URL.replace(/\/+$/, "")}/projects/${projectId}/merge_requests/${mrIid}/notes`;
39
- console.error(`[gitlab] posting direct MR note comments=${options.comments.length}`);
40
- const resp = await fetch(url, {
41
- method: "POST",
42
- headers: {
43
- "Content-Type": "application/json",
44
- Authorization: `Bearer ${options.token}`,
45
- },
46
- body: JSON.stringify({ body: formatDiagnosticsNote(options.comments) }),
47
- });
48
- if (!resp.ok) {
49
- console.error(`[gitlab] direct MR note failed status=${resp.status}`);
45
+ const mr = await fetchMergeRequest(options.token, env);
46
+ const refs = mr?.diff_refs;
47
+ if (!refs?.base_sha || !refs.start_sha || !refs.head_sha) {
48
+ console.error("[gitlab] MR discussions skipped: missing diff refs");
50
49
  return false;
51
50
  }
52
- console.error("[gitlab] direct MR note posted");
53
- return true;
51
+ let posted = 0;
52
+ for (const comment of options.comments) {
53
+ if (!comment.file || !comment.line)
54
+ continue;
55
+ const resp = await fetch(discussionUrl, {
56
+ method: "POST",
57
+ headers: {
58
+ "Content-Type": "application/json",
59
+ Authorization: `Bearer ${options.token}`,
60
+ },
61
+ body: JSON.stringify({
62
+ body: buildCommentBody(comment),
63
+ position: {
64
+ base_sha: refs.base_sha,
65
+ start_sha: refs.start_sha,
66
+ head_sha: refs.head_sha,
67
+ position_type: "text",
68
+ new_path: comment.file,
69
+ new_line: Number(comment.line),
70
+ },
71
+ }),
72
+ });
73
+ if (!resp.ok) {
74
+ console.error(`[gitlab] MR discussion failed file=${comment.file} line=${comment.line} status=${resp.status}`);
75
+ continue;
76
+ }
77
+ posted += 1;
78
+ }
79
+ console.error(`[gitlab] MR discussions posted count=${posted}`);
80
+ return posted > 0;
54
81
  }
55
82
  //# sourceMappingURL=gitlab.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../src/gitlab.ts"],"names":[],"mappings":";;AA8BA,8DA8CC;AAnED,SAAS,oBAAoB,CAAC,GAAgB;IAC5C,OAAO,GAAG,CAAC,0BAA0B,KAAK,OAAO,CAAC;AACpD,CAAC;AAED,SAAS,qBAAqB,CAAC,QAAqB;IAClD,MAAM,KAAK,GAAG;QACZ,mBAAmB;QACnB,EAAE;QACF,MAAM,QAAQ,CAAC,MAAM,SAAS;QAC9B,EAAE;KACH,CAAC;IACF,KAAK,MAAM,OAAO,IAAI,QAAQ,EAAE,CAAC;QAC/B,KAAK,CAAC,IAAI,CACR,OAAO,OAAO,CAAC,IAAI,IAAI,OAAO,CAAC,IAAI,OAAO,OAAO,CAAC,QAAQ,KAAK,OAAO,CAAC,OAAO,GAC5E,OAAO,CAAC,UAAU,CAAC,CAAC,CAAC,UAAU,OAAO,CAAC,UAAU,EAAE,CAAC,CAAC,CAAC,EACxD,EAAE,CACH,CAAC;IACJ,CAAC;IACD,OAAO,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC;AAC1B,CAAC;AAEM,KAAK,UAAU,yBAAyB,CAAC,OAI/C;IACC,MAAM,GAAG,GAAG,OAAO,CAAC,GAAG,IAAI,OAAO,CAAC,GAAG,CAAC;IACvC,IAAI,CAAC,oBAAoB,CAAC,GAAG,CAAC,EAAE,CAAC;QAC/B,OAAO,CAAC,KAAK,CAAC,2CAA2C,CAAC,CAAC;QAC3D,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IAAI,OAAO,CAAC,QAAQ,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;QAClC,OAAO,CAAC,KAAK,CAAC,iDAAiD,CAAC,CAAC;QACjE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,IACE,CAAC,OAAO,CAAC,KAAK;QACd,CAAC,GAAG,CAAC,aAAa;QAClB,CAAC,GAAG,CAAC,aAAa;QAClB,CAAC,GAAG,CAAC,oBAAoB,EACzB,CAAC;QACD,OAAO,CAAC,KAAK,CAAC,4DAA4D,CAAC,CAAC;QAC5E,OAAO,KAAK,CAAC;IACf,CAAC;IAED,MAAM,SAAS,GAAG,kBAAkB,CAAC,GAAG,CAAC,aAAa,CAAC,CAAC;IACxD,MAAM,KAAK,GAAG,kBAAkB,CAAC,GAAG,CAAC,oBAAoB,CAAC,CAAC;IAC3D,MAAM,GAAG,GAAG,GAAG,GAAG,CAAC,aAAa,CAAC,OAAO,CACtC,MAAM,EACN,EAAE,CACH,aAAa,SAAS,mBAAmB,KAAK,QAAQ,CAAC;IAExD,OAAO,CAAC,KAAK,CAAC,4CAA4C,OAAO,CAAC,QAAQ,CAAC,MAAM,EAAE,CAAC,CAAC;IACrF,MAAM,IAAI,GAAG,MAAM,KAAK,CAAC,GAAG,EAAE;QAC5B,MAAM,EAAE,MAAM;QACd,OAAO,EAAE;YACP,cAAc,EAAE,kBAAkB;YAClC,aAAa,EAAE,UAAU,OAAO,CAAC,KAAK,EAAE;SACzC;QACD,IAAI,EAAE,IAAI,CAAC,SAAS,CAAC,EAAE,IAAI,EAAE,qBAAqB,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,CAAC;KACxE,CAAC,CAAC;IACH,IAAI,CAAC,IAAI,CAAC,EAAE,EAAE,CAAC;QACb,OAAO,CAAC,KAAK,CAAC,yCAAyC,IAAI,CAAC,MAAM,EAAE,CAAC,CAAC;QACtE,OAAO,KAAK,CAAC;IACf,CAAC;IACD,OAAO,CAAC,KAAK,CAAC,gCAAgC,CAAC,CAAC;IAChD,OAAO,IAAI,CAAC;AACd,CAAC"}
1
+ {"version":3,"file":"gitlab.js","sourceRoot":"","sources":["../src/gitlab.ts"],"names":[],"mappings":"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"}
package/dist/index.js CHANGED
@@ -6,13 +6,13 @@ const runner_1 = require("./runner");
6
6
  if (require.main === module) {
7
7
  const argv = process.argv.slice(2);
8
8
  const args = new Set(argv);
9
- const run = args.has("--write-reviewdog-env")
9
+ const run = args.has("--write-gitlab-env")
10
10
  ? () => {
11
- const idx = argv.indexOf("--write-reviewdog-env");
11
+ const idx = argv.indexOf("--write-gitlab-env");
12
12
  const outputPath = argv[idx + 1];
13
13
  if (!outputPath)
14
- throw new Error("--write-reviewdog-env 缺少输出路径");
15
- return (0, runner_1.writeReviewdogEnvMain)(outputPath);
14
+ throw new Error("--write-gitlab-env 缺少输出路径");
15
+ return (0, runner_1.writeGitlabEnvMain)(outputPath);
16
16
  }
17
17
  : args.has("--summary")
18
18
  ? runner_1.summaryMain
package/dist/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,2CAAwC;AACxC,qCAA0E;AAE1E,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,uBAAuB,CAAC;QAC3C,CAAC,CAAC,GAAG,EAAE;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,uBAAuB,CAAC,CAAC;YAClD,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,8BAA8B,CAAC,CAAC;YACjE,OAAO,IAAA,8BAAqB,EAAC,UAAU,CAAC,CAAC;QAC3C,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACrB,CAAC,CAAC,oBAAW;YACb,CAAC,CAAC,mBAAU,CAAC;IAEjB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,OAAO,CAAC,KAAK,CACX,IAAI,qBAAS,SAAS,EACtB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":";;;AAEA,2CAAwC;AACxC,qCAAuE;AAEvE,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,MAAM,IAAI,GAAG,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC;IACnC,MAAM,IAAI,GAAG,IAAI,GAAG,CAAC,IAAI,CAAC,CAAC;IAC3B,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,oBAAoB,CAAC;QACxC,CAAC,CAAC,GAAG,EAAE;YACH,MAAM,GAAG,GAAG,IAAI,CAAC,OAAO,CAAC,oBAAoB,CAAC,CAAC;YAC/C,MAAM,UAAU,GAAG,IAAI,CAAC,GAAG,GAAG,CAAC,CAAC,CAAC;YACjC,IAAI,CAAC,UAAU;gBAAE,MAAM,IAAI,KAAK,CAAC,2BAA2B,CAAC,CAAC;YAC9D,OAAO,IAAA,2BAAkB,EAAC,UAAU,CAAC,CAAC;QACxC,CAAC;QACH,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,WAAW,CAAC;YACrB,CAAC,CAAC,oBAAW;YACb,CAAC,CAAC,mBAAU,CAAC;IAEjB,GAAG,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACpB,OAAO,CAAC,KAAK,CACX,IAAI,qBAAS,SAAS,EACtB,KAAK,YAAY,KAAK,CAAC,CAAC,CAAC,KAAK,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAC/C,CAAC;QACF,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
package/dist/runner.d.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  export declare const readStdin: () => Promise<string>;
2
2
  export declare function reviewMain(): Promise<void>;
3
3
  export declare function summaryMain(): Promise<void>;
4
- export declare function writeReviewdogEnvMain(path: string): Promise<void>;
4
+ export declare function writeGitlabEnvMain(path: string): Promise<void>;
5
5
  //# sourceMappingURL=runner.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAOA,eAAO,MAAM,SAAS,QAAO,OAAO,CAAC,MAAM,CASvC,CAAC;AAML,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CA+ChD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAejD;AAMD,wBAAsB,qBAAqB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYvE"}
1
+ {"version":3,"file":"runner.d.ts","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"AAQA,eAAO,MAAM,SAAS,QAAO,OAAO,CAAC,MAAM,CASvC,CAAC;AAML,wBAAsB,UAAU,IAAI,OAAO,CAAC,IAAI,CAAC,CAqDhD;AAED,wBAAsB,WAAW,IAAI,OAAO,CAAC,IAAI,CAAC,CAiBjD;AAMD,wBAAsB,kBAAkB,CAAC,IAAI,EAAE,MAAM,GAAG,OAAO,CAAC,IAAI,CAAC,CAYpE"}
package/dist/runner.js CHANGED
@@ -3,12 +3,13 @@ Object.defineProperty(exports, "__esModule", { value: true });
3
3
  exports.readStdin = void 0;
4
4
  exports.reviewMain = reviewMain;
5
5
  exports.summaryMain = summaryMain;
6
- exports.writeReviewdogEnvMain = writeReviewdogEnvMain;
6
+ exports.writeGitlabEnvMain = writeGitlabEnvMain;
7
7
  const config_1 = require("./config");
8
8
  const formatters_1 = require("./formatters");
9
9
  const reviewer_1 = require("./reviewer");
10
10
  const summarizer_1 = require("./summarizer");
11
11
  const report_1 = require("./report");
12
+ const gitlab_1 = require("./gitlab");
12
13
  const promises_1 = require("node:fs/promises");
13
14
  const readStdin = () => new Promise((resolve, reject) => {
14
15
  let data = "";
@@ -58,6 +59,10 @@ async function reviewMain() {
58
59
  return;
59
60
  }
60
61
  console.error(`[runner] review complete comments=${result.comments.length}`);
62
+ await (0, gitlab_1.postGitlabDiscussions)({
63
+ comments: result.comments,
64
+ token: config.gitlab?.token,
65
+ });
61
66
  console.log(JSON.stringify((0, formatters_1.buildRdjson)(result.comments)));
62
67
  await (0, report_1.postRunReport)({
63
68
  status: "SUCCESS",
@@ -84,14 +89,14 @@ async function summaryMain() {
84
89
  function shellSingleQuote(value) {
85
90
  return `'${value.replace(/'/g, "'\\''")}'`;
86
91
  }
87
- async function writeReviewdogEnvMain(path) {
92
+ async function writeGitlabEnvMain(path) {
88
93
  const config = await (0, config_1.loadReviewConfig)();
89
94
  if (config.gitlab?.token) {
90
- await (0, promises_1.writeFile)(path, `export REVIEWDOG_GITLAB_API_TOKEN=${shellSingleQuote(config.gitlab.token)}\n`, { mode: 0o600 });
91
- console.error("[runner] reviewdog token env file written");
95
+ await (0, promises_1.writeFile)(path, `export AICR_GITLAB_TOKEN=${shellSingleQuote(config.gitlab.token)}\n`, { mode: 0o600 });
96
+ console.error("[runner] GitLab token env file written");
92
97
  }
93
98
  else {
94
- console.error("[runner] reviewdog token missing in config");
99
+ console.error("[runner] GitLab token missing in config");
95
100
  }
96
101
  }
97
102
  //# sourceMappingURL=runner.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"runner.js","sourceRoot":"","sources":["../src/runner.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wuyanbin/ai-code-review-cli-remote",
3
- "version": "1.0.7",
3
+ "version": "1.0.8",
4
4
  "description": "AI Code Review remote client - sends diffs to AICR platform for review",
5
5
  "main": "dist/index.js",
6
6
  "types": "dist/index.d.ts",