Table des matières

, , , , ,

Git : Signer ses travaux

Confère le wiki configuration de git pour la mise en place du paramétrage nécessaire à la signature. Pour signer les travaux git utilise gpg ou gpg2.

Pour activer la signature systématique des commits, ici l'option de portée --global permet de le définir pour tous les dépôts de l’utilisateur courant:

git config --global commit.gpgsign true

Signer un commit

Si le client git n'est pas configuré pour signer systématiquement les commits, on peut signaler ponctuellement quel commit signer via l'argument -S:

git commit -S -m "Modifications apportées"

Signer un tag

Les tags peuvent également être signés, pour cela utiliser l'argument -s

git tag alpha-0.3 -s -m 'version alpha 0.3'

Pour vérifier un tag signé utiliser l'argument -v:

git tag -v alpha-0.3 

Afficher les informations de signature

Par défaut les informations de signature ne sont pas systématiquement affichées.

Sur le log

Il est possible via la commande git log d'ajouter l' option --show-signature affichant les informations de signature:

git log --show-signature

Sur un commit

La commande git show permet d'afficher le commit et les informations de signature via l'option --show-signature:

# En utilisant un tag
git show master --show-signature
 
# En utilisant le SHA de l' objet
git show 7554255 --show-signature

Vérifier du code signé

Vérifier un tag

Pour vérifier un tag signé, utiliser l'option -v. La vérification s'appuie sur GPG, le trousseau de l'utilisateur doit contenir la clé publique du signataire pour que l' opération puisse aboutir.

git tag -v alpha-1.1

Vérification avant fusion

A partir de la version 1.8.3 les commandes git merge et git pull peuvent vérifier et rejeter des commits sans signature appartenant à son réseau de confiance en utilisant l'option --verify-signatures.

git merge --verify-signatures non-verify-branch

Le merge est une forme de commit, on peut donc le signer via l'option -S:

git merge --verify-signatures -S  signed-branch

Références