Add get_pull_request_ci_failures tool to retrieve failed CI job logs for PRs #1527
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
Summary
This PR adds a new tool
get_pull_request_ci_failuresthat allows AI agents to automatically find and retrieve CI failure logs for a pull request without manual copy-pasting from the GitHub web UI.Use Case
When working with AI coding assistants like Cursor, GitHub Copilot, or Claude, a common workflow is:
This significantly improves the developer experience by eliminating the tedious copy-paste cycle when debugging CI failures.
Features
return_contentparameter)tail_linesparameter to limit log output (default: 500 lines)Implementation Details
GetPullRequestCIFailuresfunction inpkg/github/actions.gogetFailedJobsForRunto collect failed job logs for a workflow rungetJobLogDatafunction for log retrievalpull_requests(default toolset) andactionstoolsetspkg/github/actions_test.goTool Schema
{ "name": "get_pull_request_ci_failures", "description": "Get failed CI workflow job logs for a pull request...", "inputSchema": { "required": ["owner", "repo", "pullNumber"], "properties": { "owner": { "type": "string" }, "repo": { "type": "string" }, "pullNumber": { "type": "number" }, "return_content": { "type": "boolean", "default": true }, "tail_lines": { "type": "number", "default": 500 } } } }Testing
Checklist
go test ./...)script/lint)script/generate-docs)