Skip to main content

Résolution des problèmes de vérification GPG pour GitHub Codespaces

Cet article fournit des conseils sur la résolution des problèmes liés à la signature de vos commits dans les codespaces.

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.

Shell
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 configurationValeur requise
user.nameDoit correspondre au nom complet défini dans votre profil GitHub
credential.helperIl doit être défini sur /.codespaces/bin/gitcredential_github.sh
gpg.programIl 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.

  1. Sur votre machine locale, ouvrez un terminal.

  2. Pour supprimer la valeur en conflit de ~/.gitconfig (Mac/Linux) ou C:\Users\YOUR-USER\.gitconfig (Windows), utilisez la commande git config --global --unset.

    git config --global --unset gpg.program
    
  3. Poussez le changement vers votre dépôt de dotfiles sur GitHub.

  4. É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 configuration PATH/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.

Shell
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.

  1. Dans le coin inférieur gauche de la fenêtre, sélectionnez , puis cliquez sur Paramètres.

    Capture d’écran d’une section du client web VS Code. Une icône d’engrenage et l’option « Paramètres » d’un menu sont toutes deux mises en surbrillance avec un contour orange.

  2. Sous l’onglet « Utilisateur », dans la barre de recherche, recherchez « gpg ».

  3. Vérifiez que le paramètre « Active la signature de validation avec GPG ou X.509 » est désélectionné.

    Capture d’écran de l’onglet des paramètres « Utilisateur ». Une case à cocher désélectionnée, intitulée « Active la signature de validation avec GPG ou X.509 », est mise en surbrillance avec un contour orange.

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