重构GitLab工具注册,优化Merge Request相关功能的实现
This commit is contained in:
1 parent
b8401520df
commit
478a926676
1 file changed
+172
-172
+172
-172
@@ -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(
|
||||||
|
|||||||
Reference in new issue
Block a user