ci(#388): fail roll-up when tests are skipped on pull_request_target - #400
Conversation
PR Summary by QodoCI: fail roll-up when pull_request_target tests are skipped
AI Description
Diagram
High-Level Assessment
Files changed (1)
|
db3284f to
fe6ef26
Compare
|
🤖 Finished Review · ✅ Success · Started 1:23 PM UTC · Completed 1:34 PM UTC |
Code Review by Qodo
1. Protected workflow file modified
|
ReviewFindingsMedium
Low
Previous runReviewFindingsMedium
Previous run (2)ReviewFindingsMedium
Low
Previous run (3)ReviewFindingsMedium
Low
Previous run (4)ReviewFindingsMedium
Low
|
fe6ef26 to
d92338f
Compare
|
🤖 Finished Review · ✅ Success · Started 6:40 AM UTC · Completed 6:55 AM UTC |
|
/fs-fix rebase, resolve conflicts and address feedback. Don't sign the commits, bots shouyldn't do it. |
|
🤖 Finished Fix · ✅ Success · Started 10:04 AM UTC · Completed 10:08 AM UTC |
Move the gate failure/cancelled check above the PRT detect-skipped check so that gate failures produce accurate diagnostics instead of the misleading "tests were not authorized to run" message. This also ensures the "gate cancelled" test exercises the correct code path. Addresses review feedback on #400
🔧 Fix agent — iteration 1 (human-triggered)Rebased onto main (resolved Makefile conflict). Addressed 2 review findings by reordering checks in check-rollup-result.sh so gate failure/cancelled is detected before PRT detect-skipped, fixing both misleading error messages and test coverage gap. All 12 tests pass. Fixed (3):
Disagreed (1):
Tests: passedNext steps:
|
d92338f to
32a567b
Compare
|
🤖 Finished Review · ✅ Success · Started 10:10 AM UTC · Completed 10:21 AM UTC |
waynesun09
left a comment
There was a problem hiding this comment.
Review-only pass: 2 findings below (1 critical, 1 medium), both verified against head 32a567b and checked for duplicates against existing PR comments before posting.
|
/fs-fix |
|
🤖 Finished Fix · ❌ Failure · Started 7:07 AM UTC · Completed 7:14 AM UTC |
|
The fix agent completed, but the post-fix script failed before finishing.
Workflow run: https://github.com/fullsend-ai/.fullsend/actions/runs/30792417204 Details: |
Signed-off-by: Hector Martinez <hemartin@redhat.com>
|
🤖 Finished Review · ✅ Success · Started 7:00 AM UTC · Completed 7:11 AM UTC |
waynesun09
left a comment
There was a problem hiding this comment.
Review-only pass: 1 finding below (1 high), verified against head 8c285ec and checked for duplicates against existing PR comments/reviews before posting.
Signed-off-by: Hector Martinez <hemartin@redhat.com>
8c285ec to
831d310
Compare
|
🤖 Finished Review · ✅ Success · Started 8:15 AM UTC · Completed 8:33 AM UTC |
waynesun09
left a comment
There was a problem hiding this comment.
Verified the extracted roll-up script at head 831d310. All findings from my earlier review passes are addressed:
- The labeled-event success bypass is gone — the script now fails whenever
detectis skipped onpull_request_target, regardless of which label triggered the run (fail-closed, per the issue's recommended fix). - Gate failure/cancelled is checked before the detect-skipped rule, so diagnostics report the true root cause (also covers the two open low-severity threads on ordering and the
gate cancelledtest path — the test now genuinely exercises the gate check). - The roll-up checkout uses base-branch
github.shawithpersist-credentials: false, carries the guard comment, and the job now declarespermissions: contents: read. - Traced all trigger paths: push/merge_group/workflow_dispatch unaffected (detect-skipped rule is PRT-scoped); authorized PRT passes; unauthorized/label-skipped PRT now fails. Tests are wired into
make script-testand pass on this head.
Residual known behavior: an unrelated label applied to an already-green PR will re-run and go red since gate skips — acceptable fail-safe trade-off; can be tuned later by having gate's if: check the PR's current label set.
Move the gate failure/cancelled check above the PRT detect-skipped check so that gate failures produce accurate diagnostics instead of the misleading "tests were not authorized to run" message. This also ensures the "gate cancelled" test exercises the correct code path. Addresses review feedback on #400
Signed-off-by: Hector Martinez <hemartin@redhat.com>
831d310 to
8b543ce
Compare
|
🤖 Review · Commit: |
On pull_request_target, if detect was skipped (gate skipped or auth denied), the roll-up now fails instead of reporting SUCCESS. The gate failure/cancelled check runs before detect-skipped so that gate failures produce accurate diagnostics. Closes #388 Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com> Signed-off-by: Hector Martinez <hemartin@redhat.com>
8b543ce to
0dee113
Compare
|
🤖 Finished Review · ✅ Success · Started 9:18 AM UTC · Completed 9:38 AM UTC Commit: |
|
🤖 Finished Retro · ✅ Success · Started 9:23 AM UTC · Completed 9:40 AM UTC Commit: |
|
Review skipped — this PR is already merged. The Posted by fullsend post-review check |
Retro: PR #400 — fail roll-up when tests are skipped on pull_request_targetTimeline
Review quality gapThe review agent ran across 5 revisions and posted only low-severity findings (error message formatting, test coverage gaps, scope observation). The human reviewer caught:
The PR was small (4 files, 128 additions) — well within review capacity. qodo-code-review also caught the labeled-event bypass on the initial commit, while the fullsend review agent did not. The review agent's correctness and security sub-agent instructions cover the analysis patterns needed to find these issues (runtime mechanism tracing, bidirectional permission audit), but the agent did not execute them with sufficient depth on this PR's workflow files. Evidence for existing issuesThis retro reinforces several open proposals rather than surfacing novel improvements:
Autonomy assessmentOn CI workflow PRs with security implications, the review agent cannot yet be trusted for autonomous approval. The human reviewer was essential — without waynesun09's CRITICAL finding, the PR would have merged with the original security bypass intact. Implementing #394 and #689 (CI workflow analysis) and #46 (bidirectional permission analysis) would close the most impactful gaps. |
Summary
pull_request_target, whengateis skipped or auth is denied, all downstream jobs cascade toskipped. The roll-up only checked forfailure/cancelled, so it reported SUCCESS -- letting PRs satisfy branch protection without any test running.pull_request_target, ifdetectwas skipped, fail. This covers both gate-skipped and auth-denied paths without affectingpush/merge_group/workflow_dispatch.Test plan
push/merge_groupruns are unaffected (gate is legitimately skipped, detect runs)pull_request_targetwithok-to-testlabel still passes (gate runs, auth granted, detect runs)pull_request_targetwithout authorization now fails the roll-up instead of reporting SUCCESSCloses #388
🤖 Generated with Claude Code