重构GitLab工具注册,优化Merge Request相关功能的实现

This commit is contained in:
zhangguoyun committed 2025-11-17 13:53:11 +08:00
1 parent b8401520df
commit 478a926676
1 file changed
+172 -172
+172 -172
View File
@@ -119,185 +119,185 @@ const gitlabApiClient = {
} }
}; };
// /** /**
// * 创建Merge Request工具 * 创建Merge Request工具
// */ */
// server.registerTool( server.registerTool(
// "create_merge_request", "create_merge_request",
// { {
// description: "在指定的GitLab项目中创建一个新的Merge Request", description: "在指定的GitLab项目中创建一个新的Merge Request",
// inputSchema: z.object({ inputSchema: z.object({
// projectId: z.string().describe("GitLab项目的ID或URL编码的路径"), projectId: z.string().describe("GitLab项目的ID或URL编码的路径"),
// sourceBranch: z.string().describe("源分支名称"), sourceBranch: z.string().describe("源分支名称"),
// targetBranch: z.string().describe("目标分支名称"), targetBranch: z.string().describe("目标分支名称"),
// title: z.string().describe("Merge Request的标题"), title: z.string().describe("Merge Request的标题"),
// description: z.string().optional().describe("Merge Request的描述"), description: z.string().optional().describe("Merge Request的描述"),
// assigneeId: z.number().optional().describe("负责人ID"), assigneeId: z.number().optional().describe("负责人ID"),
// reviewerIds: z.array(z.number()).optional().describe("审阅者ID数组"), reviewerIds: z.array(z.number()).optional().describe("审阅者ID数组"),
// }), }),
// }, },
// async ({ projectId, sourceBranch, targetBranch, title, description = "", assigneeId, reviewerIds }) => { async ({ projectId, sourceBranch, targetBranch, title, description = "", assigneeId, reviewerIds }) => {
// try { try {
// const result = await gitlabApiClient.createMergeRequest( const result = await gitlabApiClient.createMergeRequest(
// projectId, projectId,
// sourceBranch, sourceBranch,
// targetBranch, targetBranch,
// title, title,
// description, description,
// assigneeId, assigneeId,
// reviewerIds reviewerIds
// ); );
// return { return {
// content: [ content: [
// { {
// type: "text", type: "text",
// text: `成功创建Merge Request: ${result.web_url}\n标题: ${result.title}\n状态: ${result.state}`, text: `成功创建Merge Request: ${result.web_url}\n标题: ${result.title}\n状态: ${result.state}`,
// }, },
// ], ],
// }; };
// } catch (error) { } catch (error) {
// return { return {
// content: [ content: [
// { {
// type: "text", type: "text",
// text: `创建Merge Request失败: ${error.message}`, text: `创建Merge Request失败: ${error.message}`,
// }, },
// ], ],
// isError: true, isError: true,
// }; };
// } }
// } }
// ); );
// /** /**
// * 合并Merge Request工具 * 合并Merge Request工具
// */ */
// server.registerTool( server.registerTool(
// "merge_merge_request", "merge_merge_request",
// { {
// description: "合并指定的GitLab Merge Request", description: "合并指定的GitLab Merge Request",
// inputSchema: z.object({ inputSchema: z.object({
// projectId: z.string().describe("GitLab项目的ID或URL编码的路径"), projectId: z.string().describe("GitLab项目的ID或URL编码的路径"),
// mrIid: z.number().describe("Merge Request的内部ID"), mrIid: z.number().describe("Merge Request的内部ID"),
// mergeCommitMessage: z.string().optional().describe("合并提交的消息"), mergeCommitMessage: z.string().optional().describe("合并提交的消息"),
// shouldRemoveSourceBranch: z.boolean().optional().describe("是否在合并后删除源分支"), shouldRemoveSourceBranch: z.boolean().optional().describe("是否在合并后删除源分支"),
// mergeWhenPipelineSucceeds: z.boolean().optional().describe("是否在CI管道成功后合并"), mergeWhenPipelineSucceeds: z.boolean().optional().describe("是否在CI管道成功后合并"),
// }), }),
// }, },
// async ({ async ({
// projectId, projectId,
// mrIid, mrIid,
// mergeCommitMessage = "", mergeCommitMessage = "",
// shouldRemoveSourceBranch = false, shouldRemoveSourceBranch = false,
// mergeWhenPipelineSucceeds = false mergeWhenPipelineSucceeds = false
// }) => { }) => {
// try { try {
// const result = await gitlabApiClient.mergeMergeRequest( const result = await gitlabApiClient.mergeMergeRequest(
// projectId, projectId,
// mrIid, mrIid,
// mergeCommitMessage, mergeCommitMessage,
// shouldRemoveSourceBranch, shouldRemoveSourceBranch,
// mergeWhenPipelineSucceeds mergeWhenPipelineSucceeds
// ); );
// return { return {
// content: [ content: [
// { {
// type: "text", type: "text",
// text: `成功合并Merge Request #${mrIid}:\n状态: ${result.state}\n已合并时间: ${result.merged_at}`, text: `成功合并Merge Request #${mrIid}:\n状态: ${result.state}\n已合并时间: ${result.merged_at}`,
// }, },
// ], ],
// }; };
// } catch (error) { } catch (error) {
// return { return {
// content: [ content: [
// { {
// type: "text", type: "text",
// text: `合并Merge Request失败: ${error.message}`, text: `合并Merge Request失败: ${error.message}`,
// }, },
// ], ],
// isError: true, isError: true,
// }; };
// } }
// } }
// ); );
// /** /**
// * 获取Merge Request详情工具 * 获取Merge Request详情工具
// */ */
// server.registerTool( server.registerTool(
// "get_merge_request", "get_merge_request",
// { {
// description: "获取指定Merge Request的详细信息", description: "获取指定Merge Request的详细信息",
// inputSchema: z.object({ inputSchema: z.object({
// projectId: z.string().describe("GitLab项目的ID或URL编码的路径"), projectId: z.string().describe("GitLab项目的ID或URL编码的路径"),
// mrIid: z.number().describe("Merge Request的内部ID"), mrIid: z.number().describe("Merge Request的内部ID"),
// }), }),
// }, },
// async ({ projectId, mrIid }) => { async ({ projectId, mrIid }) => {
// try { try {
// const result = await gitlabApiClient.getMergeRequest(projectId, mrIid); const result = await gitlabApiClient.getMergeRequest(projectId, mrIid);
// return { return {
// content: [ content: [
// { {
// type: "text", type: "text",
// text: `Merge Request #${mrIid} 详情:\n标题: ${result.title}\n作者: ${result.author.name}\n状态: ${result.state}\n源分支: ${result.source_branch}\n目标分支: ${result.target_branch}\n创建时间: ${result.created_at}\n更新时间: ${result.updated_at}`, text: `Merge Request #${mrIid} 详情:\n标题: ${result.title}\n作者: ${result.author.name}\n状态: ${result.state}\n源分支: ${result.source_branch}\n目标分支: ${result.target_branch}\n创建时间: ${result.created_at}\n更新时间: ${result.updated_at}`,
// }, },
// ], ],
// }; };
// } catch (error) { } catch (error) {
// return { return {
// content: [ content: [
// { {
// type: "text", type: "text",
// text: `获取Merge Request详情失败: ${error.message}`, text: `获取Merge Request详情失败: ${error.message}`,
// }, },
// ], ],
// isError: true, isError: true,
// }; };
// } }
// } }
// ); );
// /** /**
// * 关闭Merge Request工具 * 关闭Merge Request工具
// */ */
// server.registerTool( server.registerTool(
// "close_merge_request", "close_merge_request",
// { {
// description: "关闭指定的GitLab Merge Request而不合并", description: "关闭指定的GitLab Merge Request而不合并",
// inputSchema: z.object({ inputSchema: z.object({
// projectId: z.string().describe("GitLab项目的ID或URL编码的路径"), projectId: z.string().describe("GitLab项目的ID或URL编码的路径"),
// mrIid: z.number().describe("Merge Request的内部ID"), mrIid: z.number().describe("Merge Request的内部ID"),
// }), }),
// }, },
// async ({ projectId, mrIid }) => { async ({ projectId, mrIid }) => {
// try { try {
// const result = await gitlabApiClient.closeMergeRequest(projectId, mrIid); const result = await gitlabApiClient.closeMergeRequest(projectId, mrIid);
// return { return {
// content: [ content: [
// { {
// type: "text", type: "text",
// text: `成功关闭Merge Request #${mrIid}:\n标题: ${result.title}\n当前状态: ${result.state}`, text: `成功关闭Merge Request #${mrIid}:\n标题: ${result.title}\n当前状态: ${result.state}`,
// }, },
// ], ],
// }; };
// } catch (error) { } catch (error) {
// return { return {
// content: [ content: [
// { {
// type: "text", type: "text",
// text: `关闭Merge Request失败: ${error.message}`, text: `关闭Merge Request失败: ${error.message}`,
// }, },
// ], ],
// isError: true, isError: true,
// }; };
// } }
// } }
// ); );
server.registerTool( server.registerTool(