list_sprints
Retrieve and filter sprints in an Alibaba Cloud DevOps project to track development progress and manage project timelines effectively.
Instructions
[Project Management] List sprints in a project
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| organizationId | Yes | Organization ID | |
| id | Yes | Project unique identifier | |
| status | No | Filter by status: TODO, DOING, ARCHIVED | |
| page | No | Page number | |
| perPage | No | Page size |
Implementation Reference
- Tool handler for 'list_sprints': parses input arguments using ListSprintsSchema, calls the listSprintsFunc helper, and returns the result as a JSON-formatted text response.case "list_sprints": { const args = types.ListSprintsSchema.parse(request.params.arguments); const sprints = await sprint.listSprintsFunc( args.organizationId, args.id, args.status, args.page, args.perPage ); return { content: [{ type: "text", text: JSON.stringify(sprints, null, 2) }], }; }
- operations/projex/sprint.ts:26-60 (helper)Core implementation of listing sprints: constructs API URL with query params for organization, project ID, status filter, pagination; makes GET request to Yunxiao API and parses response using SprintInfoSchema.export async function listSprintsFunc( organizationId: string, id: string, status?: string[], page?: number, perPage?: number ): Promise<z.infer<typeof SprintInfoSchema>[]> { const baseUrl = `/oapi/v1/projex/organizations/${organizationId}/projects/${id}/sprints`; const queryParams: Record<string, string | number | undefined> = {}; if (status !== undefined && status.length > 0) { queryParams.status = status.join(','); } if (page !== undefined) { queryParams.page = page; } if (perPage !== undefined) { queryParams.perPage = perPage; } const url = buildUrl(baseUrl, queryParams); const response = await yunxiaoRequest(url, { method: "GET", }); if (!Array.isArray(response)) { return []; } return response.map(sprint => SprintInfoSchema.parse(sprint)); }
- operations/projex/types.ts:94-100 (schema)Zod input schema for list_sprints tool defining required organizationId and project id, optional status filter, page, and perPage parameters.export const ListSprintsSchema = z.object({ organizationId: z.string().describe("Organization ID"), id: z.string().describe("Project unique identifier"), status: z.array(z.string()).optional().describe("Filter by status: TODO, DOING, ARCHIVED"), page: z.number().int().min(1).optional().describe("Page number"), perPage: z.number().int().min(1).max(100).optional().describe("Page size"), });
- tool-registry/project-management.ts:24-28 (registration)Tool registration entry defining the name, description, and input schema reference for the 'list_sprints' tool.{ name: "list_sprints", description: "[Project Management] List sprints in a project", inputSchema: zodToJsonSchema(types.ListSprintsSchema), },