ci: correct the false "Gitea requires auth for public reads" comment
resolve-versions claimed "Gitea API requires auth even for public-repo commit listing" above the pi-toolkit / pi-extensions curls. Measurably false for the repos it guards. Verified 2026-08-15, unauthenticated vs authenticated GET of /api/v1/repos/joakimp/<repo>/commits?limit=1&sha=main: pi-toolkit private=false unauth=200 auth=200 sha 0e1369e6b496 identical pi-extensions private=false unauth=200 auth=200 sha 98eb07bce60a identical mempalace-toolkit private=false unauth=200 auth=200 sha f60cf9c73205 identical Only /api/v1/repos/*/actions/* refuses anonymous reads with 401 — almost certainly what the claim was over-generalised from. (Same over-generalisation I nearly committed to opencode-devbox's AGENTS.md today; 69fc80a there narrowed it to the actions endpoints for the same reason.) Checked the three repos actually queried rather than reusing the pi-devbox result — if any had been private the comment would have been TRUE, and the correction wrong. Behaviour deliberately unchanged: the header still gets passed. It survives a repo being flipped private, and an unset secret degrades cleanly because Gitea ignores an empty `token ` value and serves anonymously: no header 200 empty token (secret unset) 200 garbage token 401 That last row is the fragility now documented: a REVOKED or malformed token returns 401 where anonymous returns 200, so a stale GITEA_BUILD_TOKEN converts a healthy public read into a require_sha failure that presents as an API or network fault. Encountered exactly that today with an expired PAT on the actions endpoints, so the note tells the next reader to suspect the token first. Comment-only: no non-comment line changed, YAML re-parsed.
This commit is contained in:
@@ -238,8 +238,24 @@ jobs:
|
|||||||
echo "atelier_ref=${ATELIER_REF}" >> "$GITHUB_OUTPUT"
|
echo "atelier_ref=${ATELIER_REF}" >> "$GITHUB_OUTPUT"
|
||||||
echo "atelier_tag=${ATELIER_TAG}" >> "$GITHUB_OUTPUT"
|
echo "atelier_tag=${ATELIER_TAG}" >> "$GITHUB_OUTPUT"
|
||||||
|
|
||||||
# pi-toolkit / pi-extensions (Gitea) → commit SHAs. Gitea API
|
# pi-toolkit / pi-extensions (Gitea) → commit SHAs. All three Gitea
|
||||||
# requires auth even for public-repo commit listing.
|
# repos read in this step are PUBLIC: an unauthenticated GET of these
|
||||||
|
# commit endpoints returns 200 with the IDENTICAL sha (verified
|
||||||
|
# 2026-08-15 for pi-toolkit, pi-extensions and mempalace-toolkit).
|
||||||
|
# The comment that used to sit here claimed the Gitea API "requires
|
||||||
|
# auth even for public-repo commit listing" — it does not. Only
|
||||||
|
# /api/v1/repos/*/actions/* refuses anonymous reads (401), which is
|
||||||
|
# what that claim was almost certainly generalised from.
|
||||||
|
#
|
||||||
|
# The header is still passed on purpose: it keeps working if a repo is
|
||||||
|
# ever flipped private, and an ABSENT secret degrades cleanly, because
|
||||||
|
# Gitea ignores an empty `token ` value and serves the request
|
||||||
|
# anonymously (200). The real hazard is the opposite one — a REVOKED or
|
||||||
|
# malformed token returns 401 where anonymous would have returned 200,
|
||||||
|
# so a stale GITEA_BUILD_TOKEN turns a healthy public read into a
|
||||||
|
# require_sha failure that reads like an API or network fault. If this
|
||||||
|
# step ever fails on a repo you can browse anonymously, suspect the
|
||||||
|
# token before you suspect Gitea.
|
||||||
TOOLKIT_REF=$(curl -sf -H "$AUTH_HEADER" \
|
TOOLKIT_REF=$(curl -sf -H "$AUTH_HEADER" \
|
||||||
"https://gitea.jordbo.se/api/v1/repos/joakimp/pi-toolkit/commits?limit=1&sha=main" \
|
"https://gitea.jordbo.se/api/v1/repos/joakimp/pi-toolkit/commits?limit=1&sha=main" \
|
||||||
| jq -r '.[0].sha // empty' 2>/dev/null || true)
|
| jq -r '.[0].sha // empty' 2>/dev/null || true)
|
||||||
|
|||||||
Reference in New Issue
Block a user