Repository navigation
ci: classic API guard reads changed paths from the merge ref when REST is rate-limited - #35202
Conversation
…e-limited The guard's REST file listing failed with 'API rate limit exceeded for installation' on every PR since 09:10Z. Fall back to the PR's merge ref (depth 2, blobless, --no-renames); if that also fails, warn into feat-cmux-next (warn-only there) and fail into main. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
Bugbot needs on-demand usage enabledBugbot uses usage-based billing for this team and requires on-demand usage to be enabled. A team admin can enable on-demand usage in the Cursor dashboard. |
|
cmux status (one comment, edited in place; each line is updated by the job that owns it) Review App of this head (app.zip, kept 1 day)
red: cmux-next checks (god files, concurrency, crash safety, l10n); no finished base run on 9d33307 to compare; do not merge until green; see lane-rules Shipped in:
|
|
Owned by an agent session · session |
|
Review (subagent opus medium): SHIP at 48f1472 Checked set -e/pipefail behavior (every failure is inside an if), the git auth header form, that a partial paths.txt is overwritten, that --expected-files still matches (renames give two lines both ways), that no PR code runs, and that into main every failure path exits 1. Follow-ups:
|
|
Found 2 test failures on Blacksmith runners: Failures
|
|
Review (codex gpt-6.1-sol xhigh, via router-review; carried because its --post hit a spent REST quota): SHIP at 48f1472 Visual verdict: no images; Leo tries the build Checked the fallback's shell/Git behavior and the classic guard tests; no actionable correctness, security, or reliability issues found. Follow-ups: none |
teamleaderleo
left a comment
There was a problem hiding this comment.
Review (codex gpt-6.1-sol xhigh, next-review, since=20261104T101555Z): SHIP at 48f1472
SHIP at 48f1472
Visual verdict: unchanged by this diff
- [P2] [follow-up] [category:reliability] [finding:F1] [outcome:pending] Lines 68–70 fetch the mutable
refs/pull/$PR/mergeinstead of the event’s merge SHA. If the PR or base changes during an old run, the fallback can compare a different merge against the checked-out base and classify the wrong paths. Pin the fetch togithub.shaand verify its second parent matches the event head.
Follow-ups:
- [P2] [follow-up] [category:reliability] [finding:F1] [outcome:pending] Pin the fallback to the event’s merge SHA and verify its parent.
…d-clippy-classic-guard # Conflicts: # .github/workflows/classic-api-guard.yml
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Agent-Session: https://cmux.com/deeplink/agent?id=aid-d750cf10922c785efa64
![Fix with [code]smith](https://pr-comments-assets.blacksmith.sh/codesmith/fix-with-codesmith-light-3x.png)
Summary
Base red:
classic API guard / classic-api-guardfails on every PR intofeat-cmux-nextsince about 09:10Z (#34711, #35173, #35174, #35175, #35178). The guard (added by #35126) lists the PR's files over REST, and that call fails withgh: API rate limit exceeded for installation (HTTP 403), so the step exits 1 before the guard runs.When the REST listing fails, the step now reads the changed paths from
refs/pull/N/mergeinstead: a depth-2 blobless fetch, thengit diff --name-only --no-renames merge^1 merge. Its first parent is the base, so the diff is what the PR changes, and--no-renameslists a rename as both its old and new path, as the REST listing did. If that fails too (no merge ref, e.g. a conflicting PR), it warns and passes intofeat-cmux-next, where the guard only warns anyway, and still fails intomain.Testing
refs/pull/35174/mergelisted 6 paths. acpmux: wait for live daemon peers #35174 changes 6 files.python3 tests/test_classic_api_guard.py(13 OK),tests/test_ci_guard_workflow_structure.py,tests/test_ci_runs_on_values.py,actionlinton the workflow: all pass.Observed / Not run
Observed: the commands above. Not run: a live run where REST fails. The workflow runs from the PR's own copy, so this PR's own check runs the new step.
Changelog
none
Agent session: agent session
🤖 Generated with Claude Code
Open in [code]smith · Need help on this PR? Tag
@codesmith-botwith what you need.Summary by cubic
Fixes the classic API guard so it no longer fails on every PR into
feat-cmux-nextwhen the REST file listing hits the installation rate limit (HTTP 403).refs/pull/N/mergeusing a depth-2 blobless fetch andgit diff --name-only --no-renames.feat-cmux-next(where the guard only warns) but still fails intomain.Written for commit 5044fdd. Summary will update on new commits.