Skip to content

fix(friday-merge): log every per-PR verdict, not just the step summary - #537

Merged
rubenvdlinde merged 1 commit into
mainfrom
fix/friday-merge-log-verdicts
Aug 21, 2026
Merged

fix(friday-merge): log every per-PR verdict, not just the step summary#537
rubenvdlinde merged 1 commit into
mainfrom
fix/friday-merge-log-verdicts

Conversation

@rubenvdlinde

Copy link
Copy Markdown
Contributor

This workflow merges pull requests unattended. Its per-PR verdicts went only to $GITHUB_STEP_SUMMARY, so gh run view --log showed the echo source and never which PRs were merged, nor why the others weren't.

Measured 2026-08-21: a dry run reported 39 merged/would-merge, 44 skipped — and the log could not name a single one of those 83 PRs.

For an automation that merges dozens of PRs with no human present, that leaves the audit trail as one rendered artifact: unreadable to any script, and easy to lose.

All eight verdict sites now route through srow(), writing the markdown row to the summary and a VERDICT: … line to stdout. Table headers are deliberately not logged. Emitted markdown verified byte-identical.

Same gap exists in fleet-cve-release.yml (9 sites) and fleet-drift-sweep.yml (6) — following separately. Companion to #536, which fixed it in fleet-shared-dep-bump.yml.

This workflow MERGES pull requests unattended. Its per-PR verdicts went only to
$GITHUB_STEP_SUMMARY, so `gh run view --log` showed the echo source and never
which PRs were merged, nor why the others were not.

MEASURED 2026-08-21: a dry run reported "39 merged/would-merge, 44 skipped" and
the log could not name a single one of those 83 PRs. For an automation that
merges dozens of PRs without a human present, the audit trail then exists only
as one rendered artifact, unreadable to any script and easy to lose.

All eight verdict sites now route through srow(), which writes the markdown row
to the summary AND a `VERDICT: ...` line to stdout. Table headers are
deliberately not logged. Verified the emitted markdown is byte-identical.
@rubenvdlinde
rubenvdlinde merged commit 67a54df into main Aug 21, 2026
36 checks passed
@rubenvdlinde
rubenvdlinde deleted the fix/friday-merge-log-verdicts branch August 21, 2026 10:55
rubenvdlinde added a commit that referenced this pull request Aug 21, 2026
* fix(friday-merge): log every per-PR verdict, not just the step summary

This workflow MERGES pull requests unattended. Its per-PR verdicts went only to
$GITHUB_STEP_SUMMARY, so `gh run view --log` showed the echo source and never
which PRs were merged, nor why the others were not.

MEASURED 2026-08-21: a dry run reported "39 merged/would-merge, 44 skipped" and
the log could not name a single one of those 83 PRs. For an automation that
merges dozens of PRs without a human present, the audit trail then exists only
as one rendered artifact, unreadable to any script and easy to lose.

All eight verdict sites now route through srow(), which writes the markdown row
to the summary AND a `VERDICT: ...` line to stdout. Table headers are
deliberately not logged. Verified the emitted markdown is byte-identical.

* fix(fleet): log verdicts in the CVE release and drift sweep too

Completes the same fix applied to fleet-shared-dep-bump (#536) and
fleet-friday-merge (#537): per-app verdicts went only to
$GITHUB_STEP_SUMMARY, so `gh run view --log` showed the echo source and never
a decision.

fleet-cve-release merges and SHIPS security fixes across the beta and main
protections unattended. Its entire safety rests on one judgement -- is this PR
a security fix? -- so the record of how each PR was classified IS the record of
whether the workflow behaved correctly. That record should not exist solely as
a rendered artifact.

fleet-drift-sweep exists to answer "which apps are red under today's gates".
An answer no script can read is most of the way to no answer.

---------

Co-authored-by: Conduction Release Bot <release-bot@conduction.nl>
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