fix(profile): read the Forgejo token from the runner env, not a missing secret #3
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "fix/forgejo-token"
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?
Was kaputt war
profile-cards.ymlsetzteFORGEJO_TOKEN: ${{ secrets.PROFILE_TOKEN }}. Dieses Actions-Secret existiert in diesem Repository nicht. Ein undefiniertes Secret rendert als leerer String — derenv:-Block hat damit einen eventuell vorhandenen Runner-Wert überschrieben,forgejo.tshat den Authorization-Header still weggelassen (headers: TOKEN ? {...} : {}) undGET /user/reposkam als401 token is requiredzurück. Zehn Nachtläufe, jeder nach ~12 s tot, bevor die erste Karte gezeichnet war.Das ist exakt dasselbe Muster, das in
flow.raven-deploymentalsRUNNER-JOURNEY.md:750dokumentiert ist: "${{ secrets.FORGEJO_TOKEN }}existiert nirgends … und derenv:-Block überschreibt damit den funktionierenden envFrom-Wert mit leer."Was sich ändert
flow-raven-eval(auf dem dieser Job schon läuft) projiziertFORGEJO_TOKENüber seinenv_file— belegt inflow.raven-deployment/.forgejo/workflows/deploy-raven-dev-eval.yml,EVAL_ALLOWLIST_REGEXführtFORGEJO_TOKENnamentlich. Die schattenwerfendesecrets.*-Zeile ist raus, ebenso das zweitePUSH_TOKEN-Duplikat im Publish-Schritt.deploy-raven-dev-sweep.yml— nur Namen, nie Werte. Fehlt der Token, bricht der Job in Sekunde eins mitMISSING: FORGEJO_TOKENab statt mit einem API-Fehler drei Schritte später.forgejo.tsbehandelt den Token nicht länger als optional:requireToken()wirftno Forgejo token configured (set FORGEJO_TOKEN).Beleg
bun run typecheckgrün. Der benannte Fehler lokal reproduziert:Offener Punkt für den Reviewer
Ob der
flow-raven-eval-Runner den Token jetzt wirklich im Job-Env trägt, ist aus dem Repo heraus nicht beweisbar — die Allowlist erlaubt ihn, die Projektion überspringt aber leere Werte (WARN: skipping $key (empty value)), undflow.raven-deployment#1262hält offen, ob Forgejo denselben Namen run-scoped überschreibt. Sollte der Token fehlen oder run-scoped ankommen, scheitert der Lauf ab jetzt benannt (Preflight bzw.heatmap is (near) empty) statt mit einem nackten 401. Fehlt er wirklich, ist der Ort der Reparatur Infisical (philflow-raven-os-pl, KeyFORGEJO_TOKEN) plus ein Lauf vondeploy-raven-dev-eval.yml, nicht dieses Repo.Closes #2
🤖 Generated with Claude Code
https://claude.ai/code/session_019Wzp8PPYXc8rFynfSwMUCk
`FORGEJO_TOKEN: ${{ secrets.PROFILE_TOKEN }}` pointed at an Actions secret this repository does not have. An undefined secret renders as the empty string, so the `env:` block shadowed whatever the runner had exported and every request went out unauthenticated — ten scheduled runs in a row died after ~12 s on `GET /user/repos → 401 token is required`, before the first card was drawn. The token now arrives the way every other scheduled workflow on this instance gets one: from the runner job env. The `flow-raven-eval` pool already carries FORGEJO_TOKEN through its `env_file` projection, so nothing new has to be delivered — only the shadowing line had to go. A names-only preflight step, shaped after flow.raven-deployment's deploy-raven-dev-sweep.yml, fails the job early and by name if it is ever absent. The client no longer treats the token as optional either. An empty value used to silently drop the Authorization header and surface as a raw 401 from an endpoint that never names the cause; it now raises "no Forgejo token configured (set FORGEJO_TOKEN)" at the first request. Closes #2 Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019Wzp8PPYXc8rFynfSwMUCkCI-Beleg — der offene Punkt ist geschlossen, kein Blocker
Workflow auf dem Feature-Branch angestoßen. Run #35 (id 37038, SHA
ed2dd53):successnach 17 s, bei zehn Vorläufernfailurenach 12 s.Grün heißt hier nicht nur „Exit 0" — der Lauf hat die Karten tatsächlich neu gebaut und veröffentlicht:
Alle fünf Karten neu geschrieben (
snake,streak,activity,contrib-3d,metrics) — die veralteten*-dark.svgaus dem August-Stand sind damit weg.Das beantwortet die offene Frage aus der PR-Beschreibung: der
flow-raven-eval-Runner trägtFORGEJO_TOKENim Job-Env, und zwar als echten PAT, nicht als run-scoped Token. Beweis ohne Logs:main.tswirft beibyDay.size <= 1(heatmap is (near) empty) — ein repo-scoped Token hätte genau dort abgebrochen. Der Lauf ist durchgelaufen, die Heatmap war also gefüllt. Damit fällt auch die Sorge ausflow.raven-deployment#1262für diesen Pool weg.Es fehlt kein Secret. Weder in Infisical noch in der Runner-Env war etwas zu setzen — die Ursache war ausschließlich die schattenwerfende
${{ secrets.PROFILE_TOKEN }}-Zeile.🤖 Generated with Claude Code
https://claude.ai/code/session_019Wzp8PPYXc8rFynfSwMUCk