mirror of
https://github.com/openai/codex.git
synced 2026-05-03 10:56:37 +00:00
## 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`
83 lines
2.1 KiB
Markdown
83 lines
2.1 KiB
Markdown
# 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.
|
|
|
|
## Review-related endpoints
|
|
|
|
- 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`
|