merge_pull_request
Combine changes from a Pull Request in Gitee repositories by specifying owner, repository, PR number, merge method, and branch deletion options.
Instructions
合并 Gitee 仓库中的 Pull Request
Input Schema
| Name | Required | Description | Default |
|---|---|---|---|
| merge_method | No | Merge method | merge |
| owner | Yes | Repository owner path (enterprise, organization, or personal path) | |
| prune_source_branch | No | Whether to delete the source branch after merging | |
| pull_number | Yes | Pull Request number | |
| repo | Yes | Repository path |
Input Schema (JSON Schema)
{
"$schema": "http://json-schema.org/draft-07/schema#",
"additionalProperties": false,
"properties": {
"merge_method": {
"default": "merge",
"description": "Merge method",
"enum": [
"merge",
"squash",
"rebase"
],
"type": "string"
},
"owner": {
"description": "Repository owner path (enterprise, organization, or personal path)",
"type": "string"
},
"prune_source_branch": {
"description": "Whether to delete the source branch after merging",
"type": "boolean"
},
"pull_number": {
"description": "Pull Request number",
"type": "number"
},
"repo": {
"description": "Repository path",
"type": "string"
}
},
"required": [
"owner",
"repo",
"pull_number"
],
"type": "object"
}
Implementation Reference
- operations/pulls.ts:177-190 (handler)The handler function that merges a pull request by making a PUT request to the Gitee API endpoint for merging.export async function mergePullRequest( owner: string, repo: string, pullNumber: number, options: Omit<MergePullRequestOptions, "owner" | "repo" | "pull_number"> ) { owner = validateOwnerName(owner); repo = validateRepositoryName(repo); const url = `/repos/${owner}/${repo}/pulls/${pullNumber}/merge`; const response = await giteeRequest(url, "PUT", options); return response; }
- operations/pulls.ts:86-97 (schema)Zod schema defining the input parameters for the merge_pull_request tool, including owner, repo, pull_number, merge_method, and prune_source_branch.export const MergePullRequestSchema = z.object({ // 仓库所属空间地址 (企业、组织或个人的地址 path) owner: z.string().describe("Repository owner path (enterprise, organization, or personal path)"), // 仓库路径 (path) repo: z.string().describe("Repository path"), // Pull Request 编号 pull_number: z.number().describe("Pull Request number"), // 合并方式 merge_method: z.enum(["merge", "squash", "rebase"]).default("merge").optional().describe("Merge method"), // 合并后是否删除源分支 prune_source_branch: z.boolean().optional().describe("Whether to delete the source branch after merging"), });
- index.ts:238-250 (registration)Registration of the merge_pull_request tool in the MCP server, linking the schema and delegating to the pullOperations.mergePullRequest handler.server.registerTool({ name: "merge_pull_request", description: "合并 Gitee 仓库中的 Pull Request", schema: pullOperations.MergePullRequestSchema, handler: async (params: any) => { const { owner, repo, pull_number, ...options } = params; // 确保必需参数存在 if (!owner || !repo || pull_number === undefined) { throw new Error("owner, repo 和 pull_number 参数是必需的"); } return await pullOperations.mergePullRequest(owner, repo, pull_number, options); }, });