gitlab-auto-reviewers 2.0.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/LICENSE +21 -0
- package/README.md +1878 -0
- package/dist/api/gitlab-api.d.ts +136 -0
- package/dist/api/gitlab-api.d.ts.map +1 -0
- package/dist/api/gitlab-api.js +334 -0
- package/dist/api/gitlab-api.js.map +1 -0
- package/dist/bin/cli.d.ts +10 -0
- package/dist/bin/cli.d.ts.map +1 -0
- package/dist/bin/cli.js +186 -0
- package/dist/bin/cli.js.map +1 -0
- package/dist/bin/deprecated-mcp.d.ts +12 -0
- package/dist/bin/deprecated-mcp.d.ts.map +1 -0
- package/dist/bin/deprecated-mcp.js +73 -0
- package/dist/bin/deprecated-mcp.js.map +1 -0
- package/dist/bin/index.d.ts +18 -0
- package/dist/bin/index.d.ts.map +1 -0
- package/dist/bin/index.js +78 -0
- package/dist/bin/index.js.map +1 -0
- package/dist/bin/mcp.d.ts +11 -0
- package/dist/bin/mcp.d.ts.map +1 -0
- package/dist/bin/mcp.js +43 -0
- package/dist/bin/mcp.js.map +1 -0
- package/dist/cache/cache.service.d.ts +113 -0
- package/dist/cache/cache.service.d.ts.map +1 -0
- package/dist/cache/cache.service.js +213 -0
- package/dist/cache/cache.service.js.map +1 -0
- package/dist/cli/commands.d.ts +40 -0
- package/dist/cli/commands.d.ts.map +1 -0
- package/dist/cli/commands.js +142 -0
- package/dist/cli/commands.js.map +1 -0
- package/dist/cli/output.d.ts +24 -0
- package/dist/cli/output.d.ts.map +1 -0
- package/dist/cli/output.js +143 -0
- package/dist/cli/output.js.map +1 -0
- package/dist/config/config.service.d.ts +89 -0
- package/dist/config/config.service.d.ts.map +1 -0
- package/dist/config/config.service.js +169 -0
- package/dist/config/config.service.js.map +1 -0
- package/dist/datasources/git-data-source.interface.d.ts +140 -0
- package/dist/datasources/git-data-source.interface.d.ts.map +1 -0
- package/dist/datasources/git-data-source.interface.js +2 -0
- package/dist/datasources/git-data-source.interface.js.map +1 -0
- package/dist/datasources/gitlab-api-data-source.d.ts +127 -0
- package/dist/datasources/gitlab-api-data-source.d.ts.map +1 -0
- package/dist/datasources/gitlab-api-data-source.js +248 -0
- package/dist/datasources/gitlab-api-data-source.js.map +1 -0
- package/dist/datasources/local-git-data-source.d.ts +124 -0
- package/dist/datasources/local-git-data-source.d.ts.map +1 -0
- package/dist/datasources/local-git-data-source.js +580 -0
- package/dist/datasources/local-git-data-source.js.map +1 -0
- package/dist/errors/error-handler.d.ts +113 -0
- package/dist/errors/error-handler.d.ts.map +1 -0
- package/dist/errors/error-handler.js +230 -0
- package/dist/errors/error-handler.js.map +1 -0
- package/dist/index.d.ts +139 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +139 -0
- package/dist/index.js.map +1 -0
- package/dist/logging/example.d.ts +15 -0
- package/dist/logging/example.d.ts.map +1 -0
- package/dist/logging/example.js +79 -0
- package/dist/logging/example.js.map +1 -0
- package/dist/logging/index.d.ts +7 -0
- package/dist/logging/index.d.ts.map +1 -0
- package/dist/logging/index.js +7 -0
- package/dist/logging/index.js.map +1 -0
- package/dist/logging/logger.service.d.ts +98 -0
- package/dist/logging/logger.service.d.ts.map +1 -0
- package/dist/logging/logger.service.js +160 -0
- package/dist/logging/logger.service.js.map +1 -0
- package/dist/mcp/server.d.ts +67 -0
- package/dist/mcp/server.d.ts.map +1 -0
- package/dist/mcp/server.js +213 -0
- package/dist/mcp/server.js.map +1 -0
- package/dist/mcp/tools.d.ts +22 -0
- package/dist/mcp/tools.d.ts.map +1 -0
- package/dist/mcp/tools.js +176 -0
- package/dist/mcp/tools.js.map +1 -0
- package/dist/services/blacklist.service.d.ts +32 -0
- package/dist/services/blacklist.service.d.ts.map +1 -0
- package/dist/services/blacklist.service.js +59 -0
- package/dist/services/blacklist.service.js.map +1 -0
- package/dist/services/codeowners.service.d.ts +45 -0
- package/dist/services/codeowners.service.d.ts.map +1 -0
- package/dist/services/codeowners.service.js +200 -0
- package/dist/services/codeowners.service.js.map +1 -0
- package/dist/services/comment-builder.service.d.ts +48 -0
- package/dist/services/comment-builder.service.d.ts.map +1 -0
- package/dist/services/comment-builder.service.js +61 -0
- package/dist/services/comment-builder.service.js.map +1 -0
- package/dist/services/contributors.service.d.ts +52 -0
- package/dist/services/contributors.service.d.ts.map +1 -0
- package/dist/services/contributors.service.js +144 -0
- package/dist/services/contributors.service.js.map +1 -0
- package/dist/services/reviewer-service.d.ts +125 -0
- package/dist/services/reviewer-service.d.ts.map +1 -0
- package/dist/services/reviewer-service.js +554 -0
- package/dist/services/reviewer-service.js.map +1 -0
- package/dist/services/team-members.service.d.ts +29 -0
- package/dist/services/team-members.service.d.ts.map +1 -0
- package/dist/services/team-members.service.js +45 -0
- package/dist/services/team-members.service.js.map +1 -0
- package/dist/services/whitelist.service.d.ts +31 -0
- package/dist/services/whitelist.service.d.ts.map +1 -0
- package/dist/services/whitelist.service.js +51 -0
- package/dist/services/whitelist.service.js.map +1 -0
- package/dist/tools.d.ts +22 -0
- package/dist/tools.d.ts.map +1 -0
- package/dist/tools.js +176 -0
- package/dist/tools.js.map +1 -0
- package/dist/types/index.d.ts +502 -0
- package/dist/types/index.d.ts.map +1 -0
- package/dist/types/index.js +91 -0
- package/dist/types/index.js.map +1 -0
- package/dist/types.d.ts +219 -0
- package/dist/types.d.ts.map +1 -0
- package/dist/types.js +7 -0
- package/dist/types.js.map +1 -0
- package/package.json +71 -0
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"team-members.service.js","sourceRoot":"","sources":["../../src/services/team-members.service.ts"],"names":[],"mappings":"AAQA;;;;;GAKG;AACH,MAAM,OAAO,kBAAkB;IAC7B;;;;;;;;;;;OAWG;IACH,sBAAsB,CACpB,WAAwB,EACxB,YAA2B,EAC3B,QAAgC;QAEhC,OAAO,WAAW,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,EAAE,OAAO,EAAE,EAAoB,EAAE;YAC7D,MAAM,YAAY,GAA0B,OAAO,CAAC,GAAG,CAAC,CAAC,QAAgB,EAAuB,EAAE;gBAChG,MAAM,WAAW,GAAG,YAAY,CAAC,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,KAAK,QAAQ,CAAC,CAAC;gBACtE,IAAI,CAAC,WAAW,EAAE,CAAC;oBACjB,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,GAAG,EAAE,CAAC,EAAE,KAAK,EAAE,CAAC,EAAE,CAAC;gBACpD,CAAC;gBAED,MAAM,WAAW,GAAG,QAAQ,CAAC,QAAQ,CAAC,IAAI,CAAC,CAAC;gBAC5C,MAAM,QAAQ,GAAG,WAAW,CAAC,KAAK,EAAE,IAAI,CAAC,CAAC,CAAC,EAAE,EAAE,CAAC,CAAC,CAAC,IAAI,KAAK,IAAI,CAAC,CAAC;gBACjE,MAAM,WAAW,GAAG,QAAQ,EAAE,GAAG,IAAI,CAAC,CAAC;gBACvC,MAAM,KAAK,GAAG,WAAW,GAAG,CAAC,CAAC,CAAC,CAAC,WAAW,GAAG,WAAW,CAAC,CAAC,CAAC,GAAG,CAAC;gBAEhE,OAAO,EAAE,QAAQ,EAAE,KAAK,EAAE,GAAG,EAAE,WAAW,EAAE,KAAK,EAAE,WAAW,EAAE,CAAC;YACnE,CAAC,CAAC,CAAC;YAEH,MAAM,aAAa,GAAG,YAAY;iBAC/B,IAAI,CAAC,CAAC,CAAsB,EAAE,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;iBAC3E,GAAG,CAAC,CAAC,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;YAE/C,OAAO;gBACL,IAAI;gBACJ,OAAO,EAAE,aAAa;gBACtB,YAAY,EAAE,IAAI;gBAClB,YAAY,EAAE,YAAY,CAAC,IAAI,CAAC,CAAC,CAAsB,EAAE,CAAsB,EAAE,EAAE,CAAC,CAAC,CAAC,KAAK,GAAG,CAAC,CAAC,KAAK,CAAC;aACvG,CAAC;QACJ,CAAC,CAAC,CAAC;IACL,CAAC;CACF"}
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
import { GitDataSource } from "../datasources/git-data-source.interface.js";
|
|
2
|
+
import { Contributor } from "../types.js";
|
|
3
|
+
/**
|
|
4
|
+
* Service for managing the whitelist of approved reviewers.
|
|
5
|
+
*
|
|
6
|
+
* Retrieves and validates the list of contributors who are eligible to be
|
|
7
|
+
* suggested as reviewers. Supports both CONTRIBUTORS file configuration and
|
|
8
|
+
* automatic discovery from project contributors.
|
|
9
|
+
*/
|
|
10
|
+
export declare class WhitelistService {
|
|
11
|
+
private dataSource;
|
|
12
|
+
/**
|
|
13
|
+
* Creates a new WhitelistService instance.
|
|
14
|
+
*
|
|
15
|
+
* @param dataSource - The data source for accessing GitLab data
|
|
16
|
+
*/
|
|
17
|
+
constructor(dataSource: GitDataSource);
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves the whitelist of approved reviewers for a project.
|
|
20
|
+
*
|
|
21
|
+
* Attempts to load contributor information from a CONTRIBUTORS file in the
|
|
22
|
+
* repository. If not found, automatically discovers contributors from the
|
|
23
|
+
* project's commit history using git commit data as the source of truth.
|
|
24
|
+
*
|
|
25
|
+
* @param project - The GitLab project identifier (ID or path)
|
|
26
|
+
* @param commitSha - The commit SHA to read the CONTRIBUTORS file from
|
|
27
|
+
* @returns Array of contributors with usernames derived from git history and team information
|
|
28
|
+
*/
|
|
29
|
+
getWhitelist(project: string, commitSha: string): Promise<Contributor[]>;
|
|
30
|
+
}
|
|
31
|
+
//# sourceMappingURL=whitelist.service.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whitelist.service.d.ts","sourceRoot":"","sources":["../../src/services/whitelist.service.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAAE,MAAM,6CAA6C,CAAC;AAC5E,OAAO,EAAE,WAAW,EAAQ,MAAM,aAAa,CAAC;AAEhD;;;;;;GAMG;AACH,qBAAa,gBAAgB;IAMf,OAAO,CAAC,UAAU;IAL9B;;;;OAIG;gBACiB,UAAU,EAAE,aAAa;IAE7C;;;;;;;;;;OAUG;IACG,YAAY,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,GAAG,OAAO,CAAC,WAAW,EAAE,CAAC;CAyC/E"}
|
|
@@ -0,0 +1,51 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Service for managing the whitelist of approved reviewers.
|
|
3
|
+
*
|
|
4
|
+
* Retrieves and validates the list of contributors who are eligible to be
|
|
5
|
+
* suggested as reviewers. Supports both CONTRIBUTORS file configuration and
|
|
6
|
+
* automatic discovery from project contributors.
|
|
7
|
+
*/
|
|
8
|
+
export class WhitelistService {
|
|
9
|
+
dataSource;
|
|
10
|
+
/**
|
|
11
|
+
* Creates a new WhitelistService instance.
|
|
12
|
+
*
|
|
13
|
+
* @param dataSource - The data source for accessing GitLab data
|
|
14
|
+
*/
|
|
15
|
+
constructor(dataSource) {
|
|
16
|
+
this.dataSource = dataSource;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Retrieves the whitelist of approved reviewers for a project.
|
|
20
|
+
*
|
|
21
|
+
* Attempts to load contributor information from a CONTRIBUTORS file in the
|
|
22
|
+
* repository. If not found, automatically discovers contributors from the
|
|
23
|
+
* project's commit history using git commit data as the source of truth.
|
|
24
|
+
*
|
|
25
|
+
* @param project - The GitLab project identifier (ID or path)
|
|
26
|
+
* @param commitSha - The commit SHA to read the CONTRIBUTORS file from
|
|
27
|
+
* @returns Array of contributors with usernames derived from git history and team information
|
|
28
|
+
*/
|
|
29
|
+
async getWhitelist(project, commitSha) {
|
|
30
|
+
const projectContributors = (await this.dataSource.getProjectContributors(project, commitSha)).map((email) => email.toLowerCase());
|
|
31
|
+
const data = await this.dataSource.getJsonFile(project, commitSha, "CONTRIBUTORS");
|
|
32
|
+
const whitelist = data?.contributors;
|
|
33
|
+
if (!whitelist) {
|
|
34
|
+
// Auto-discovery mode: derive usernames from email addresses
|
|
35
|
+
return projectContributors.map((email) => ({
|
|
36
|
+
username: email.replace(/@.*/g, ""),
|
|
37
|
+
email,
|
|
38
|
+
}));
|
|
39
|
+
}
|
|
40
|
+
// CONTRIBUTORS file mode: use configured data
|
|
41
|
+
return whitelist
|
|
42
|
+
.filter((contributor) => projectContributors.includes(contributor.email.toLowerCase()))
|
|
43
|
+
.map((contributor) => ({
|
|
44
|
+
username: contributor.username?.toLowerCase() || contributor.email.replace(/@.*/g, ""),
|
|
45
|
+
email: contributor.email.toLowerCase(),
|
|
46
|
+
teams: contributor.teams,
|
|
47
|
+
fte: contributor.fte,
|
|
48
|
+
}));
|
|
49
|
+
}
|
|
50
|
+
}
|
|
51
|
+
//# sourceMappingURL=whitelist.service.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"whitelist.service.js","sourceRoot":"","sources":["../../src/services/whitelist.service.ts"],"names":[],"mappings":"AAGA;;;;;;GAMG;AACH,MAAM,OAAO,gBAAgB;IAMP;IALpB;;;;OAIG;IACH,YAAoB,UAAyB;QAAzB,eAAU,GAAV,UAAU,CAAe;IAAG,CAAC;IAEjD;;;;;;;;;;OAUG;IACH,KAAK,CAAC,YAAY,CAAC,OAAe,EAAE,SAAiB;QACnD,MAAM,mBAAmB,GAAG,CAC1B,MAAM,IAAI,CAAC,UAAU,CAAC,sBAAsB,CAAC,OAAO,EAAE,SAAS,CAAC,CACjE,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAAC;QAWtC,MAAM,IAAI,GAAG,MAAM,IAAI,CAAC,UAAU,CAAC,WAAW,CAC5C,OAAO,EACP,SAAS,EACT,cAAc,CACf,CAAC;QACF,MAAM,SAAS,GAAG,IAAI,EAAE,YAAY,CAAC;QAErC,IAAI,CAAC,SAAS,EAAE,CAAC;YACf,6DAA6D;YAC7D,OAAO,mBAAmB,CAAC,GAAG,CAAC,CAAC,KAAK,EAAE,EAAE,CAAC,CAAC;gBACzC,QAAQ,EAAE,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;gBACnC,KAAK;aACN,CAAC,CAAC,CAAC;QACN,CAAC;QAED,8CAA8C;QAC9C,OAAO,SAAS;aACb,MAAM,CAAC,CAAC,WAAW,EAAE,EAAE,CACtB,mBAAmB,CAAC,QAAQ,CAAC,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE,CAAC,CAC9D;aACA,GAAG,CAAC,CAAC,WAAW,EAAE,EAAE,CAAC,CAAC;YACrB,QAAQ,EAAE,WAAW,CAAC,QAAQ,EAAE,WAAW,EAAE,IAAI,WAAW,CAAC,KAAK,CAAC,OAAO,CAAC,MAAM,EAAE,EAAE,CAAC;YACtF,KAAK,EAAE,WAAW,CAAC,KAAK,CAAC,WAAW,EAAE;YACtC,KAAK,EAAE,WAAW,CAAC,KAAK;YACxB,GAAG,EAAE,WAAW,CAAC,GAAG;SACrB,CAAC,CAAC,CAAC;IACR,CAAC;CACF"}
|
package/dist/tools.d.ts
ADDED
|
@@ -0,0 +1,22 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* This module defines all tools exposed by the Auto Reviewers MCP Server.
|
|
5
|
+
* Each tool follows the Model Context Protocol specification and includes
|
|
6
|
+
* detailed input schemas for validation.
|
|
7
|
+
*
|
|
8
|
+
* @module tools
|
|
9
|
+
*/
|
|
10
|
+
import { Tool } from "@modelcontextprotocol/sdk/types.js";
|
|
11
|
+
/**
|
|
12
|
+
* Array of all tools exposed by the MCP server
|
|
13
|
+
*
|
|
14
|
+
* Tools:
|
|
15
|
+
* - suggest_reviewers: Suggest reviewers based on multiple factors
|
|
16
|
+
* - get_contributor_analysis: Analyze file contributors
|
|
17
|
+
* - get_reviewer_workload: Analyze reviewer workload
|
|
18
|
+
* - post_comment: Post a comment to a merge request
|
|
19
|
+
* - invite_reviewers: Suggest and invite reviewers
|
|
20
|
+
*/
|
|
21
|
+
export declare const TOOLS: Tool[];
|
|
22
|
+
//# sourceMappingURL=tools.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.d.ts","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"AAAA;;;;;;;;GAQG;AAEH,OAAO,EAAE,IAAI,EAAE,MAAM,oCAAoC,CAAC;AAE1D;;;;;;;;;GASG;AACH,eAAO,MAAM,KAAK,EAAE,IAAI,EAuKvB,CAAC"}
|
package/dist/tools.js
ADDED
|
@@ -0,0 +1,176 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* MCP Tool Definitions
|
|
3
|
+
*
|
|
4
|
+
* This module defines all tools exposed by the Auto Reviewers MCP Server.
|
|
5
|
+
* Each tool follows the Model Context Protocol specification and includes
|
|
6
|
+
* detailed input schemas for validation.
|
|
7
|
+
*
|
|
8
|
+
* @module tools
|
|
9
|
+
*/
|
|
10
|
+
/**
|
|
11
|
+
* Array of all tools exposed by the MCP server
|
|
12
|
+
*
|
|
13
|
+
* Tools:
|
|
14
|
+
* - suggest_reviewers: Suggest reviewers based on multiple factors
|
|
15
|
+
* - get_contributor_analysis: Analyze file contributors
|
|
16
|
+
* - get_reviewer_workload: Analyze reviewer workload
|
|
17
|
+
* - post_comment: Post a comment to a merge request
|
|
18
|
+
* - invite_reviewers: Suggest and invite reviewers
|
|
19
|
+
*/
|
|
20
|
+
export const TOOLS = [
|
|
21
|
+
{
|
|
22
|
+
name: "suggest_reviewers",
|
|
23
|
+
description: "Automatically suggest reviewers for a GitLab merge request based on contributors, team members, and code owners",
|
|
24
|
+
inputSchema: {
|
|
25
|
+
type: "object",
|
|
26
|
+
properties: {
|
|
27
|
+
project: {
|
|
28
|
+
type: ["string", "number"],
|
|
29
|
+
description: "GitLab project ID (e.g., 12345) or project path (e.g., 'group/project-name')",
|
|
30
|
+
},
|
|
31
|
+
mergeRequestIid: {
|
|
32
|
+
type: "number",
|
|
33
|
+
description: "Merge request internal ID (optional if branch provided)",
|
|
34
|
+
},
|
|
35
|
+
branch: {
|
|
36
|
+
type: "string",
|
|
37
|
+
description: "Branch name (optional, uses current branch if not provided)",
|
|
38
|
+
},
|
|
39
|
+
gitlabToken: {
|
|
40
|
+
type: "string",
|
|
41
|
+
description: "GitLab API token (optional, uses environment variable if not provided)",
|
|
42
|
+
},
|
|
43
|
+
gitlabUrl: {
|
|
44
|
+
type: "string",
|
|
45
|
+
description: "GitLab instance URL (optional, defaults to gitlab.com)",
|
|
46
|
+
},
|
|
47
|
+
repoPath: {
|
|
48
|
+
type: "string",
|
|
49
|
+
description: "Local repository path (optional, uses API if not provided)",
|
|
50
|
+
},
|
|
51
|
+
},
|
|
52
|
+
required: [],
|
|
53
|
+
},
|
|
54
|
+
},
|
|
55
|
+
{
|
|
56
|
+
name: "get_contributor_analysis",
|
|
57
|
+
description: "Get detailed contributor analysis for changed files in a merge request",
|
|
58
|
+
inputSchema: {
|
|
59
|
+
type: "object",
|
|
60
|
+
properties: {
|
|
61
|
+
project: {
|
|
62
|
+
type: ["string", "number"],
|
|
63
|
+
description: "GitLab project ID (e.g., 12345) or project path (e.g., 'group/project-name')",
|
|
64
|
+
},
|
|
65
|
+
mergeRequestIid: {
|
|
66
|
+
type: "number",
|
|
67
|
+
description: "Merge request internal ID",
|
|
68
|
+
},
|
|
69
|
+
gitlabToken: {
|
|
70
|
+
type: "string",
|
|
71
|
+
description: "GitLab API token (optional)",
|
|
72
|
+
},
|
|
73
|
+
gitlabUrl: {
|
|
74
|
+
type: "string",
|
|
75
|
+
description: "GitLab instance URL (optional)",
|
|
76
|
+
},
|
|
77
|
+
},
|
|
78
|
+
required: ["project", "mergeRequestIid"],
|
|
79
|
+
},
|
|
80
|
+
},
|
|
81
|
+
{
|
|
82
|
+
name: "get_reviewer_workload",
|
|
83
|
+
description: "Get current workload analysis for potential reviewers",
|
|
84
|
+
inputSchema: {
|
|
85
|
+
type: "object",
|
|
86
|
+
properties: {
|
|
87
|
+
project: {
|
|
88
|
+
type: ["string", "number"],
|
|
89
|
+
description: "GitLab project ID (e.g., 12345) or project path (e.g., 'group/project-name')",
|
|
90
|
+
},
|
|
91
|
+
gitlabToken: {
|
|
92
|
+
type: "string",
|
|
93
|
+
description: "GitLab API token (optional)",
|
|
94
|
+
},
|
|
95
|
+
gitlabUrl: {
|
|
96
|
+
type: "string",
|
|
97
|
+
description: "GitLab instance URL (optional)",
|
|
98
|
+
},
|
|
99
|
+
},
|
|
100
|
+
required: ["project"],
|
|
101
|
+
},
|
|
102
|
+
},
|
|
103
|
+
{
|
|
104
|
+
name: "post_comment",
|
|
105
|
+
description: "Post a comment to a GitLab merge request",
|
|
106
|
+
inputSchema: {
|
|
107
|
+
type: "object",
|
|
108
|
+
properties: {
|
|
109
|
+
project: {
|
|
110
|
+
type: ["string", "number"],
|
|
111
|
+
description: "GitLab project ID or path (optional in local git mode)",
|
|
112
|
+
},
|
|
113
|
+
mergeRequestIid: {
|
|
114
|
+
type: "number",
|
|
115
|
+
description: "Merge request internal ID (optional if branch provided)",
|
|
116
|
+
},
|
|
117
|
+
branch: {
|
|
118
|
+
type: "string",
|
|
119
|
+
description: "Branch name (optional)",
|
|
120
|
+
},
|
|
121
|
+
comment: {
|
|
122
|
+
type: "string",
|
|
123
|
+
description: "Comment text to post",
|
|
124
|
+
},
|
|
125
|
+
gitlabToken: {
|
|
126
|
+
type: "string",
|
|
127
|
+
description: "GitLab API token (optional)",
|
|
128
|
+
},
|
|
129
|
+
gitlabUrl: {
|
|
130
|
+
type: "string",
|
|
131
|
+
description: "GitLab instance URL (optional)",
|
|
132
|
+
},
|
|
133
|
+
repoPath: {
|
|
134
|
+
type: "string",
|
|
135
|
+
description: "Local repository path (optional)",
|
|
136
|
+
},
|
|
137
|
+
},
|
|
138
|
+
required: ["comment"],
|
|
139
|
+
},
|
|
140
|
+
},
|
|
141
|
+
{
|
|
142
|
+
name: "invite_reviewers",
|
|
143
|
+
description: "Suggest reviewers, post comment, and invite them to a GitLab merge request",
|
|
144
|
+
inputSchema: {
|
|
145
|
+
type: "object",
|
|
146
|
+
properties: {
|
|
147
|
+
project: {
|
|
148
|
+
type: ["string", "number"],
|
|
149
|
+
description: "GitLab project ID or path (optional in local git mode)",
|
|
150
|
+
},
|
|
151
|
+
mergeRequestIid: {
|
|
152
|
+
type: "number",
|
|
153
|
+
description: "Merge request internal ID (optional if branch provided)",
|
|
154
|
+
},
|
|
155
|
+
branch: {
|
|
156
|
+
type: "string",
|
|
157
|
+
description: "Branch name (optional)",
|
|
158
|
+
},
|
|
159
|
+
gitlabToken: {
|
|
160
|
+
type: "string",
|
|
161
|
+
description: "GitLab API token (optional)",
|
|
162
|
+
},
|
|
163
|
+
gitlabUrl: {
|
|
164
|
+
type: "string",
|
|
165
|
+
description: "GitLab instance URL (optional)",
|
|
166
|
+
},
|
|
167
|
+
repoPath: {
|
|
168
|
+
type: "string",
|
|
169
|
+
description: "Local repository path (optional)",
|
|
170
|
+
},
|
|
171
|
+
},
|
|
172
|
+
required: [],
|
|
173
|
+
},
|
|
174
|
+
},
|
|
175
|
+
];
|
|
176
|
+
//# sourceMappingURL=tools.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"tools.js","sourceRoot":"","sources":["../src/tools.ts"],"names":[],"mappings":"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"}
|