diff --git a/infra/gitea/README.md b/infra/gitea/README.md index 54282a5..caf48ad 100644 --- a/infra/gitea/README.md +++ b/infra/gitea/README.md @@ -102,7 +102,19 @@ Behaviour, proven by test rather than assumed: |---|---|---| | live matches the declaration | 0 | green | | any key drifted, or no runner online | 1 | **blocks the merge** | -| no `GITEA_SETTINGS_TOKEN`, or Gitea unreachable | 3 | skips **loudly**; never a pass, never a block | +| no `SETTINGS_API_TOKEN`, or Gitea unreachable | 3 | skips **loudly**; never a pass, never a block | + +> **The secret is `SETTINGS_API_TOKEN`.** An earlier draft of this table named +> `GITEA_SETTINGS_TOKEN`, which **cannot exist as a Gitea secret at all** — Gitea reserves the +> `GITEA_` prefix and returns HTTP 400 `invalid secret name`. That is the whole 2026-09-29 +> inert-detector story, so the wrong name surviving here is worth correcting rather than +> reading past. Measured in `ci/gitea-settings.sh`: +> +> TOKEN="${SETTINGS_API_TOKEN:-${GITEA_SETTINGS_TOKEN:-}}" +> +> so `GITEA_SETTINGS_TOKEN` is still honoured — but **only as an environment variable for a +> LOCAL run**. It can never be the CI wiring, because the secret that would feed it cannot be +> created. In CI, only `SETTINGS_API_TOKEN` exists. The skip is deliberately *not* a block: an unwired credential blocking every PR is the lock-yourself-out failure this repo keeps hitting. Wire the token with `set-ci-token.sh`, confirm @@ -177,8 +189,9 @@ These scripts encode the desired state and can re-assert it; `ci/gitea-settings. **detector** that turns divergence from a silent, invisible failure into a loud one. It closes the root cause of the 2026-09-29 session. -It is only as good as its wiring: **until `GITEA_SETTINGS_TOKEN` exists it skips**, and a skipped -detector detects nothing. That is the remaining step. +It is only as good as its wiring: **until `SETTINGS_API_TOKEN` exists it skips**, and a skipped +detector detects nothing. (That secret was stored and verified in PR #15; this sentence predates +it. The name matters — see the note under the behaviour table above.) ## Historical sequence (kept for context)