get_workflow_run_jobs
Retrieve jobs associated with a specific GitHub Actions workflow run by specifying the repository, owner, and run ID. Filter jobs by completion status or paginate results for efficient management.
Instructions
Get jobs for a specific workflow run
Input Schema
TableJSON Schema
| Name | Required | Description | Default |
|---|---|---|---|
| filter | No | Filter jobs by their completed_at date | |
| owner | Yes | Repository owner (username or organization) | |
| page | No | Page number for pagination | |
| perPage | No | Results per page (max 100) | |
| repo | Yes | Repository name | |
| runId | Yes | The ID of the workflow run |
Implementation Reference
- src/operations/actions.ts:195-214 (handler)The main asynchronous handler function that constructs the GitHub API URL for workflow run jobs, makes the request, and parses the response using 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, and optional pagination/filter params.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', linking the schema and delegating to the actions handler, formatting 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) }] }; } );