Qué es GitLab y cómo empezar a utilizarlo

Autor: Publicado

En resumen: GitLab es una plataforma para almacenar código, colaborar en los cambios y automatizar las pruebas y los despliegues de aplicaciones. Utiliza Git, un sistema que registra el historial de cambios en los archivos, y añade herramientas para organizar el trabajo y controlar la calidad. Puedes utilizar el servicio GitLab.com o instalar GitLab en tu propia infraestructura.

¿Para qué sirve GitLab y en qué se diferencia de Git?

Git permite saber quién modificó los archivos y cuándo, comparar sus versiones y recuperar un estado anterior del proyecto. También funciona de forma local en el ordenador, sin necesidad de tener una cuenta en ningún servicio. GitLab, en cambio, es una plataforma que ofrece un espacio de trabajo compartido para quienes utilizan Git.

La base del proyecto es el repositorio, un conjunto de archivos junto con su historial de cambios. GitLab permite consultar el repositorio desde el navegador, gestionar el acceso y debatir las modificaciones propuestas. Además de código, puede contener documentación, la configuración de un servidor o los archivos de texto de un sitio web.

GitLab no es un editor de código ni un sistema de gestión de contenidos como WordPress. Normalmente, el desarrollador escribe el código en su editor y después envía los cambios al repositorio. La plataforma ayuda a revisarlos y a llevarlos al entorno en el que se ejecuta la aplicación.

¿Cómo se colabora en los cambios?

Trabajar en GitLab no implica necesariamente modificar directamente la versión principal del proyecto. Un miembro del equipo crea una rama, una línea de desarrollo del código independiente, y registra en ella los cambios mediante commits, conjuntos de modificaciones acompañados de una descripción. Así se puede preparar una nueva función sin afectar de inmediato a la versión que utilizan los demás.

Cuando la propuesta está lista, se presenta mediante una merge request, una solicitud para fusionar los cambios con la rama elegida. Otras personas pueden comparar el código, dejar comentarios y señalar correcciones necesarias. Una vez cumplidas las condiciones acordadas, se fusionan los cambios; las aprobaciones exigidas y las reglas de acceso dependen de la configuración y de las funciones disponibles.

Por ejemplo, una agencia modifica el formulario de contacto del sitio web de un cliente. Un desarrollador prepara el cambio en una rama independiente, otra persona revisa la gestión de errores y una prueba automatizada comprueba que los datos se envíen correctamente. Solo después de estas comprobaciones, el equipo incorpora la modificación a la versión principal y la despliega en el sitio web.

Para comunicar errores y planificar tareas se utilizan las issues, registros que incluyen una descripción, una conversación y una persona responsable. Vincular una issue con una merge request facilita reconstruir no solo qué se cambió, sino también por qué.

¿Qué aporta la automatización CI/CD?

CI/CD significa integración continua y entrega o despliegue continuos de los cambios. La integración continua consiste en combinar con frecuencia el trabajo del equipo y comprobar el código de forma automática. La entrega prepara el software para su publicación, mientras que el despliegue también puede publicarlo automáticamente en el entorno de destino.

En GitLab, estas operaciones suelen definirse en el archivo .gitlab-ci.yml del repositorio. Forman un pipeline, un conjunto de tareas que se ejecutan según unas reglas determinadas. Las tareas las ejecuta un runner, un programa que ejecuta comandos en la infraestructura que tiene asignada.

Un pipeline sencillo para un sitio web puede:

  1. Comprobar la sintaxis y el formato del código.
  2. Ejecutar pruebas.
  3. Generar los archivos listos para su publicación.
  4. Enviarlos a un servidor de pruebas y, tras una aprobación manual, también al de producción.

El mero hecho de alojar un proyecto en GitLab no pone en marcha un proceso de despliegue completo. Es necesario configurar las tareas, disponer de un runner y conceder los permisos necesarios. Las contraseñas y las claves de acceso no deben guardarse en el código; para ello se utilizan variables CI/CD debidamente protegidas o un sistema de gestión de secretos. Las pruebas automatizadas solo detectan los problemas que están dentro de su alcance, por lo que un resultado en verde no garantiza la ausencia de errores.

¿GitLab.com o una instalación propia?

GitLab.com es un servicio mantenido por el proveedor. No tienes que instalar la plataforma, actualizarla ni administrar su servidor. Sin embargo, sigues siendo responsable de la configuración del proyecto, las cuentas de usuario, los permisos y la protección de las credenciales de acceso.

Una instalación propia, denominada GitLab Self-Managed, ofrece un mayor control sobre la infraestructura y el lugar donde se almacenan los datos. A cambio, requiere actualizaciones, supervisión, copias de seguridad y medidas de protección del sistema. Instalarla en un servidor de la empresa no implica automáticamente una mayor seguridad.

Para un equipo pequeño sin administrador, un servicio alojado suele ser la opción más práctica para empezar. Una instalación propia puede tener sentido si existen requisitos específicos de red, integración o datos. Antes de elegir, consulta la documentación oficial y las tarifas de GitLab para comprobar los límites de almacenamiento vigentes, las condiciones de facturación de las tareas CI/CD y la disponibilidad de las funciones que necesitas en cada plan.

GitLab frente a GitHub y primeros pasos

GitLab y GitHub son plataformas distintas que utilizan Git. Ambas permiten almacenar repositorios, revisar cambios, gestionar issues y automatizar el trabajo. En GitHub, el equivalente de una merge request es una pull request, y una de las herramientas de automatización es GitHub Actions.

Conviene basar la elección en las integraciones necesarias, los permisos, los costes de automatización y la experiencia del equipo. Trasladar únicamente el repositorio Git puede ser relativamente sencillo, pero migrar las issues, las conversaciones y la configuración de los despliegues requiere una preparación aparte.

Para empezar, crea un proyecto privado con un archivo README que describa su finalidad. Después, prepara un pequeño cambio en una rama independiente y abre una merge request. Esta prueba te permitirá conocer el flujo de trabajo básico antes de añadir automatización y acceso a los servidores.

Lee también

Descubre cómo PHP-FPM atiende peticiones PHP, en qué se diferencia de un servidor web y cómo ajustar sus procesos al tráfico y los recursos.
Conoce BIND, el software abierto de servidor DNS: sus funciones, cómo gestiona dominios y cuándo conviene instalarlo por tu cuenta.
Descubre qué son el registro REGON de Polonia y su número, en qué se diferencian de NIP y KRS y cómo verificar los datos de una empresa.