Skip to main content
Glama
kurdin

GitHub Repos Manager MCP Server

milestones.cjs3.69 kB
// src/formatters/milestones.cjs function formatListMilestonesOutput(milestones, owner, repo, state) { if (!Array.isArray(milestones)) { return { content: [ { type: "text", text: `Error: Could not retrieve ${state} milestones for ${owner}/${repo}.`, }, ], isError: true, }; } if (milestones.length === 0) { return { content: [ { type: "text", text: `No ${state} milestones found in ${owner}/${repo}`, }, ], }; } const formatted = milestones .map( (milestone) => `**${milestone.title}** (#${milestone.number})\n` + `State: ${milestone.state}\n` + `Description: ${milestone.description || "No description"}\n` + `Due: ${ milestone.due_on ? new Date(milestone.due_on).toLocaleDateString() : "No due date" }\n` + `Progress: ${milestone.closed_issues}/${ milestone.closed_issues + milestone.open_issues } issues closed\n` + `Created: ${new Date(milestone.created_at).toLocaleDateString()}\n` + `URL: ${milestone.html_url}` ) .join("\n\n"); return { content: [ { type: "text", text: `Found ${milestones.length} ${state} milestones in ${owner}/${repo}:\n\n${formatted}`, }, ], }; } function formatCreateMilestoneOutput(milestone, owner, repo) { if (!milestone || typeof milestone !== "object" || !milestone.number) { return { content: [ { type: "text", text: `Error: Could not create milestone in ${owner}/${repo}.`, }, ], isError: true, }; } return { content: [ { type: "text", text: `Created milestone "${milestone.title}" (#${milestone.number}) in ${owner}/${repo}:\n` + `State: ${milestone.state}\n` + `Description: ${milestone.description || "No description"}\n` + `Due: ${ milestone.due_on ? new Date(milestone.due_on).toLocaleDateString() : "No due date" }\n` + `URL: ${milestone.html_url}`, }, ], }; } function formatEditMilestoneOutput(updatedMilestone, owner, repo) { if ( !updatedMilestone || typeof updatedMilestone !== "object" || !updatedMilestone.number ) { return { content: [ { type: "text", text: `Error: Could not update milestone in ${owner}/${repo}.`, }, ], isError: true, }; } return { content: [ { type: "text", text: `Updated milestone "${updatedMilestone.title}" (#${updatedMilestone.number}) in ${owner}/${repo}:\n` + `State: ${updatedMilestone.state}\n` + `Description: ${updatedMilestone.description || "No description"}\n` + `Due: ${ updatedMilestone.due_on ? new Date(updatedMilestone.due_on).toLocaleDateString() : "No due date" }\n` + `Progress: ${updatedMilestone.closed_issues}/${ updatedMilestone.closed_issues + updatedMilestone.open_issues } issues closed\n` + `URL: ${updatedMilestone.html_url}`, }, ], }; } function formatDeleteMilestoneOutput(milestone_number, owner, repo) { return { content: [ { type: "text", text: `Successfully deleted milestone #${milestone_number} from ${owner}/${repo}`, }, ], }; } module.exports = { formatListMilestonesOutput, formatCreateMilestoneOutput, formatEditMilestoneOutput, formatDeleteMilestoneOutput, };

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/kurdin/github-repos-manager-mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server