Si vous activez la vérification GPG, GitHub Codespaces signe automatiquement vos commits dans les codespaces que vous créez à partir des dépôts sélectionnés. Pour plus d’informations, consultez « Gestion de la vérification GPG pour GitHub Codespaces ».
Une fois que vous avez activé la vérification GPG, elle prend effet automatiquement dans tous les nouveaux codespaces que vous créez à partir des dépôts appropriés. Pour que la vérification GPG prenne effet dans un codespace actif existant, vous devez arrêter et redémarrer le codespace. Pour plus d’informations, consultez « Arrêt et démarrage d’un codespace ».
Si GitHub Codespaces ne parvient pas à signer une validation, vous pouvez consulter le message d’erreur gpg failed to sign the data
dans la ligne de commande ou dans une fenêtre contextuelle Visual Studio Code.
Les sections suivantes de cet article fournissent des conseils de résolution des problèmes pour les causes courantes de cette erreur.
- Si la vérification GPG a déjà été activée dans vos paramètres pour GitHub Codespaces et que vous avez récemment désactivé la vérification GPG ou supprimé un référentiel de votre liste de référentiels approuvés, Git tente toujours de signer vos validations. Pour plus d’informations, consultez « Erreurs après la désactivation de la vérification GPG ».
- Si la vérification GPG est activée pour le codespace, vous avez peut-être remplacé la configuration Git requise pour signer vos validations. Pour plus d’informations, consultez « Erreurs provoquées par une configuration Git en conflit ».
- Si la vérification GPG est désactivée pour le codespace et que vous rencontrez l’erreur lors de la tentative de validation à partir de l’affichage « Contrôle de code source » dans VS Code, cela peut être dû à vos paramètres VS Code. Pour plus d’informations, consultez Erreurs dans l’affichage « Contrôle de code source » VS Code ».
Erreurs après la désactivation de la vérification GPG
Quand vous activez la vérification GPG, GitHub Codespaces signe tous les commits que vous effectuez dans les codespaces par défaut. Pour ce faire, il affecte true
à la valeur de configuration Git commit.gpgsign
.
Si vous avez désactivé la vérification GPG, et si vous travaillez dans un codespace existant, cette valeur est toujours true
. Cela signifie que GitHub Codespaces va essayer de signer vos commits, mais qu’il ne pourra pas le faire, car vous avez désactivé le paramètre de vérification GPG.
Pour continuer à effectuer des commits normaux et non signés dans votre codespace, réinitialisez commit.gpgsign
à la valeur par défaut false
en entrant la commande suivante dans le terminal.
git config --unset commit.gpgsign
git config --unset commit.gpgsign
Pour vérifier que la valeur a été correctement supprimée de votre configuration, vous pouvez entrer git config --list
. Vous ne devez pas voir de valeur pour commit.gpgsign
dans la liste.
Erreurs causées par un conflit de configuration Git
Pour signer automatiquement vos commits, GitHub Codespaces définit certaines valeurs de configuration Git dans votre codespace. Si vous remplacez les valeurs définies par GitHub Codespaces, vous ne pourrez peut-être pas signer vos commits.
Vous pouvez remplacer ces valeurs par inadvertance si vous avez lié GitHub Codespaces à un dépôt de dotfiles qui contient des fichiers config Git. Pour plus d’informations sur l’utilisation des dotfiles avec GitHub Codespaces, consultez « Personnalisation de GitHub Codespaces pour votre compte ».
Recherche des conflits de configuration
Pour signer vos commits avec GPG, GitHub Codespaces définit automatiquement les valeurs de configuration Git suivantes au niveau du système.
Paramètre de configuration | Valeur requise |
---|---|
user.name | Doit correspondre au nom complet défini dans votre profil GitHub |
credential.helper | Il doit être défini sur /.codespaces/bin/gitcredential_github.sh |
gpg.program | Il doit être défini sur /.codespaces/bin/gh-gpgsign |
Pour vérifier que ces valeurs sont correctement définies dans un codespace, vous pouvez utiliser la commande git config --list --show-origin
. Dans la mesure où GitHub Codespaces définit cette configuration au niveau du système, les paramètres de configuration nécessaires doivent provenir de /usr/local/etc/gitconfig
.
$ git config --list --show-origin
file:/usr/local/etc/gitconfig credential.helper=/.codespaces/bin/gitcredential_github.sh
file:/usr/local/etc/gitconfig user.name=Mona Lisa
file:/usr/local/etc/gitconfig gpg.program=/.codespaces/bin/gh-gpgsign
En plus des valeurs listées ci-dessus, vous pouvez rencontrer des erreurs si les dotfiles utilisés dans vos codespaces contiennent l’une des valeurs suivantes.
- Valeur de configuration Git
user.signingkey
- Valeur de configuration Git
commit.gpgsign
GITHUB_TOKEN
défini manuellement
Suppression d’une configuration en conflit
Si vous souhaitez que la vérification GPG automatique pour GitHub Codespaces reste activée, vous devez supprimer les configurations en conflit dans les dotfiles utilisés au sein de vos codespaces.
Par exemple, si le fichier .gitconfig
global sur votre machine locale contient une valeur gpg.program
, et si vous avez poussé ce fichier vers un dépôt de dotfiles lié à GitHub Codespaces, vous pouvez supprimer gpg.program
dans ce fichier, et le définir à la place au niveau du système sur votre machine locale.
Remarque : Tout changement apporté à votre dépôt de dotfiles s’applique aux nouveaux codespaces que vous créez, mais pas à vos codespaces existants.
-
Sur votre machine locale, ouvrez un terminal.
-
Pour supprimer la valeur en conflit de
~/.gitconfig
(Mac/Linux) ouC:\Users\YOUR-USER\.gitconfig
(Windows), utilisez la commandegit config --global --unset
.git config --global --unset gpg.program
-
Poussez le changement vers votre dépôt de dotfiles sur GitHub.
-
Éventuellement, pour conserver votre configuration locale, définissez à nouveau la valeur dans un fichier config Git que vous ne poussez pas vers votre dépôt de dotfiles.
Par exemple, vous pouvez utiliser l’indicateur
--system
pour définir la configurationPATH/etc/gitconfig
dans le fichier au niveau du système, oùPATH
correspond au répertoire dans lequel Git est installé sur votre système.git config --system gpg.program gpg2
Si votre dépôt de dotfiles contient un script d’installation dans un fichier reconnu tel que install.sh
, vous pouvez également utiliser la variable d’environnement $CODESPACES
pour ajouter une logique conditionnelle, par exemple en définissant uniquement gpg.program
quand vous n’êtes pas dans un codespace. Dans l’exemple suivant, -z "$CODESPACES"
retourne true
si vous n’êtes pas dans un codespace.
if [ -z "$CODESPACES" ]; then git config --global gpg.program gpg2 fi
if [ -z "$CODESPACES" ]; then
git config --global gpg.program gpg2
fi
Erreurs dans l’affichage « Contrôle de code source » VS Code ».
Si la vérification GPG est désactivée dans vos paramètres pour GitHub Codespaces, ou si le référentiel à partir duquel vous avez créé le codespace ne figure pas dans votre liste de référentiels approuvés, Git ne doit pas tenter de signer vos validations. Si vous rencontrez une erreur de signature lors de la tentative de validation à partir de l’affichage « Contrôle de code source » dans VS Code, vous devez vérifier les paramètres VS Code dans votre codespace.
-
Dans le coin inférieur gauche de la fenêtre, sélectionnez , puis cliquez sur Paramètres.
-
Sous l’onglet « Utilisateur », dans la barre de recherche, recherchez « gpg ».
-
Vérifiez que le paramètre « Active la signature de validation avec GPG ou X.509 » est désélectionné.
Si vous constatez que ce paramètre est activé, vous devez décocher la case pour arrêter VS Code d’essayer de signer vos validations ou vous devez activer la vérification GPG pour le référentiel dans lequel vous travaillez afin que vos validations puissent être signées correctement.
Si vous modifiez vos paramètres VS Code, vous devez vous assurer que la synchronisation des paramètres est activée si vous souhaitez partager vos modifications avec d’autres codespaces que vous créez. Vous devez uniquement activer la synchronisation des paramètres dans les codespaces créés à partir de référentiels que vous approuvez. Pour plus d’informations, consultez « Personnalisation de GitHub Codespaces pour votre compte ».
Pour aller plus loin
- « À propos de la vérification des signatures de commit »
git config
dans la documentation officielle de Git