fix(ci): let the gate reach our own registry, and record how secrets travel #4

Merged
iuriishikov merged 1 commit from fix/secrets-inherit into main 2026-08-20 00:17:41 +00:00
Owner

The first release failed with a 401 whose body is reqPackageAccess — the same answer the registry gives a request carrying no Authorization header, and distinct from authGroup.Verify, which is what a malformed token gets. Both were probed against the live endpoint to tell them apart. cargo had the token variable set, but empty, so it sent an empty header and the server read the request as anonymous.

Cause: organisation secrets do not reach a called workflow on their own, while organisation variables do — the job had already pulled its container image through vars.REGISTRY before failing. The caller must pass them with secrets: inherit (supported: Job.InheritSecrets in Forgejo's act fork), and the callee's workflow_call block must stay empty, or Forgejo runs it on every push.

rust-ci.yml gains the same wiring for the read token. It needs none today and will need it the moment one of our crates depends on another — better to have it in place than to discover it on the next release.

The first release failed with a 401 whose body is `reqPackageAccess` — the same answer the registry gives a request carrying **no** `Authorization` header, and distinct from `authGroup.Verify`, which is what a malformed token gets. Both were probed against the live endpoint to tell them apart. cargo had the token variable set, but empty, so it sent an empty header and the server read the request as anonymous. Cause: organisation **secrets** do not reach a called workflow on their own, while organisation **variables** do — the job had already pulled its container image through `vars.REGISTRY` before failing. The caller must pass them with `secrets: inherit` (supported: `Job.InheritSecrets` in Forgejo's act fork), and the callee's `workflow_call` block must stay empty, or Forgejo runs it on every push. `rust-ci.yml` gains the same wiring for the read token. It needs none today and will need it the moment one of our crates depends on another — better to have it in place than to discover it on the next release.
fix(ci): let the gate reach our own registry, and record how secrets travel
All checks were successful
smoke / smoke (push) Successful in 24s
2fc4222d93
The first release failed on a 401 the registry reports as reqPackageAccess —
the same answer it gives a request carrying no Authorization header at all, and
distinct from authGroup.Verify, which is what a malformed token gets. cargo had
a token variable, but it was empty, so it sent an empty header.

Cause: organisation secrets do not reach a called workflow on their own, while
organisation variables do — this job had already pulled its container image
through vars.REGISTRY before failing. The caller has to pass them, and the
callee's workflow_call block must stay empty or Forgejo runs it on every push.

The gate gains the same wiring for the read token: it needs none today and will
need it the moment one of our crates depends on another.
iuriishikov deleted branch fix/secrets-inherit 2026-08-20 00:17:41 +00:00
Sign in to join this conversation.
No reviewers
No labels
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
shikos/.forgejo!4
No description provided.