CI-9 REVIEW PROBE 3 (throwaway) #98
Closed
admin
wants to merge 2 commits from
ci9rev-head3 into ci9rev-base
pull from: ci9rev-head3
merge into: :ci9rev-base
:master
:UX-54
:release/1.0
:UX-53
:deploy-0.19.0
:release-0.18.3
:PRICE-02
:UX-46
:SAFETY-121
:SAFETY-119
:UX-45
:DOC-8
:deploy-0.18.2
:release-0.18.2
:SAFETY-118
:deploy-0.18.1
:release-0.18.1
:UX-44
:UX-43
:deploy-0.18.0
:release-0.18.0
:OPT-20
:PRICE-01
:MAINT-11
:opt15-price-run-fixes
:SAFETY-112
:OPT-17-forecast-entities
:deploy-0.17.0
:release-0.17.0
:MAINT-15
:SAFETY-107
:MAINT-14
:MAINT-13-full-pack-complete
:SAFETY-103
:deploy-0.16.0
:release-0.16.0
:safety-95-drain-end-reseed
:safety-96-stale-unit-site-total
:maint-10-local-start-hour
:safety-90-peak-guard-gap
:deploy-0.15.0
:release-0.15.0
:ci-14-infra-pin-3b4ff84
:safety-94-no-false-stale-or-refusal
:deploy-0.14.0
:release-0.14.0
:ci-13-infra-pin-0c04488
:safety-93-no-grid-charge-at-charge-end
:safety-91-held-battery-last
:deploy-0.13.0
:release-0.13.0
:safety-85-no-false-not-keeping-up
:safety-87-guard-uses-able-batteries
:safety-86-peak-over-hold
:safety-84-n2-maint-charge
:safety-83-peak-over-drain
:opt11-p4-solar-forecast
:safety-78-drain-at-two
:safety-81-load-too-high
:opt11-p3-price-runs
:safety-79-peak-margin
:opt11-p2-ha-entities
:UX-13-p3-batteries
:opt11-p1-modes
:UX-13-p5
:UX-15-setup-only
:UX-13-p4-setup
:UX-13-p2-installer
:SAFETY-73-per-unit-refusal
:UX-13-p1-home
:UX-13-P0-foundation
:SAFETY-52-refused-hold
:UX-11-short-safety-lines
:pin-bump-d637d0b
:UX-10-plain-leftovers
:pin-bump-ecd3864
:UX-08-2d-logs-docs
:UX-08-2c-refusals
:UX-09-2a-fixes
:UX-08-status-rows
:pin-bump-7081df4
:UX-08-plain-notifications
:SAFETY-40-clamp-alarm
:pin-bump-7689816
:SAFETY-34
:pin-bump-a1d0618
:TOOL-9
:CI-12
:TEL-14-pv-sign
:DOC-5-watchdog
:TEST-26
:SAFETY-62-refuse-unread-input
:safety-61-control-task-death
:doc-1-operator-docs
:PKG-18-cut-0.12.0
:TEL-12
:PKG-17
:TEL-11
:ci9-gateproof
:SAFETY-56
:SEC-2-release-procedure
:PKG-16-release-0.10.1
:SAFETY-57
:pkg15-changelog
:CI-9
:SAFETY-48
:TEL-10
:PKG-14
:SAFETY-47
:SAFETY-10
:SAFETY-45
:TARIFF-16
:TARIFF-18
:TARIFF-17
:TARIFF-11
:TARIFF-13
:TARIFF-15
:TARIFF-07
:TARIFF-14
:TARIFF-12
:TARIFF-10
:TARIFF-09
:TARIFF-08
:FCST-06
:FCST-05
:FCST-04
:INSTR-01
:SAFETY-44
:ARCH-02
:SAFETY-43
:TEST-21
:SAFETY-31-attribution
:UX-04
:PKG-13
:PKG-12
:PKG-09
:OPT-09
:UX-02
:PKG-07
:SAFETY-42
:SAFETY-13
:SAFETY-37
:SAFETY-39
:SAFETY-38
:CI-06
:PKG-06-version-0.7.0
:SAFETY-41-reassert
:TEL-07
:UX-01
:SAFETY-32
:SPIKE-04a
:MAINT-05
:SAFETY-30
:CFG-04
:DATA-01
:DATA-02
:SAFETY-24
:SAFETY-26
:OPT-04
:FCST-03
:SAFETY-07
:TARIFF-03
:TARIFF-02
:TARIFF-01
:TEST-06
:SAFETY-03
:SAFETY-18
:MAINT-04
:safety-02-latch-persistence
:safety-02-sign-watchdog
:safety-12-loop-floor
:CFG-01
:TEL-05
:TEL-04
:DEPLOY-01
:TEL-01
:SAFETY-04
2
Commits
| Author | SHA1 | Message | Date | |
|---|---|---|---|---|
|
|
643e2cfc86 | ci9 review probe 3 [skip ci] | ||
|
|
074157c4c2 |
CI-9: drop the pull_request branches filter, because a skipped check clears the gate
checks / unit (pull_request) Successful in 7m57s
`branches: [release/1.0, master]` meant a stacked pull request - one based on another feature branch - never matched. Gitea does not stay silent about a workflow it sits out: it posts the required context itself with state `skipped`, the combined-status rollup reports that as `success`, and the merge gate accepts it. Retargeting does not repair it, because the skip is a commit status on the head sha and so survives the base change. Measured on Gitea 1.27.3 with throwaway PR #94 against a branch carrying a copy of release/1.0's protection rule: only status is `skipped` -> POST .../merge 409 head out of date (CLEARED) no status at all -> POST .../merge 405 not all required (refused) status `pending` -> POST .../merge 405 not all required (refused) status `success` -> POST .../merge 409 head out of date (CLEARED) The 409s come from a deliberately wrong head_commit_id in the probe, which Gitea checks only after branch protection - so a 409 means the request had already cleared the gate, and nothing was ever merged. `skipped` is the only state that leaks. Fixing this at the gate is not possible. Gitea branch protection can require that a context is PRESENT, never that it is SUCCESS: its whole status-check vocabulary is `enable_status_check` and `status_check_contexts`, per this server's own /swagger.v1.json. So the fix has to be upstream - never emit a skip - which means no event filter. Cost: every pull request now runs the full ~8 minute suite, including the intermediate steps of a stack. 49 of the 50 pull requests in this repository's history were opened straight against release/1.0 and would have run anyway. Also corrects two things CI-01's header stated as fact. A filter miss is fail-OPEN, not the fail-closed pending-forever it described; and it is a skip-ci keyword, not a filter miss, that actually withholds the context and leaves it pending. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01BwRLw7eKYj2byVdwB6kbjU |