Repository navigation
Stop reuse self-tests posting fake CI notices - #1634
Conversation
The fallback tests for ci-reuse-merge-group.py and ci-reuse-pr-head.py let the scripts print their real "::notice::Could not verify merge-queue CI (...)" lines to stdout. lint-ecosystems runs those tests in a GitHub job, so every run on PRs, the merge queue and main gained ten fake annotations claiming the reuse check had failed. They fill the step's ten-notice cap and send anyone debugging a reuse decision down the wrong path. Capture stdout in those cases and assert that the notice is printed. The fallback path is now checked, not just silenced. Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01SeHhBxEvePf8ERTaTTenMK
|
bugbot run Generated by Claude Code |
There was a problem hiding this comment.
✅ Bugbot reviewed your changes and found no new issues!
Comment @cursor review or bugbot run to trigger another review on this PR
Reviewed by Cursor Bugbot for commit 564c31a. Configure here.
|
Labeled Ready for review (burn-down agent).
Slack announcement not sent this run (the Slack send tool was unavailable). The next run will retry. Generated by Claude Code |
|
The merge queue removed this PR at 17:49 UTC because
Cause: uv 0.13.2 (released 2026-10-19) rejects the #1639 pins setup-uv to 0.13.1 and fixes this. I'm not porting the pin here, so the fix doesn't land twice. Once #1639 merges, this PR can go back in the queue unchanged, and its approval still stands. Generated by Claude Code |
|
[final reviewer] Re-added to the merge queue (squash, auto-merge) at Generated by Claude Code |
Problem
Every
lint-ecosystemsrun (PR, merge queue and main push) posts 10 fake notice annotations, for example on main's latest push run (check run 117423824414 at 7d3086f):Nothing failed. The reuse scripts never run in that job. These lines come from the job's
python3 -B -m unittest discover -s scripts/testsstep: the fallback self-tests letci-reuse-merge-group.pyandci-reuse-pr-head.pyprint their real::notice::workflow commands to stdout, and GitHub turns those lines into annotations. A local run of the suite prints 15 of them, and GitHub keeps 10 (its per-step cap).The harm:
CI is otherwise healthy this run: the merge queue is empty, nothing is queued or running, main is green, and the only failed run in 3 days (38806080761) was fixed by that PR's next push. So this falls under priority 4 (make CI more robust).
Root cause
test_api_failure_timeout_and_bad_payload_*inscripts/tests/test_ci_reuse_merge_group.pyandscripts/tests/test_ci_reuse_pr_head.pycallreusable_runon its error path without capturing stdout.Fix
A small
assert_falls_backhelper in each test file. It runsreusable_runundercontextlib.redirect_stdout, asserts that the result isNone(unchanged), and also asserts that the::notice::fallback line was printed. The fallback is now checked, not just silenced. No production script or workflow changes.Proof
python3 -B -m unittest discover -s scripts/tests: 347 tests, OK (6 skipped). Lines starting with::in stdout went from 15 to 0.::notice::fromci-reuse-merge-group.pymakes the new assertion fail 7 subtests.Removed or moved tests
None. Every test still runs in the same place (
lint-ecosystems).https://claude.ai/code/session_01SeHhBxEvePf8ERTaTTenMK
Generated by Claude Code