GitHub hat den temporären Request-Header X-GitHub-Stateless-S2S-Token eingeführt, um die schrittweise Einführung eines neuen Token-Formats für GitHub-App-Installationstoken zu unterstützen. Damit können Entwickler die Auswirkungen des neuen Token-Formats vorab testen und bei Bedarf weiterhin das bestehende Token-Format verwenden.
Wichtige Punkte
Header X-GitHub-Stateless-S2S-Token
Beim Request POST /app/installations/:installation_id/access_tokens kann dieser Header gesetzt werden, um die serverseitige Rollout-Entscheidung für das Token-Format zu überschreiben.
| Header-Wert | Wirkung |
|---|---|
enabled |
Gibt unabhängig vom Rollout-Fortschritt ein stateless (JWT-Format) Token zurück. |
disabled |
Gibt ein stateful (bisheriges opaques) Token zurück, auch wenn die Integration bereits im Rollout enthalten ist. |
| (nicht gesetzt) | Folgt dem normalen Rollout-Verhalten. |
Neues Token-Format (ghs_-präfixiertes JWT)
Die neuen stateless Tokens liegen im JWT-Format mit dem Präfix ghs_ vor, sind mit rund 520 Zeichen deutlich länger und enthalten zwei Punkte (.). Die bisherigen stateful Tokens sind kürzere opaque Strings ohne Punkte.
Entwickler sollten Folgendes prüfen, um sicherzustellen, dass ihre Anwendung das neue Token-Format korrekt verarbeitet.
- Entfernen hart codierter Annahmen zur Token-Länge
- Aktualisieren der für die Token-Validierung verwendeten regulären Ausdrücke (empfohlener Regex:
ghs_[A-Za-z0-9\._]{36,}) - Sicherstellen, dass Datenbankspalten zur Speicherung von Tokens mindestens 520 Zeichen zulassen
- Sicherstellen, dass Prüf- oder Validierungscode
ghs_-Tokens als opaque Strings behandelt
Vorbereitung
- Mit
enabledtesten: Den Endpoint mit dem Opt-in-Header aufrufen und prüfen, ob die App das neue Token-Format Ende-zu-Ende akzeptiert. - Mit
disabledtesten: Prüfen, ob die App auch mit dem bisherigen opaque Format funktioniert, damit sie weiterhin korrekt arbeitet, falls stateless Tokens vorübergehend nicht verfügbar sind. - Header entfernen: Sobald beide Pfade validiert sind, den Header entfernen. Der Rollout von GitHub verwaltet das Token-Format dann automatisch.
Hinweise
- Dieser Header ist temporär und wird zu einem künftig separat angekündigten Zeitpunkt nicht mehr unterstützt.
- Bestehende App-Installationstokens funktionieren weiter, bis sie ablaufen.
- Diese Änderung gilt für GitHub Enterprise Cloud und Data Residency-Umgebungen; GitHub Enterprise Server ist nicht betroffen.
- Künftige Rollouts werden das neue Token-Format nur auf GitHub-App-Installations-Server-to-Server-Tokens anwenden, einschließlich des Actions-
GITHUB_TOKEN.
Weitere Informationen finden sich im GitHub-Blog.
Noch keine Kommentare.