Skip to content

feat(actions): add get_workflow_run_logs read tool (#8)#92

Merged
nemolize merged 1 commit into
mainfrom
feat/actions-get-workflow-run-logs
Jun 10, 2026
Merged

feat(actions): add get_workflow_run_logs read tool (#8)#92
nemolize merged 1 commit into
mainfrom
feat/actions-get-workflow-run-logs

Conversation

@nemolize

@nemolize nemolize commented Jun 10, 2026

Copy link
Copy Markdown
Owner

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_logs for inline single-job reading. It reads the Location header from GitHub's 302 with redirect: "manual", so the zip body is never downloaded or unpacked in the Worker — the same metadata-only convention get_artifact uses. This complements the existing get_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.

  • Unit tests: URL capture (asserts the redirect: "manual" request route/params and rendered Markdown) + empty-Location fallback message
  • Live verified against the real API (nemolize/remote-mcp-github): the handler returns a 302 Location archive URL for recent runs, with the zip body left unfetched (redirect: "manual")

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.
@nemolize nemolize merged commit e89c299 into main Jun 10, 2026
4 checks passed
@nemolize nemolize deleted the feat/actions-get-workflow-run-logs branch June 10, 2026 15:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant