delete-repository
Permanently remove a GitHub Enterprise repository by specifying the owner and repository name. Requires confirmation to execute deletion.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | Repository owner | |
| repo | Yes | Repository name | |
| confirm | Yes | Confirmation for deletion (must be true) |
Implementation Reference
- server/index.ts:1109-1165 (handler)The MCP tool handler for 'delete-repository'. Validates owner and repo parameters, requires confirm=true flag for safety, calls the repository API's deleteRepository method, and returns success or error response in MCP format.async ({ owner, repo, confirm }) => { try { // Parameter validation if (!owner || typeof owner !== 'string' || owner.trim() === '') { return { content: [ { type: "text", text: "Repository owner is required." } ] }; } if (!repo || typeof repo !== 'string' || repo.trim() === '') { return { content: [ { type: "text", text: "Repository name is required." } ] }; } if (!confirm) { return { content: [ { type: "text", text: "You must set 'confirm' to true to delete a repository. This action is irreversible." } ] }; } await context.repository.deleteRepository(owner, repo); return { content: [ { type: "text", text: `Successfully deleted repository: ${owner}/${repo}` } ] }; } catch (error: any) { return { content: [ { type: "text", text: `Error deleting repository: ${error.message}` } ] }; } }
- server/index.ts:1104-1107 (schema)Zod input schema defining parameters for the delete-repository tool: owner (string), repo (string), confirm (boolean required for safety).{ owner: z.string().min(1).describe("Repository owner"), repo: z.string().min(1).describe("Repository name"), confirm: z.boolean().describe("Confirmation for deletion (must be true)")
- server/index.ts:1102-1166 (registration)MCP server.tool registration for the 'delete-repository' tool, specifying the tool name, input schema, and handler function.server.tool( "delete-repository", { owner: z.string().min(1).describe("Repository owner"), repo: z.string().min(1).describe("Repository name"), confirm: z.boolean().describe("Confirmation for deletion (must be true)") }, async ({ owner, repo, confirm }) => { try { // Parameter validation if (!owner || typeof owner !== 'string' || owner.trim() === '') { return { content: [ { type: "text", text: "Repository owner is required." } ] }; } if (!repo || typeof repo !== 'string' || repo.trim() === '') { return { content: [ { type: "text", text: "Repository name is required." } ] }; } if (!confirm) { return { content: [ { type: "text", text: "You must set 'confirm' to true to delete a repository. This action is irreversible." } ] }; } await context.repository.deleteRepository(owner, repo); return { content: [ { type: "text", text: `Successfully deleted repository: ${owner}/${repo}` } ] }; } catch (error: any) { return { content: [ { type: "text", text: `Error deleting repository: ${error.message}` } ] }; } } );
- api/repos/repository.ts:78-82 (helper)Helper method in RepositoryAPI class that performs the actual GitHub API DELETE request to remove the specified repository.* Delete repository */ async deleteRepository(owner: string, repo: string): Promise<void> { await this.client.delete(`repos/${owner}/${repo}`); }