Un jeton copié une fois dans une variable ou un script peut cesser de fonctionner à son expiration. Le 21 octobre 2026, GitHub a annoncé l’aperçu public d’identifiants OAuth à expiration avec renouvellement automatique dans GitHub CLI. Ce mode est facultatif et destiné aux flux de travail où l’authentification est gérée par la CLI elle-même.

Activer le renouvellement des identifiants
Il faut utiliser GitHub CLI version 2.103.0 ou ultérieure. Pour une connexion ponctuelle, ajoutez l’option --expiring :
gh auth login --expiring
Pour demander des identifiants renouvelables lors des connexions suivantes, exécutez :
gh config set expiring_credentials enabled
La CLI stocke un jeton d’accès à expiration avec un jeton d’actualisation rotatif et renouvelle les identifiants lorsqu’ils sont nécessaires. La commande gh auth status affiche l’état de l’authentification et la date d’expiration du jeton actuel. L’option demande des identifiants renouvelables ; leur émission dépend des capacités de l’hôte et de la configuration de l’application OAuth. Si le serveur ne les prend pas en charge, la CLI utilise un jeton classique sans expiration.
Configurer Git pour utiliser les identifiants
Pour les dépôts en HTTPS, configurez GitHub CLI comme gestionnaire d’identifiants Git :
gh auth setup-git
Git demande alors les identifiants à gh, qui peut les renouveler avant leur utilisation. GitHub recommande Git version 2.46 ou ultérieure : cette version permet à la CLI de signaler les identifiants à expiration, afin que Git ne les mette pas en cache après leur date d’expiration. Avec une version plus ancienne, GitHub CLI fonctionne aussi, mais propose une fois de mettre à niveau Git.
Après la configuration, vérifiez une opération Git ordinaire en HTTPS, par exemple la lecture de l’état du dépôt distant. Assurez-vous que Git obtient les identifiants par l’intermédiaire du gestionnaire : cela vérifie l’ensemble du parcours d’authentification, et pas seulement la connexion à la CLI.
Vérifier les scripts et les applications externes
Un point vulnérable est un script ou une extension qui exécute une fois gh auth token, enregistre la chaîne obtenue et la réutilise plus tard : ce jeton d’accès peut expirer. Si un processus externe a besoin d’un jeton, demandez-en un nouveau à chaque exécution avec gh auth token. Le consommateur doit pouvoir utiliser la valeur à jour et gérer l’expiration du jeton.
Avant d’activer ce mode dans un environnement de travail, vérifiez les tâches CI, les scripts locaux, les extensions d’éditeur et les outils qui récupèrent le jeton depuis une variable d’environnement ou un fichier de configuration. Déterminez s’ils demandent une valeur à jour au démarrage ou s’ils reposent sur une copie enregistrée. Pour les processus qui nécessitent un jeton à longue durée de vie, conservez le mode d’authentification actuel.
Disponibilité de la fonctionnalité
GitHub a annoncé la prise en charge sur github.com et ghe.com. GitHub Enterprise Server émet ces identifiants à partir de la version 3.23 ; dans les versions antérieures, la demande d’identifiants renouvelables bascule vers un jeton classique sans expiration. Le mode reste facultatif pour le moment ; GitHub prévoit de l’activer par défaut à terme pour les nouvelles connexions.
En pratique : mettez à jour GitHub CLI, activez la demande d’identifiants renouvelables, configurez Git avec gh auth setup-git et vérifiez que les processus externes n’enregistrent pas le jeton. Cela permet de détecter les scénarios incompatibles avant le changement.
GitHub a publié les détails dans son annonce de l’aperçu et dans la documentation de la commande gh auth login.