Issue 72: GITHUB_COM_TOKEN an Renovate durchreichen und Fehlen laut melden #92

Merged
frpa merged 1 commits from reparix/renovate-config:issue-72-github-com-token into main 2026-11-12 15:56:11 +00:00
Contributor

Befund

Renovate lief ohne GitHub-Token und damit im anonymen Rate-Limit von api.github.com. Belegt im Debug-Log des Laufs 10455:

WARN: Rate limit exceeded for api.github.com, as no hostRules set for this host.
      Please set a GITHUB_COM_TOKEN
DEBUG: Datasource unknown error  packageName: containerbase/node-prebuild
WARN: No tool releases found.
DEBUG: lock file error  {"err": {"message": "No tool releases found."}, "type": "npm"}
   at generateLockFile (.../manager/npm/post-update/npm.ts)

Eine Ursache, zwei Symptome:

Symptom Mechanismus
Pull Requests ohne Lockfile npm/node werden zur Laufzeit ueber containerbase beschafft; dessen Versionsabfrage laeuft ueber die github-releases-Datasource. Im Rate-Limit gibt es kein Tool, damit bricht generateLockFile ab - ohne npm-Fehlertext. In den PRs sichtbar als "Artifact update problem" mit leerem Detailblock.
Ausbleibende Updates 40 Abfragen mit skipReason: github-token-required, darunter der Serverpin pocketbase/pocketbase aus Ticket 69 in fraley-it/pdfex.

Umfang im Lauf 10455: 38 Branches mit lock file error (18 davon in fraley-it/pdfex), 28 mal "skipping branch creation". Betroffen waren auch fraley-it/docker-services und fraley-it/www.linux-im-alltag.com - das Problem war also nicht repo-spezifisch.

Aenderung

  1. RENOVATE_GITHUB_COM_TOKEN wird an den Renovate-Step durchgereicht.
  2. Ein Waechter-Step davor bricht den Lauf ab, wenn das Secret fehlt oder anders heisst.

Zum Namen: Gitea lehnt Secrets mit dem Praefix GITHUB_ ab. Renovate leitet seine Env-Namen aus dem Optionsnamen ab (githubComToken), also RENOVATE_GITHUB_COM_TOKEN - damit sind Secret-Name und Variablenname identisch und ein Mapping-Fehler ist ausgeschlossen.

Der Waechter ist bewusst Teil der Aenderung: Renovate ignoriert einen unbekannten Env-Namen kommentarlos. Ohne ihn sieht ein Tippfehler im Secret-Namen exakt so aus wie der heutige Fehlerzustand - keine Meldung, nur keine Pull Requests. Ausgegeben wird ausschliesslich die Zeichenzahl, nie der Wert.

Verifikation

  • YAML geparst, Reihenfolge und Env-Schluessel geprueft (drei Steps, RENOVATE_GITHUB_COM_TOKEN am Renovate-Step vorhanden).
  • Waechter-Logik real ausgefuehrt, nicht abgeleitet:
Fall Ergebnis
Variable nicht gesetzt Exitcode 1, Meldung auf stderr
Variable leer Exitcode 1, Meldung auf stderr
Variable gesetzt Exitcode 0, Ausgabe "gesetzt (16 Zeichen)" - kein Wert im Log
  • Das Secret RENOVATE_GITHUB_COM_TOKEN ist laut Betreiber im Repo hinterlegt.

Nicht verifiziert

  • Der erste echte Lauf nach dem Merge steht noch aus. Nachweis danach: der Waechter-Step ist gruen, as no hostRules set for this host und github-token-required kommen im Log nicht mehr vor, und in fraley-it/pdfex entsteht der Pull Request ARG PB_VERSION 0.40.5 -> 0.40.6.
  • Gueltigkeit und Ablaufdatum des Tokens selbst sind von aussen nicht pruefbar. Laeuft er ab, kehrt der heutige Fehler zurueck - dann meldet sich der Waechter allerdings nicht, weil das Secret weiterhin gesetzt ist.
  • Nach dem Merge laufen die bisher blockierten Lockfile-Updates als Pull Requests nach (allein in pdfex 18 Branches). Sie durchlaufen seriell das neue CI-Gate; bei Bedarf drosselt prConcurrentLimit / prHourlyLimit.

Rollback

Commit zuruecknehmen oder die beiden Bloecke entfernen - der Zustand ist dann exakt der heutige. Das Secret kann unabhaengig davon bestehen bleiben, es hat ohne die Env-Zeile keine Wirkung.

Hinweis zum Vorgehen

Der Branch liegt in einem Fork (reparix/renovate-config), weil mein Konto auf diesem Repo nur Lesezugriff hat.

