docs(agents): record what main's protection depends on in ci.yml #21
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "chore/record-trigger-dependency"
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?
Closes the hole in yesterday's acceptance and records what
main's protection actuallydepends on, which is in
.forgejo/workflows/ci.ymland not in the protection settings.The acceptance recorded yesterday proved less than it claimed
It recorded a refused push to
mainand nothing beside it. A refusal in isolation isequally well explained by a dead token, a wrong remote, a mangled refspec or a
non-fast-forward refused by git before the hook is ever reached. Re-run properly, in the
armed state, one commit
8e9246a7f6a0ff7aa6784f64f76376688456a2f5to two destinations:The remote's own lines, which is what settles it rather than the exit codes:
Same commit, same token, same remote, same invocation, differing in the destination ref
alone.
git merge-base --is-ancestor origin/main HEADasserted true first, so neither pushcould be refused as a non-fast-forward before reaching the hook. Refspecs braced, because
unbraced zsh reads
"$probe:refs/..."as the:rmodifier and pushes something else.Probe branch deleted,
HTTP 204.Two things in ci.yml the rule silently depends on
Neither is visible from
GET /branch_protections, and sampled statuses cannot establisheither: statuses say the contexts have been produced, the workflow says they must be.
cargocarries noneeds:and no job-levelif:. It always runs, so its status isalways the real result. That is precisely what makes it safe to require and
docker,which carries
needs: cargo, unsafe. Checkable from the file rather than from history.pull_request:is bare. Nopaths:,paths-ignore:,branches:ortypes::Adding a filter there would make a filtered-out PR produce no required context at all, so
the gate becomes permanently unsatisfiable with nothing in the protection settings having
changed: a merge blocked forever by a line in a workflow file nobody connects to it. The
branches: [main]filter present in that block sits underpush:, where it cannot affecta PR head.
One coverage note, not a gate problem
cargohas two step-levelif: github.event_name != 'pull_request'conditions, so theOfficeMaster checkout and
scripts/sync-templates.sh --checkdo not run on a PR. The jobstill reports its real result, so the gate stays satisfiable. But
CI / cargo (pull_request)is a weaker check thanCI / cargo (push), and template drift againstcanonical OfficeMaster is not covered by the required status. That is deliberate in the
workflow, since a PR gets no read token for the upstream repository. Recorded because the
required status does not cover everything its name suggests.
jlxq0/mantis#141.