fix(ci): hard-gate block-internal-paths — remove continue-on-error #2342
Reference in New Issue
Block a user
Delete Branch "fix/block-internal-paths-hard-gate"
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?
Removes the job-level
continue-on-error: truefrom the block-internal-paths workflow so detected internal-path leaks FAIL the workflow instead of silently passing (fail-open → fail-closed).The gate step already exits 1 and lists offending paths; this change ensures that failure actually blocks the PR/push.
Small safe change — ONE file, no functional logic altered.
5-axis review on current head
f3f637d656.Correctness: this removes continue-on-error from the block-internal-paths workflow, so forbidden internal-path leaks now fail the gate instead of surfacing as non-blocking noise. Robustness/security improve by making the path-leak guard fail-closed; no new inputs, credentials, or network behavior are introduced. Performance impact is none beyond the existing workflow step now affecting job result. Readability is clear and the comment records the fail-open to fail-closed intent.
Scope is limited to .gitea/workflows/block-internal-paths.yml. Required contexts are green and mergeable=true.
Fresh official approval on current head
f3f637d656.Security/fail-closed review: .gitea/workflows/block-internal-paths.yml now removes the job-level continue-on-error from the enforcement job, so the existing forbidden-path detection can actually fail the workflow. The enforcement branch still emits a clear ::error::Forbidden internal-flavored paths detected message, prints each offending path plus matched pattern, explains the public/internal repo boundary, and exits 1. No residual enforcement continue-on-error remains; the only remaining continue-on-error text is historical/commentary text, not workflow control.
Scope is limited to the one workflow file and does not alter the path patterns, diff-base fallback behavior, or informational no-change path. Required CI observed green for CI / all-required, E2E API Smoke Test, and Handlers Postgres Integration; mergeable=true. Verdict: APPROVED.
merge-queue: could not update this branch with
main— the update returned a merge conflict (HTTP 409) that the queue cannot auto-resolve (POST /repos/molecule-ai/molecule-core/pulls/2342/update -> HTTP 409: {"message":"merge failed because of conflict","url":"https://git.moleculesai.app/api/swagger"}). Appliedmerge-queue-holdto unblock the queue (HOL guard). Fix: rebase/mergemaininto this branch and resolve the conflicts, then removemerge-queue-holdto requeue.f3f637d656to9b40a3a083APPROVED on current head
9b40a3a083. Security/merge-control re-review: merge-base diff is scoped to.gitea/workflows/block-internal-paths.ymlonly, adding comments that mark the gate hard/fail-closed. The branch workflow contains nocontinue-on-erroron the job or step, and detected forbidden internal paths stillexit 1; no skip/bypass/fail-open or unrelated collateral. Required lens is green (CI/all-required, E2E API Smoke, Handlers Postgres). Note: live API did not show a current-head CR2 approval yet, and the PR still carriesmerge-queue-hold, so this approval is current-head genuine but not by itself enough for cron merge until those are resolved.Reviewed current head
9b40a3a083. Merge-basee441def8b3diff is scoped to .gitea/workflows/block-internal-paths.yml only; merge-tree clean. Verified the branch has no job-level continue-on-error and no bypass/fail-open path in the forbidden-path scanner: detected internal-path matches still emit ::error:: and exit 1, while empty/no-offense cases exit 0. Required BP contexts are green (CI / all-required, E2E API Smoke, Handlers Postgres); remaining red governance contexts are advisory. Note: the top-of-file historical comment mentioning continue-on-error is pre-existing in main and now stale, but this PR does not weaken the gate. APPROVED.