## Befund Renovate lief ohne GitHub-Token und damit im anonymen Rate-Limit von api.github.com. Belegt im Debug-Log des Laufs `10455`: ``` WARN: Rate limit exceeded for api.github.com, as no hostRules set for this host. Please set a GITHUB_COM_TOKEN DEBUG: Datasource unknown error packageName: containerbase/node-prebuild WARN: No tool releases found. DEBUG: lock file error {"err": {"message": "No tool releases found."}, "type": "npm"} at generateLockFile (.../manager/npm/post-update/npm.ts) ``` Eine Ursache, zwei Symptome: | Symptom | Mechanismus | |---|---| | Pull Requests ohne Lockfile | npm/node werden zur Laufzeit ueber containerbase beschafft; dessen Versionsabfrage laeuft ueber die github-releases-Datasource. Im Rate-Limit gibt es kein Tool, damit bricht `generateLockFile` ab - ohne npm-Fehlertext. In den PRs sichtbar als "Artifact update problem" mit leerem Detailblock. | | Ausbleibende Updates | 40 Abfragen mit `skipReason: github-token-required`, darunter der Serverpin `pocketbase/pocketbase` aus Ticket 69 in fraley-it/pdfex. | Umfang im Lauf `10455`: 38 Branches mit `lock file error` (18 davon in `fraley-it/pdfex`), 28 mal "skipping branch creation". Betroffen waren auch `fraley-it/docker-services` und `fraley-it/www.linux-im-alltag.com` - das Problem war also nicht repo-spezifisch. ## Aenderung 1. `RENOVATE_GITHUB_COM_TOKEN` wird an den Renovate-Step durchgereicht. 2. Ein Waechter-Step davor bricht den Lauf ab, wenn das Secret fehlt oder anders heisst. Zum Namen: Gitea lehnt Secrets mit dem Praefix `GITHUB_` ab. Renovate leitet seine Env-Namen aus dem Optionsnamen ab (`githubComToken`), also `RENOVATE_GITHUB_COM_TOKEN` - damit sind Secret-Name und Variablenname identisch und ein Mapping-Fehler ist ausgeschlossen. Der Waechter ist bewusst Teil der Aenderung: Renovate ignoriert einen unbekannten Env-Namen kommentarlos. Ohne ihn sieht ein Tippfehler im Secret-Namen exakt so aus wie der heutige Fehlerzustand - keine Meldung, nur keine Pull Requests. Ausgegeben wird ausschliesslich die Zeichenzahl, nie der Wert. ## Verifikation - YAML geparst, Reihenfolge und Env-Schluessel geprueft (drei Steps, `RENOVATE_GITHUB_COM_TOKEN` am Renovate-Step vorhanden). - Waechter-Logik real ausgefuehrt, nicht abgeleitet: | Fall | Ergebnis | |---|---| | Variable nicht gesetzt | Exitcode 1, Meldung auf stderr | | Variable leer | Exitcode 1, Meldung auf stderr | | Variable gesetzt | Exitcode 0, Ausgabe "gesetzt (16 Zeichen)" - kein Wert im Log | - Das Secret `RENOVATE_GITHUB_COM_TOKEN` ist laut Betreiber im Repo hinterlegt. ## Nicht verifiziert - Der erste echte Lauf nach dem Merge steht noch aus. Nachweis danach: der Waechter-Step ist gruen, `as no hostRules set for this host` und `github-token-required` kommen im Log nicht mehr vor, und in `fraley-it/pdfex` entsteht der Pull Request `ARG PB_VERSION` 0.40.5 -> 0.40.6. - Gueltigkeit und Ablaufdatum des Tokens selbst sind von aussen nicht pruefbar. Laeuft er ab, kehrt der heutige Fehler zurueck - dann meldet sich der Waechter allerdings nicht, weil das Secret weiterhin gesetzt ist. - Nach dem Merge laufen die bisher blockierten Lockfile-Updates als Pull Requests nach (allein in pdfex 18 Branches). Sie durchlaufen seriell das neue CI-Gate; bei Bedarf drosselt `prConcurrentLimit` / `prHourlyLimit`. ## Rollback Commit zuruecknehmen oder die beiden Bloecke entfernen - der Zustand ist dann exakt der heutige. Das Secret kann unabhaengig davon bestehen bleiben, es hat ohne die Env-Zeile keine Wirkung. ## Hinweis zum Vorgehen Der Branch liegt in einem Fork (`reparix/renovate-config`), weil mein Konto auf diesem Repo nur Lesezugriff hat.
reparix added 1 commit 2026-11-12 15:54:34 +00:00
Renovate lief ohne Token gegen api.github.com und damit im anonymen
Rate-Limit. Folge laut Lauf-Log 10455: containerbase konnte die
npm-/node-Version nicht aufloesen (containerbase/node-prebuild ueber
github-releases), dadurch "No tool releases found" und "lock file error" -
38 Branches ohne Lockfile-Update, davon 18 in fraley-it/pdfex. Zusaetzlich
40 Abfragen mit "skipReason: github-token-required", darunter der neue
Serverpin pocketbase/pocketbase aus Ticket 69.

Der Secret-Name ist RENOVATE_GITHUB_COM_TOKEN, weil Gitea Secrets mit dem
Praefix GITHUB_ ablehnt und Renovate seine Env-Namen aus dem Optionsnamen
ableitet (githubComToken). Secret-Name und Variablenname sind damit gleich,
ein Mapping-Fehler ist ausgeschlossen.

Zusaetzlich ein Waechter-Step vor dem Lauf: fehlt das Secret oder heisst es
anders, bricht der Workflow sofort ab. Ohne ihn wuerde Renovate einen
unbekannten Env-Namen kommentarlos ignorieren und der heutige Fehlerzustand
bliebe unbemerkt bestehen. Ausgegeben wird nur die Zeichenzahl, nie der Wert.
frpa merged commit a7263f8f4d into main 2026-11-12 15:56:11 +00:00
Sign in to join this conversation.
No Reviewers
No labels
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: renovate/renovate-config#92