create_group_milestone
Create milestones in GitLab groups to track project progress, set deadlines, and organize work across multiple projects.
Instructions
Create a new milestone in a GitLab group
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| group_id | Yes | Group ID or URL-encoded path | |
| title | Yes | The title of the milestone | |
| description | No | The description of the milestone | |
| due_date | No | The due date of the milestone (YYYY-MM-DD) | |
| start_date | No | The start date of the milestone (YYYY-MM-DD) |
Implementation Reference
- src/api/group-milestones.ts:41-65 (handler)The actual implementation of the 'create_group_milestone' tool.
export async function createGroupMilestone( groupId: string, title: string, description?: string, dueDate?: string, startDate?: string ): Promise<GitLabGroupMilestoneResponse> { if (!groupId?.trim()) { throw new Error("Group ID is required"); } if (!title?.trim()) { throw new Error("Milestone title is required"); } const endpoint = `/groups/${encodeURIComponent(groupId)}/milestones`; const milestone = await gitlabPost<GitLabGroupMilestoneResponse>(endpoint, { title, description, due_date: dueDate, start_date: startDate }); return GitLabGroupMilestoneSchema.parse(milestone); } - src/schemas.ts:367-373 (schema)Input schema definition for the create_group_milestone tool.
export const CreateGroupMilestoneSchema = z.object({ group_id: z.string().describe("Group ID or URL-encoded path"), title: z.string().describe("The title of the milestone"), description: z.string().optional().describe("The description of the milestone"), due_date: z.string().optional().describe("The due date of the milestone (YYYY-MM-DD)"), start_date: z.string().optional().describe("The start date of the milestone (YYYY-MM-DD)") }); - src/server.ts:365-367 (registration)Tool registration and handler invocation in the MCP server.
case "create_group_milestone": { const args = CreateGroupMilestoneSchema.parse(request.params.arguments); const milestone = await api.createGroupMilestone(