Skip to content

ci: write Review only when it changes - #29

Merged
silveltman merged 2 commits into
mainfrom
fix/ready-review-status-limit
Oct 30, 2026
Merged

silveltman merged 2 commits into
mainfrom
fix/ready-review-status-limit

Conversation

@silveltman

@silveltman silveltman commented Oct 30, 2026 •

Copy link
Copy Markdown
Contributor

Fixes the recurring Ready failures in fulldotdev/fulldev#606.

Cause. Every Ready event reconciles every open PR. For each ready PR the script wrote a pending Review before its checks and a success after them, so two statuses per PR per event, whichever PR or commit the event was about. In fulldev, Dependabot PR fulldotdev/fulldev#544 reached GitHub's limit of 1000 statuses per commit and context on 27 October at 18:10 UTC. Since then GitHub rejects every Review write on it (This SHA and context has reached the maximum number of statuses.), and every Ready run in the repository fails on that PR, whatever branch triggered it. fulldotdev/fulldev#501 is at 362.

Fix.

  • The pending before checking is written only when the event concerns the PR itself, such as a Test rerun of its head. Events about other PRs and main write Review only when it changes.
  • A failed read during the checks still sets pending, and so does a PR that changes while it is checked, so an old success never stays in force.

Checks

  • node --test tests/*.test.mjs: 53 passed. The two new tests fail on main.
  • Read-only dry run of the old and new script against fulldev's open PRs, with writes recorded instead of sent: the old script writes two statuses per ready PR on every event, the new one writes none for other PRs' events, with the same outcome per PR.
  • Independent review: two findings (an old success during a rerun of the PR's own head, and during a mid-check change), both fixed.

After merge, callers need to pin the merged revision; fulldev gets that in its own PR.

🤖 Generated with Claude Code

Every Ready event reconciles every open PR, and each run wrote a pending
Review before its checks and a success after them. A long-lived ready PR
reached GitHub's limit of 1000 statuses per commit and context, after which
every Ready run in the repository failed on that PR.

A failed read still revokes a previous success.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@silveltman
silveltman marked this pull request as ready for review October 30, 2026 14:37
An event about this PR, such as a Test rerun of its head, still writes
pending before checking. A PR that changes while it is checked loses an
old success.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@silveltman
silveltman merged commit 13d33d1 into main Oct 30, 2026
3 checks passed
@silveltman
silveltman deleted the fix/ready-review-status-limit branch October 30, 2026 14:44
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