martes, 28 de julio de 2015

Git. Firmando tu trabajo.

En algunos post anteriores ya había hablado de git, de criptografía y de como generar un par de llaves. Y es que cuando hablamos de trabajo en equipo y la autenticidad y no repudio de la información, un commit con tu nombre no es suficiente a veces, y por ello git nos ayuda en estos casos. Pero no solo para firmar commits, si no para crear tags y poder asegurar la integridad del trabajo del día a día.

Primero, y debemos aclarar, debemos generar un par de llaves con el siguiente comando.

gpg --gen-key

O si ya tienes unas generadas, listar para poder sacar el id de la llave que vamos a usar para poder firmar con git.

gpg --list-keys 
/home/uetiko/.gnupg/pubricng.gpg 
--------------------------------------
pud 2048D/CA5B3485 2014-07-05
uid                                         Uetiko
sub  2048C/EF7A4E93 2014-07-05

Ya con esto, le decimos a git que id va a usar (en caso de que tuvieran mas) para poder firmar tags y commits.

git config --global user.signingkey CA5B3485

Recuerden usar tanto para tag -s como para commit -S que es la opción que usa el correo y la llave que le hemos dado a git por default.

Supongamos que vamos a hacer un tag para la versión estable 1.0, la que contiene muchos logros y sacrificios de todo el equipo.

git tag -s v1.0 -m 'Por fin la primer versión y todos estamos ebrios de la emoción'


Recuerda que si firmas tus commits y en el desarrollo hay commits no formados, hacer un merge puede fallar, debido a que no podrá verificar la integridad de la llave gpg de confianza

git merge --verify-signatures non-verify

Esto nos generara un error fatal y nos impedirá realizar el marge. Pero no todo es caotico, ya que si hacemos el merge y lo firmamos, estaremos firmando todos los commist no firmados con nuestra llave.

Usar esto es grandioso, peor debes asegurarte que todos en el equipo entiendan como hacerlo o se volverá tedioso y conllevara una perdida de tiempo ayudando al resto para subir sus commits no firmados.

Las ventajas de usar la firma electronica son muchas, pero uno debe entender GPG para poder usarlo en el flujo de trabajo.

Happy hacking.