get_workflow_run_jobs
Retrieve job details for a specific GitHub Actions workflow run to monitor execution status and analyze performance.
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| owner | Yes | Repository owner (username or organization) | |
| repo | Yes | Repository name | |
| runId | Yes | The ID of the workflow run | |
| filter | No | Filter jobs by their completed_at date | |
| page | No | Page number for pagination | |
| perPage | No | Results per page (max 100) |
Implementation Reference
- src/operations/actions.ts:195-214 (handler)The main handler function that fetches jobs for a specific GitHub Actions workflow run using the GitHub API. Validates inputs, builds the API URL, makes the request, and parses the response with JobsSchema.export async function getWorkflowRunJobs( owner: string, repo: string, runId: number, filter?: 'latest' | 'all', page?: number, perPage?: number ) { owner = validateOwnerName(owner); repo = validateRepositoryName(repo); const url = buildUrl(`https://api.github.com/repos/${owner}/${repo}/actions/runs/${runId}/jobs`, { filter: filter, page: page, per_page: perPage }); const response = await githubRequest(url); return JobsSchema.parse(response); }
- src/operations/actions.ts:58-65 (schema)Zod schema defining the input parameters for the get_workflow_run_jobs tool, including owner, repo, runId, optional filter, page, and perPage.export const GetWorkflowRunJobsSchema = z.object({ owner: z.string().describe("Repository owner (username or organization)"), repo: z.string().describe("Repository name"), runId: z.number().describe("The ID of the workflow run"), filter: z.enum(['latest', 'all']).optional().describe("Filter jobs by their completed_at date"), page: z.number().optional().describe("Page number for pagination"), perPage: z.number().optional().describe("Results per page (max 100)"), });
- src/index.ts:196-204 (registration)MCP server tool registration for 'get_workflow_run_jobs'. Uses the schema from actions and a thin wrapper that calls the handler function and formats the response as MCP content.server.tool( "get_workflow_run_jobs", actions.GetWorkflowRunJobsSchema.shape, async (request: any) => { const { owner, repo, runId, filter, page, perPage } = request; const result = await actions.getWorkflowRunJobs(owner, repo, runId, filter, page, perPage); return { content: [{ type: "text", text: JSON.stringify(result) }] }; } );