@wuyanbin/ai-code-review-cli-remote 1.0.4 → 1.0.6

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.
@@ -0,0 +1,7 @@
1
+ import type { AIComment } from "./types";
2
+ export declare function postGitlabDiagnosticsNote(options: {
3
+ comments: AIComment[];
4
+ token?: string;
5
+ env?: NodeJS.ProcessEnv;
6
+ }): Promise<boolean>;
7
+ //# sourceMappingURL=gitlab.d.ts.map
@@ -0,0 +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"}
package/dist/gitlab.js ADDED
@@ -0,0 +1,55 @@
1
+ "use strict";
2
+ Object.defineProperty(exports, "__esModule", { value: true });
3
+ exports.postGitlabDiagnosticsNote = postGitlabDiagnosticsNote;
4
+ function directCommentEnabled(env) {
5
+ return env.AICR_DIRECT_GITLAB_COMMENT !== "false";
6
+ }
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}` : ""}`);
16
+ }
17
+ return lines.join("\n");
18
+ }
19
+ async function postGitlabDiagnosticsNote(options) {
20
+ const env = options.env ?? process.env;
21
+ if (!directCommentEnabled(env)) {
22
+ console.error("[gitlab] direct MR note skipped: disabled");
23
+ return false;
24
+ }
25
+ if (options.comments.length === 0) {
26
+ console.error("[gitlab] direct MR note skipped: no diagnostics");
27
+ return false;
28
+ }
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");
34
+ return false;
35
+ }
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}`);
50
+ return false;
51
+ }
52
+ console.error("[gitlab] direct MR note posted");
53
+ return true;
54
+ }
55
+ //# sourceMappingURL=gitlab.js.map
@@ -0,0 +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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@wuyanbin/ai-code-review-cli-remote",
3
- "version": "1.0.4",
3
+ "version": "1.0.6",
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",