Personal access token GitHub : créer, utiliser avec Git, révoquer | We.Inc
Choisissez entre token fine-grained et classic grâce à un vérificateur rapide, créez le token, utilisez-le pour git en HTTPS, stockez-le dans un credential helper et gérez son expiration et sa révocation.
Un personal access token remplace votre mot de passe GitHub quand git communique avec GitHub en HTTPS ou quand un script appelle l'API. Créez-en un dans Settings, Developer settings, Personal access tokens, choisissez fine-grained sauf si vous avez besoin d'une fonction classic, et collez-le quand git demande un mot de passe.
Tokens fine-grained et classic comparés
Fine-grained
Classic
Portée
Dépôts choisis avec des permissions par domaine
Scopes larges sur tous les dépôts auxquels vous avez accès
Recommandation de GitHub
À utiliser par défaut
Seulement quand fine-grained ne suffit pas
Dépôts publics dont vous n'êtes pas membre
Contribution impossible
Écriture possible
Plusieurs organisations dans un seul token
Non
Oui
Packages et Checks API
Non pris en charge
Pris en charge
Limite par compte
Aucune limite indiquée dans la documentation
GitHub n'accepte plus les mots de passe de compte pour git en HTTPS, donc cloner un dépôt privé ou pousser depuis un serveur nécessite un token, une clé SSH ou un gestionnaire d'identifiants. Cette page vous aide à choisir le type de token, montre où le créer et explique les façons plus sûres de le conserver sur votre machine au lieu de le coller à chaque fois.
Répondez aux questions du vérificateur pour savoir si un token fine-grained couvre votre cas.
Ouvrez votre photo de profil, puis Settings, Developer settings, Personal access tokens, et choisissez le type suggéré par le vérificateur.
Définissez une expiration, choisissez les dépôts et les permissions, générez le token et copiez-le aussitôt : GitHub ne l'affiche qu'à la création.
Utilisez-le comme mot de passe pour git en HTTPS, ou mieux, connectez-vous une fois avec la GitHub CLI ou Git Credential Manager pour qu'il soit stocké à votre place.
Donnez à chaque token une seule mission et le minimum de dépôts et de permissions nécessaires, pour qu'une fuite expose le moins possible.
Définissez toujours une date d'expiration. Un rappel dans l'agenda avant l'échéance vaut mieux qu'un déploiement cassé un vendredi.
Ne mettez jamais un token dans un dépôt ou un gist. GitHub révoque les tokens qu'il trouve dans des dépôts publics, et dans un dépôt privé c'est quand même une fuite.
Pour les serveurs et la CI, préférez les deploy keys ou les identifiants de courte durée de la plateforme à un token personnel lié à votre compte.
Questions fréquentes
Pourquoi git dit-il que l'authentification par mot de passe n'est pas prise en charge ?
GitHub n'accepte plus le mot de passe de votre compte pour git en HTTPS. Quand git demande un mot de passe, collez plutôt un personal access token, ou passez à SSH, à la GitHub CLI ou à Git Credential Manager.
Quelles permissions un token fine-grained doit-il avoir pour pousser du code ?
Sélectionnez les dépôts, puis dans les permissions du dépôt réglez Contents sur lecture et écriture. N'ajoutez d'autres permissions que si un script en a besoin, comme Pull requests ou Issues.
Les personal access tokens expirent-ils ?
Vous choisissez une expiration à la création, et les organisations peuvent imposer un maximum. Par ailleurs, GitHub révoque automatiquement un personal access token inutilisé depuis un an.
Comment révoquer un token ?
Allez dans Settings, Developer settings, Personal access tokens, ouvrez le token et supprimez-le. Tout remote git ou script qui l'utilise cesse immédiatement de fonctionner, alors remplacez-le partout où il était stocké.
Faut-il utiliser un token ou SSH ?
Les deux fonctionnent avec git. Les clés SSH n'expirent jamais sauf si vous les supprimez et conviennent à votre propre ordinateur. Les tokens conviennent aux réseaux limités au HTTPS, aux scripts qui appellent aussi l'API et aux cas où vous voulez une expiration automatique.
Stocker le token au lieu de le coller
GitHub conseille lui-même de laisser la GitHub CLI ou Git Credential Manager gérer l'authentification. Lancez gh auth login, choisissez HTTPS, et les commandes git sont ensuite authentifiées sans token dans votre presse-papiers.
Git Credential Manager est fourni avec Git for Windows et peut s'installer sur macOS et Linux. Il conserve les identifiants dans le stockage sécurisé du système et gère la connexion à deux facteurs via le navigateur.
Les organisations peuvent devoir approuver les tokens
Une organisation peut exiger une approbation pour les tokens fine-grained, les restreindre ou bloquer les tokens classic. Si votre token fonctionne sur vos dépôts personnels mais pas sur ceux de l'entreprise, demandez la politique en vigueur à un propriétaire de l'organisation.
Utiliser un token avec git
Se connecter une fois avec la GitHub CLI
Choisissez GitHub.com, puis HTTPS, puis connectez-vous via le navigateur. La CLI configure git pour utiliser l'identifiant stocké.
Coller le token quand git demande un mot de passe
Saisissez votre nom d'utilisateur GitHub, puis collez le token comme mot de passe. Un credential helper peut ensuite l'enregistrer.
Utiliser un token dans un script sans l'enregistrer sur le disque
Lisez le token depuis une variable d'environnement pour qu'il n'apparaisse jamais dans le fichier du script ni dans l'URL du remote du dépôt.
Contribuer à un dépôt public dont je ne suis pas membre
Travailler sur les dépôts d'une organisation en tant que collaborateur externe
Accéder aux dépôts de plusieurs organisations avec un seul token
Utiliser GitHub Packages
Utiliser la Checks API
De quel type de token ai-je besoin ?
Cochez tout ce que le token doit pouvoir faire :
Un token fine-grained couvre ce besoin. GitHub le recommande par défaut.
Il vous faut un token classic pour : {v}. Donnez-lui les scopes les plus restreints et une expiration.
Où le créer
Settings > Developer settings > Personal access tokens > Fine-grained tokens > Generate new token
Settings > Developer settings > Personal access tokens > Tokens (classic) > Generate new token