Files
codex/.codex/skills/babysit-pr/references/github-api-notes.md
Tom c39824c2fd [codex] Improve PR babysitter CI diagnostics and guardrails (#20484)
## Summary

- Surface failed GitHub Actions jobs in the PR babysitter watcher so
Codex can fetch job logs as soon as a job fails, instead of waiting for
the overall workflow run to complete.
- Update babysit-pr skill instructions, GitHub API notes, and heuristics
to prefer direct job log archives before falling back to `gh run view
--log-failed`.
- Add guardrails requiring explicit user confirmation before posting
replies to human-authored review comments.
- Add guardrails preventing Codex from patching unrelated flaky tests,
CI infrastructure, runner issues, dependency outages, or other failures
not caused by the PR branch.

## Validation

- `python3 -m pytest
.codex/skills/babysit-pr/scripts/test_gh_pr_watch.py`
2026-04-30 19:58:19 -07:00

2.1 KiB

GitHub CLI / API Notes For babysit-pr

Primary commands used

PR metadata

  • gh pr view --json number,url,state,mergedAt,closedAt,headRefName,headRefOid,headRepository,headRepositoryOwner

Used to resolve PR number, URL, branch, head SHA, and closed/merged state.

PR checks summary

  • gh pr checks --json name,state,bucket,link,workflow,event,startedAt,completedAt

Used to compute pending/failed/passed counts and whether the current CI round is terminal.

Workflow runs for head SHA

  • gh api repos/{owner}/{repo}/actions/runs -X GET -f head_sha=<sha> -f per_page=100

Used to discover failed workflow runs and rerunnable run IDs.

Failed log inspection

  • gh run view <run-id> --json jobs,name,workflowName,conclusion,status,url,headSha
  • gh api repos/{owner}/{repo}/actions/runs/{run_id}/jobs -X GET -f per_page=100
  • gh api repos/{owner}/{repo}/actions/jobs/{job_id}/logs > /tmp/codex-gh-job-{job_id}-logs.zip
  • gh run view <run-id> --log-failed

Used by Codex to classify branch-related vs flaky/unrelated failures. Prefer the direct job log endpoint as soon as a job has failed because gh run view --log-failed may not produce failed-job logs until the overall workflow run completes.

Retry failed jobs only

  • gh run rerun <run-id> --failed

Reruns only failed jobs (and dependencies) for a workflow run.

  • Issue comments on PR:
    • gh api repos/{owner}/{repo}/issues/<pr_number>/comments?per_page=100
  • Inline PR review comments:
    • gh api repos/{owner}/{repo}/pulls/<pr_number>/comments?per_page=100
  • Review submissions:
    • gh api repos/{owner}/{repo}/pulls/<pr_number>/reviews?per_page=100

JSON fields consumed by the watcher

gh pr view

  • number
  • url
  • state
  • mergedAt
  • closedAt
  • headRefName
  • headRefOid

gh pr checks

  • bucket (pass, fail, pending, skipping)
  • state
  • name
  • workflow
  • link

Actions runs API (workflow_runs[])

  • id
  • name
  • status
  • conclusion
  • html_url
  • head_sha

Actions run jobs API (jobs[])

  • id
  • name
  • status
  • conclusion
  • html_url