Git para integración continua: ¿Cómo preparar Git para pipelines?

Git para integración continua: ¿Cómo preparar Git para pipelines?

¿Qué es Git?

Git es una herramienta que ayuda a monitorear los cambios que se van realizando al código. Si no conoces Git, te recomiendo que eches al menos te familiarices con sus comandos básicos antes de adentrarte al uso de Gitlab.

¿Qué es una llave SSH?

Si acabas de crear una cuenta de Gitlab, la aplicación te pedirá que crees un nuevo proyecto y además que proveas una llave SSH. Esto te permitirá realizar los cambios desde tu equipo y empujarlos al repositorio, aunque también es posible realizar esto desde el editor web de Gitlab que hemos estado utilizando.

¿Cómo generar una llave SSH?

Primero vamos a verificar que git no se encuentre instalado.

git --version

Si git no se encuentra instalado esto arrojará el mensaje.

Command 'git' not found...

Para instalar git, dependiendo de nuestra distribución realizamos la instalación (suponiendo en este caso Debian/Ubuntu).

sudo apt install git

El proceso de instalación descargara e instalará todos los paquetes necesarios.

Repetimos el comando git --version y este debe mostrarnos la versión de git instalada.

Ahora vamos a definir la configuración global para nuestros proyectos, primero empezando con el nombre de usuario que es aquel que será utilizado en nuestros commits.

git config --global user.name "John Doe"

Reemplaza John Doe por tu nombre.

También definimos el correo electrónico asociado a nuestros commits.

git config --global user.email "[email protected]"

Reemplaza [email protected] por tu correo electrónico.

El siguiente paso es ir a Gitlab y clonar tu repositorio. Dentro de la lista de repositorios utiliza el botón Clone y copia la dirección SSH provista para dicho repositorio.

Existen dos formas de clonar un repositorio, una es mediante SSH y otra mediante HTTPS. Utilizar SSH es una forma mas segura de comunicarnos ya que los datos como nombre de usuario y contraseña no quedan expuestos.

Después de copiar la dirección SSH, vamos a la terminar y clonamos el proyecto.

git clone [email protected]:miusuario/miproyecto.git

Al clonar nuestro primer proyecto nos mostrará un error si nuestra llave SSH no ha sido definida.

Permission denied (publickey, keyboard-interactive)

Para generar nuestra llave ssh ejecutamos el siguiente comando.

ssh-keygen

El asistente nos pedirá:

  • El path en donde se guardará la llave /home/user/.ssh/id_rsa.
  • El passphrase (ingresa una contraseña aquí, esta será solicitada cuando realices operaciones con tu repositorio).

Se generará tu llave pública /home/user/.ssh/id_rsa.pub que es la que contiene la información a proporcionarle a Gitlab.

Copiamos el contenido generado dentro de /home/user/.ssh/id_rsa.pub.

Vamos a User Settings > SSH Keys > Key.

En caso de que deseemos eliminar el acceso a esta llave, solo basta eliminarla de la lista de llaves con acceso al repositorio.

Intentamos acceder nuevamente al repo.

git clone [email protected]:miusuario/miproyecto.git

Al intentar clonar el repo este nos va a solicitar la contraseña que definimos para nuestra llave SSH.

En este punto debe ser posible solicitar las actualizaciones del repo (pull) y enviar nuevos cambios (push).