Report safe channel Git rejections and retain failure evidence #95
No reviewers
Labels
No labels
app-migration
bug
ci-cd
cluster
Documentation
duplicate
enhancement
gpu
invalid
networking
question
security
Storage
wontfix
No milestone
No project
No assignees
3 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set
Reference
Homelab/workflows!95
Loading…
Reference in a new issue
No description provided.
Delete branch "kiyi/channel-push-diagnostics"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Run 618 failed while pushing the immutable workflow snapshot, before its canary or stable-tag update. The generic Git exception hid the rejection reason and left no early failure artifact. Refs #93.
Report a fixed failure category for authentication, authorization, protected tags, remote hooks, stale leases or transport errors, with a server-log fallback for unknown rejections. Raw Git stdout/stderr, refs, credential arguments and environment values remain withheld. Print the requested version and snapshot stage, retain public failure evidence even before the normal audit exists, and preserve an audit already written before a later Git failure. The change neither diagnoses run 618’s underlying rejection nor alters authentication, tag permissions, atomic publication, scan names or workflow/job names.
The runbook now gives the exact publication/promotion order, Settings > Tags location, empty-allowlist denial semantics, and fresh-dispatch recovery. Verify the automatic token’s actual authenticated principal before changing protection rules; commit authorship is not that identity. After this fix is reviewed/merged and main checks pass, a fresh promotion from main may still select the already-published v1.36.0; no new numbered release is required solely to exercise this diagnostic.
Validation: full source suite passed (369 tests, one local native-Trivy integration skip), all 14 channel cases passed, YAML/Bash scaffold and 16 mocked cases passed, Ruff default/E/W/D checks and native staged Gitleaks 8.30.1 passed. Includes synthetic credential-withholding cases, failure-artifact/audit preservation, native Git atomic update and stale-lease rejection. No live tag/rule changes or promotion dispatch occurred.
Reviewed the three changed files at
30a67f5360. The Git wrapper classifies captured failures into fixed messages without emitting raw stdout/stderr or credential-bearing arguments; the CLI retains an already-written audit and writes a bounded failure record when staging fails. The added tests cover withholding, early/late artifacts, atomic publication, and stale leases, and the runbook correctly treats run 618's actual rejection as undiagnosed. No source-level blocker identified. This is a COMMENT, not an approval: Workflow acceptance has succeeded, but exact-head Library checks and Repository security are still running. Do not change tag protection or retry promotion solely on this diagnostic; establish the automatic token's authenticated identity and review the rejection evidence first. Approval/merge readiness requires successful exact-head checks and a fresh review.