GitHub a introduit un en-tête de requête temporaire, X-GitHub-Stateless-S2S-Token, afin de prendre en charge l’adoption progressive d’un nouveau format de jeton pour les jetons d’installation GitHub App. Cet en-tête permet aux développeurs de tester à l’avance l’impact du nouveau format de jeton et, si nécessaire, de conserver l’ancien format.
Points clés
En-tête X-GitHub-Stateless-S2S-Token
Lors d’une requête POST /app/installations/:installation_id/access_tokens, vous pouvez définir cet en-tête pour surcharger la décision côté serveur concernant le déploiement du format de jeton.
| Valeur de l’en-tête | Effet |
|---|---|
enabled |
Renvoie un jeton sans état (format JWT), indépendamment de l’état d’avancement du déploiement. |
disabled |
Renvoie un jeton avec état (ancien format opaque), même si l’intégration fait partie du déploiement. |
| (absent) | Suit le comportement normal du déploiement. |
Nouveau format de jeton (JWT préfixé par ghs_)
Le nouveau jeton sans état est au format JWT avec le préfixe ghs_, mesure environ 520 caractères et contient deux points (.). Les anciens jetons avec état sont de courtes chaînes opaques sans point.
Les développeurs doivent vérifier les points suivants afin de s’assurer que leur application gère correctement le nouveau format de jeton :
- Supprimer les hypothèses codées en dur sur la longueur des jetons
- Mettre à jour les expressions régulières utilisées pour valider les jetons (expression recommandée :
ghs_[A-Za-z0-9\._]{36,}) - Configurer les colonnes de base de données stockant les jetons pour qu’elles acceptent au moins 520 caractères
- Faire en sorte que le code d’inspection ou de validation des jetons traite les jetons
ghs_comme des chaînes opaques
Comment se préparer
- Tester avec
enabled: appelez l’endpoint avec l’en-tête d’opt-in et vérifiez que l’application accepte le nouveau format de jeton de bout en bout. - Tester avec
disabled: vérifiez que l’application fonctionne aussi avec l’ancien format opaque afin de garantir un fonctionnement normal même si les jetons sans état sont temporairement indisponibles. - Retirer l’en-tête : une fois les deux parcours validés, supprimez l’en-tête. Le déploiement de GitHub gérera alors automatiquement le format du jeton.
À noter
- Cet en-tête est temporaire et ne sera plus pris en charge à une date qui sera annoncée ultérieurement.
- Les jetons d’installation d’app existants continueront de fonctionner jusqu’à leur expiration.
- Ce changement s’applique aux environnements GitHub Enterprise Cloud et Data Residency ; GitHub Enterprise Server n’est pas concerné.
- Les futurs déploiements appliqueront le nouveau format uniquement aux jetons server-to-server d’installation GitHub App (y compris
GITHUB_TOKENd’Actions).
Pour en savoir plus, consultez le blog GitHub.
Aucun commentaire pour le moment.