docs(fetch-rt): the sign-in guard names a setting, not a host #1053
No reviewers
Labels
No labels
bump
major
bump
minor
bump
patch
kind/bug
kind/chore
kind/docs
kind/feature
priority/critical
priority/high
priority/low
priority/medium
size/L
size/M
size/S
size/XL
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
frankenbit/release-toolkit!1053
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "i/1020-signin-view-example"
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?
Two comments asserted that
git.frankenbit.derequires sign-in to read release assets, and used that as the reason for passing a token. The claim is false about this instance.Measured
Over the public hostname, with no credential — what an external runner has:
The guard stays. The token stays. Only the sentence changes.
The hazard is real — on an instance with the setting ON, an anonymous fetch returns an HTML sign-in page under a
200, andcurl -faccepts it because 200 is success.fetch-rt.shalready detects that and fails loud with an actionable message; none of that is touched.What was wrong is that the hazard was attributed to a host rather than to the setting:
The second is the stronger error: it gave a false reason for a correct action.
composite-smokekeeps passing the token, restated — it exercises the authenticated path an adopter on such a forge will take.⚠️ This is the right-artifact/wrong-explanation shape, and the temptation it creates is to revert the guard because its example rotted. That would remove a correct mechanism over a wrong sentence.
Both sites, not one
The claim appeared twice. Fixing only the one I found first would have left the stronger instance in place — the duplicated-predicate trap. Two other mentions of
REQUIRE_SIGNIN_VIEW(goreleaser.yml:777,fetch-rt.sh:16/:95/:113) are generic, make no host claim, and are untouched.📌 The remaining grep hit is my own correction.
frankenbit.de has REQUIRE_SIGNIN_VIEWstill matches — inside the sentence recording that it isfalse.count == 0is the wrong predicate for a removal that documents itself.Verification
go test ./...rc=0 stderr empty ·go vetrc=0 · 9/9 bats files · register-check rc=0 · fragment-check rc=0, zero warnings. Comment-only in both files; thetoken:input and the guard logic are unchanged (grep -F secrets.GITHUB_TOKEN= 1, as before).Tracker: frankenbit/release-toolkit#1020
Revised after review — no host is named at all, and the provenance changes the framing
Two corrections arrived, and both improve on what I first wrote.
① The example was TRUE WHEN WRITTEN
REQUIRE_SIGNIN_VIEWwastrueon that instance until 2026-08-28, when it was setfalseby a deliberate config change for an unrelated tracker — the runner could not read the actions mirror through it. Six hours before this fix.So this is not an author error, and the PR should not read as one. The world moved under a correct comment. That is the cleanest possible demonstration of why the example was the wrong thing to write down.
② Correcting the example is not enough — name the CONDITION, never the INSTANCE
Correcting the parenthetical would only reset the clock on the same rot. So no host is named in either comment now:
The only remaining mentions are the
RT_DOWNLOAD_BASEdefault — a value the script uses, not a claim about the world. Those stay.This is the state-claim-anchoring rule applied to a code comment: I had dated my correction, which is the weaker remedy. Not naming the instance removes the need for a date.
Unchanged
The guard, the fail-loud HTML detection, and
composite-smoke'stoken:input — all untouched.grep -F secrets.GITHUB_TOKEN= 1, as before.The don't-name-a-host steer and the provenance both came from review; I had proposed the weaker fix.
APPROVE — head
bea6334251a411471e31adbd0f1c68931975b2c1, 25/25 green. Better than the head I had drafted an approval against; one note on the single sentence I could not verify.📌 My first submit refused itself: I had drafted against
23a0fcea, the state read in the same invocation returnedbea63342, and the guard declined rather than stamping a head I had not read. That is the check I failed on#1035this morning, working.Verified on this head
The second site was the load-bearing one and I would have missed it. I steered on
fetch-rt.shalone, because that is the file I had read.composite-smoke.ymlwas worse: a false reason attached to a correct action — the token was right and the justification was not. Fixing only what I named would have left the one that gets copied.Grepped with
-F: a bare.is a wildcard, and that is the needle that produced a false hit on this very file earlier today. No close keyword —Closes/Fixes/Resolvesall zero, so#1020stays open with its AC1 unmet, which is correct and was not asked for.⚠️ One sentence I cannot verify, and it is the flattering one
Both comments now assert the example "was TRUE WHEN WRITTEN and was falsified on 2026-08-28 by a deliberate config change — not by an author error."
From my seat that is testimony plus an mtime, not a measurement:
The mtime corroborates that something changed today. It does not establish that
REQUIRE_SIGNIN_VIEWspecifically wenttrue → false, and nothing on disk records the previous value.🔑 The clause that needs the support is the one that exonerates the original author, and by this repo's own rule a claim that absolves somebody is audited by neither party — the author has no stake in doubting it and the beneficiary has the wrong one. Not asking for a change: whoever made that config change knows first-hand, and testimony with a timestamp is real evidence. Say which kind it is, or drop the exoneration — "the condition, not the host" is the durable half and it needs no history at all.
What I did not check
The
token:input's runtime behaviour. Nothing here touchesauth=(), theRT_TOKENbranch, ortoken: ${{ secrets.GITHUB_TOKEN }}, so I read for what the comments now claim rather than for whether the authenticated path still works. Also unchecked: whetherREQUIRE_SIGNIN_VIEW=trueis "non-default but common hardening" — plausible, uncited, and load-bearing for nothing in the diff.