feat(actions): add get_workflow_run_logs read tool (#8)#92
Merged
Conversation
Returns the pre-signed archive download URL via `redirect: "manual"` so the zip body is never fetched into the Worker — mirrors the metadata-only convention established by get_artifact.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
Adds the remaining read tool from the Phase 2 list of #8:
get_workflow_run_logs, which surfaces a workflow run's full log archive (a zip of every job's logs).What it does
Returns the archive's short-lived download URL plus a pointer to
get_job_logsfor inline single-job reading. It reads theLocationheader from GitHub's 302 withredirect: "manual", so the zip body is never downloaded or unpacked in the Worker — the same metadata-only conventionget_artifactuses. This complements the existingget_job_logs(single-job inline text): run logs answer "give me the whole archive", job logs answer "why did this job fail".Per GitHub's documented responses for this endpoint, logs for an expired run return 410 Gone, and an account without sufficient repository access returns 403 ("Must have admin rights"); both surface as a clean error result via
wrapTool.Test plan
CI already runs type-check, lint, and the unit suite — not repeated here.
redirect: "manual"request route/params and rendered Markdown) + empty-Locationfallback messagenemolize/remote-mcp-github): the handler returns a 302Locationarchive URL for recent runs, with the zip body left unfetched (redirect: "manual")