create_milestone
Create a new milestone in GitHub Projects to organize tasks, track progress, and set deadlines for project phases.
Instructions
Create a new milestone
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| title | Yes | ||
| description | Yes | ||
| dueDate | No |
Implementation Reference
- Main handler function that executes the create_milestone tool logic by calling the GitHubMilestoneRepository.create method.async createMilestone(data: { title: string; description: string; dueDate?: string; }): Promise<Milestone> { try { const milestoneData: CreateMilestone = { title: data.title, description: data.description, dueDate: data.dueDate, }; return await this.milestoneRepo.create(milestoneData); } catch (error) { throw this.mapErrorToMCPError(error); } }
- Zod schema defining input validation for create_milestone tool.// Schema for create_milestone tool export const createMilestoneSchema = z.object({ title: z.string().min(1, "Milestone title is required"), description: z.string().min(1, "Milestone description is required"), dueDate: z.string().datetime("Due date must be a valid ISO date string").optional(), }); export type CreateMilestoneArgs = z.infer<typeof createMilestoneSchema>;
- src/infrastructure/tools/ToolRegistry.ts:202-202 (registration)Registers the createMilestoneTool in the central ToolRegistry singleton.this.registerTool(createMilestoneTool);
- src/index.ts:287-288 (handler)MCP tool dispatch handler that routes create_milestone calls to ProjectManagementService.createMilestonecase "create_milestone": return await this.service.createMilestone(args);
- ToolDefinition object that defines the create_milestone tool including name, description, schema, and examples.export const createMilestoneTool: ToolDefinition<CreateMilestoneArgs> = { name: "create_milestone", description: "Create a new milestone", schema: createMilestoneSchema as unknown as ToolSchema<CreateMilestoneArgs>, examples: [ { name: "Create milestone with due date", description: "Create a milestone with title, description and due date", args: { title: "Beta Release", description: "Complete all features for beta release", dueDate: "2025-06-30T00:00:00Z" } } ] };