ci: run the Testbox broker guard on every pull request - #10305
Conversation
The main CI suite is dispatch-only while CI is paused, so tests/test_ci_testbox_broker_guard.py would not have run on a pull request that weakened the lane it guards. Give it a small always-on workflow that also shellchecks the four helper scripts and actionlints the warmup workflow with a checksum-pinned actionlint. No path filter, deliberately. A change that moves or renames the guard is exactly the change a path filter would let through.
|
You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard. |
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: ASSERTIVE Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
Included review availability: Your plan includes up to 10 reviews per rolling hour; 6 remain after this review. 📝 WalkthroughWalkthroughAdded an always-on GitHub Actions workflow for Testbox broker trust-boundary validation. The workflow runs on pull requests and pushes to ChangesTestbox broker guard CI
Estimated code review effort: 3 (Moderate) | ~20 minutes Merge Risk: ⚪ Minimal · up to This PR adds pull-request coverage for the Testbox broker guard and related validation without any actionable merge-blocking risk remaining. 🚥 Pre-merge checks | ✅ 25✅ Passed checks (25 passed)
✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
Ubuntu 24.04 ships shellcheck 0.9, which reports trap-only functions as SC2317; 0.10 renamed that to SC2329, which is what the file disabled. The new lint job runs on the runner's shellcheck, so it flagged all 15 lines of the two trap handlers. Name both codes.
Follow-up to #10303.
tests/test_ci_testbox_broker_guard.pyis wired intoci.yml, butci.ymlis currently dispatch-only ("CI pause"), so the guard would not have run on a pull request that weakened the very lane it protects. This gives it a small always-on workflow.It runs on every pull request with no path filter, on purpose: a change that renames or moves the guard is exactly what a path filter would let through. The job also shellchecks the four
scripts/blacksmith-*.shhelpers and actionlints the warmup workflow, neither of which any existing job covers.actionlint is downloaded pinned by version and verified against a sha256 I checked against the real release artifact (
023070a2...0757foractionlint_1.7.7_linux_amd64.tar.gz).The
ci.ymlentry from #10303 stays, so the guard still runs with the full suite whenever CI resumes.Need help on this PR? Tag
@codesmith-botwith what you need. Autofix is disabled.Summary by cubic
Run the Testbox broker guard on every pull request and pushes to main to prevent trust-boundary regressions while CI is dispatch-only. Previously the guard ran only in
ci.yml; now a dedicated workflow enforces it and adds linting.testbox-broker-guard.ymlthat triggers onpull_requestandpushtomainwith no path filter.tests/test_ci_testbox_broker_guard.pyon Python 3.12 withPyYAML==6.0.3.blacksmith-cmux-tui-testbox-stage.shto disable both SC2317 and SC2329 for trap-invoked helpers to satisfy ShellCheck 0.9/0.10.actionlinton the warmup and guard workflows, downloadingactionlint1.7.7and verifying it via SHA-256.ci.ymlentry so the guard still runs with the full suite when CI resumes.Written for commit 86f14c0. Summary will update on new commits.
Summary by CodeRabbit