Files
Adam Perry @ OpenAI a770e5b847 [codex] Ignore pending PR review comments (#27080)
## Why

The PR babysitter could surface inline comments from a GitHub review
that was still in the `PENDING` state. That allowed Codex to start
acting on feedback before the reviewer submitted it.

## What changed

- Correlate inline comments with their parent review and ignore pending
reviews and their comments.
- Remove pending review IDs from saved watcher state so the feedback
surfaces normally after publication.
- Update the skill instructions and add regression coverage for the
draft-to-published transition.

## Validation

- `python3 -m pytest
.codex/skills/babysit-pr/scripts/test_gh_pr_watch.py`
- Skill package validation with `quick_validate.py`
- Live verification on #26835: the draft comment stayed hidden and
surfaced after the review was submitted.
2026-06-09 08:29:32 -07:00

2.3 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

Use each inline comment's pull_request_review_id to find its parent review. Ignore parent reviews whose state is PENDING, along with their inline comments, until the review is submitted.

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