fix(ci): lint-pre-flip fail-closed — unreadable success logs treated as masked + workflow flag flipped #2369
Reference in New Issue
Block a user
Delete Branch "fix/lint-pre-flip-fail-closed-clean"
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?
Rebases the lint-pre-flip tail fix onto current main (
d768d866), removing stale audit-force-merge collateral.Refs: mc#1982, internal#219 §1
REQUEST_CHANGES: this closes only the unreadable-log-on-success path, not the full fail-open RCA.
At
lint_pre_flip_continue_on_error.py:555-559,combined_status()ApiErrorstill appends a warning andcontinues, so status unreadability can still leavefail_runs/masked_runsempty. At:618-622, zero matching runs still warns and allows. The final decision path still treats a verdict with only warnings as safe. The workflow flip tocontinue-on-error: falsedoes not fix those script-level default-open cases.Required fix shape: make combined-status API errors and zero-run/unverifiable history produce a blocking verdict, so the final decision fails closed unless the flipped context was actually verified.
REQUEST_CHANGES on head
d1c6fce937.Full-diff-scope shows lint_pre_flip_continue_on_error.py, its tests, and the lint-pre-flip workflow file. The unreadable-success-log path is fixed: a success status with unavailable log is now treated as masked.
Blocking spec gaps remain.
verify_flip()still treats combined-status ApiError as a warning and continues, so an unreadable status API can still allow the flip. The zero-runs path still only appends a warning and does not create a blocking fail/masked run. The final decision still blocks only whenfail_runsormasked_runsare present, so those warning-only paths can pass. Please make combined-status ApiError, zero-runs, and final decision fail closed as requested, with tests for each.APPROVED. Independent merge-base review on
8a63d16f: diff is scoped to lint_pre_flip_continue_on_error.py, its tests, and the workflow. The previously RC'd paths now fail closed: unreadable logs, combined-status ApiError, zero recent commits/runs all add masked_runs, and the final decision blocks on masked_runs/fail_runs instead of allowing the flip. Tests cover the ApiError, zero-run, zero-commit, and unreadable-log cases.Reviewed current head
8a63d16f. Fresh merge-base diff covers lint_pre_flip_continue_on_error.py, its tests, and the workflow flip. ApiError from combined_status, zero recent commits, zero matching runs, and unreadable success logs now append masked_runs and block the final decision; failures still block via fail_runs. This closes the prior warn-only/fail-open paths.