GitLab es un popular sistema de control de versiones (VCS) que se usa, sobre todo, en el ámbito del de­sa­rro­llo de software. En el año 2011, Dimitri Sa­pa­ro­s­chez escribió y publicó este software, basado en la web, en el lenguaje Ruby on Rails. Hoy en día, se ha co­n­ve­r­ti­do en im­pre­s­ci­n­di­ble para los de­sa­rro­lla­do­res.

La ventaja principal de GitLab es que facilita no­ta­ble­me­n­te el de­sa­rro­llo de software ágil entre varios equipos. De esta manera, varios de­sa­rro­lla­do­res pueden trabajar si­mu­l­tá­nea­me­n­te en un proyecto y editar, por ejemplo, di­fe­re­n­tes funciones de forma paralela. La pro­to­co­li­za­ción continua de todos los procesos garantiza que no se pierda ninguna mo­di­fi­ca­ción del código ni que se so­bre­s­cri­ba de forma no in­te­n­cio­na­da. También es posible deshacer rá­pi­da­me­n­te los cambios ya aplicados.

GitLab se basa en el software de gestión de versiones de uso común Git. Git está di­s­po­ni­ble de forma gratuita como software de código abierto y es co­n­si­de­ra­do uno de los sistemas de control de versiones más usados en general. GitLab es una de las al­te­r­na­ti­vas a GitHub más populares (cuando Microsoft se hizo con GitHub en 2018, muchos usuarios se cambiaron a GitLab).

¿Cómo funciona GitLab?

GitLab es una apli­ca­ción basada en la web con una interfaz gráfica de usuario que también puede in­s­ta­lar­se en un servidor propio. El núcleo de GitLab lo forman los proyectos en los que se guarda el código que va a editarse en archivos digitales, los de­no­mi­na­dos re­po­si­to­rios. En estos di­re­c­to­rios de proyecto se en­cue­n­tran todos los co­n­te­ni­dos y archivos de un proyecto de software, es decir, archivos Ja­va­S­cri­pt, HTML, CSS o PHP, entre otros.

En este tutorial de GitLab te ex­pli­ca­mos cómo funciona. Para comenzar, todos los im­pli­ca­dos en el proyecto se descargan una copia propia del re­po­si­to­rio central en su ordenador. A partir de ahí, los cambios del código se realizan mediante de­no­mi­na­dos commits. Una vez realizada la edición, los cambios se integran en el re­po­si­to­rio principal.

Otra función im­po­r­ta­n­te es la ra­mi­fi­ca­ción. Esta permite a los usuarios crear una “rama” que se bifurca de la parte principal del código y que se puede editar de forma in­de­pe­n­die­n­te a este. Esta función es es­pe­cia­l­me­n­te útil a la hora de in­tro­du­cir y probar nuevas funciones sin que esto afecte al de­sa­rro­llo de la línea principal.

Gracias a la entrega e in­te­gra­ción continuas in­te­gra­das, GitLab es perfecto para trabajar con ra­mi­fi­ca­ción y ofrece funciones muy útiles como so­li­ci­tu­des de co­m­bi­na­ción y la creación de bi­fu­r­ca­cio­nes. Por ello, el software es una de las he­rra­mie­n­tas de in­te­gra­ción continua más populares.

Vista general de las funciones de GitLab

Entre las funciones más im­po­r­ta­n­tes de GitLab se en­cue­n­tran las si­guie­n­tes:

  • Interfaz fácil de usar
  • Las ra­mi­fi­ca­cio­nes pueden pe­r­ma­ne­cer privadas o pu­bli­car­se
  • Po­si­bi­li­dad de gestionar varios re­po­si­to­rios
  • Revisión de códigos
  • Lo­ca­li­za­ción integrada de errores y problemas
  • In­te­gra­ción continua y entrega continua (CI/CD, por sus siglas en inglés) in­te­gra­das de forma gratuita
  • Wikis de proyectos
  • Creación sencilla de fra­g­me­n­tos de código para dividir partes del código.

Modelos de licencia y uso de GitLab

GitLab está basado en un código fuente abierto y de acceso libre. En el año 2013 se creó una versión En­te­r­pri­se propia para empresas, por lo que ahora hay dos modelos de uso:

  • GitLab CE: Community-Edition (gratuita)
  • GitLab EE: En­te­r­pri­se-Edition (de pago)

Ambas versiones están basadas en la licencia de código abierto MIT. La En­te­r­pri­se-Edition cuenta con algunas funciones adi­cio­na­les en co­m­pa­ra­ción con la Community. En este contexto, GitLab ofrece tres modelos de su­s­cri­p­ción en función del alcance de las funciones adi­cio­na­les deseadas.

La En­te­r­pri­se-Edition también se puede usar de manera gratuita, pero solo con las funciones básicas de la Community-Edition. Esta opción está pensada para casos en los que más adelante convenga pasarse a la variante En­te­r­pri­se, ya que basta un clic para realizar el cambio. El paso desde la versión Community es bastante más co­m­pli­ca­do y requiere más tiempo.

In­s­ta­la­ción de GitLab: así se hace

Por norma general, re­co­me­n­da­mos un entorno Linux para usar GitLab, ya que al igual que Git, GitLab está concebido de fábrica para Linux. El uso en Windows implica una serie de re­s­tri­c­cio­nes, en estos casos, puede usarse una máquina virtual que simula un entorno Linux en un ordenador con Windows. Una opción menos co­m­pli­ca­da es la in­s­ta­la­ción del de­no­mi­na­do GitLab Runner que también se requiere para usar la in­te­gra­ción continua de GitLab.

GitLab en servidor propio o en la nube

La in­s­ta­la­ción de GitLab en un servidor propio no supone ninguna co­m­pli­ca­ción para cualquier usuario que conozca Linux, pero lleva bastante tiempo. Al margen de la in­s­ta­la­ción en sí, hay que dedicar algo de tiempo a la co­n­fi­gu­ra­ción y al trabajo de ma­n­te­ni­mie­n­to regular.

Si quieres evitar todo esto, también puedes usar GitLab como software as a service (SaaS) e in­s­ta­lar­lo y eje­cu­tar­lo en un servidor en la nube (hay varios pro­vee­do­res). De esta manera podrás usar el software rá­pi­da­me­n­te y ya co­n­fi­gu­ra­do, sin necesidad de in­s­ta­la­ción. Por norma general, también viene incluida la in­s­ta­la­ción del GitLab Runner, así que podrás comenzar in­me­dia­ta­me­n­te.

La ventaja de la in­s­ta­la­ción manual en un entorno de servidor propio es que esto aporta una mayor fle­xi­bi­li­dad. Los usuarios gozan de total libertad en la in­s­ta­la­ción: pueden decidir li­bre­me­n­te acerca de copias de seguridad, ac­tua­li­za­cio­nes o recursos adi­cio­na­les e instalar solo lo que necesiten en su caso concreto. Aun así, la solución en la nube es muy in­te­re­sa­n­te, sobre todo, si el ad­mi­ni­s­tra­dor de sistema ya tiene mucho trabajo.

Consejo

IONOS ofrece se­r­vi­do­res en la nube y se­r­vi­do­res virtuales potentes y a buen precio. Estas he­rra­mie­n­tas te pe­r­mi­ti­rán co­n­fi­gu­rar rá­pi­da­me­n­te tu propia in­frae­s­tru­c­tu­ra virtual según tus pre­fe­re­n­cias. Los se­r­vi­do­res son co­m­pa­ti­bles con todos los sistemas ope­ra­ti­vos comunes de Linux (Ubunto, Debian) y, op­cio­na­l­me­n­te, con Windows.

In­s­ta­la­ción de GitLab en servidor Linux

Para poder instalar GitLab en un servidor Linux, necesitas, antes de nada, el software Git. En nuestro tutorial de Git te ex­pli­ca­mos cómo in­s­ta­lar­lo en servidor. Luego, debes descargar el GitLab-Omnibus-Package en la página web oficial de GitLab. Este paquete contiene todos los archivos ne­ce­sa­rios y es el re­co­me­n­da­do para instalar GitLab.

Ac­tua­li­za­ción de re­po­si­to­rio

A co­n­ti­nua­ción, inicia sesión en el servidor como usuario Root y actualiza el re­po­si­to­rio (en este caso, de Ubuntu) para recibir todos los paquetes ne­ce­sa­rios para GitLab. Usa los si­guie­n­tes comandos:

sudo ssh root@GitLabServer
sudo apt-get update

Instala los paquetes de la siguiente manera:

sudo apt install curl openssh-server ca-certificates postfix

Durante la in­s­ta­la­ción de Postfix aparece una pantalla de co­n­fi­gu­ra­ción. Se­le­c­cio­na la opción “Internet Site” e introduce el nombre del dominio de servidor que usas para enviar y recibir correos ele­c­tró­ni­cos.

In­s­ta­la­ción de GitLab

Luego, instala el paquete Omnibus de GitLab. Para ello, tienes que añadir primero el “re­po­si­to­rio GitLab Package” con el siguiente comando.

curl https://packages.GitLab.com/install/repositories/GitLab/GitLab-ee/script.deb.sh | sudo bash

A co­n­ti­nua­ción, instala GitLab con el comando apt. En este código de ejemplo se instala la Community Edition (CE) de GitLab.

sudo apt install GitLab-ce

Tras ejecutar el comando, el servidor descarga e instala el paquete GitLab au­to­má­ti­ca­me­n­te. Una vez co­n­fi­r­ma­da la in­s­ta­la­ción, todavía tienes que co­n­fi­gu­rar el URL principal con el que accedes al servidor GitLab.

Modifica el URL "https://GitLab.example.com" según el URL que estés usando realmente. Para ello, accede al di­re­c­to­rio /etc/GitLab, en el que se encuentra la co­n­fi­gu­ra­ción, y edita el archivo de co­n­fi­gu­ra­ción GitLab.rb con el editor de texto estándar, vim.

Los comandos tienen el siguiente aspecto:

cd /etc/GitLab
vim GitLab.rb

En el archivo GitLab.rb busca la línea 9 (“external_url) e introduce el URL deseado. A co­n­ti­nua­ción, GitLab arrancará y co­n­fi­gu­ra­rá la in­s­ta­la­ción desde ese URL.

Durante el primer arranque se abre una pantalla en la que debes re­s­ta­ble­cer la co­n­tra­se­ña. Fija la co­n­tra­se­ña para el ad­mi­ni­s­tra­dor y saltarás hasta la pantalla de inicio de sesión. Para iniciar sesión puedes comenzar usando el usuario estándar “root” como ya me­n­cio­na­mos an­te­rio­r­me­n­te en este tutorial de GitLab. Estos ajustes pueden mo­di­fi­car­se más delante en los ajustes de perfil.

In­s­ta­la­ción en Windows

GitLab en sí no puede in­s­ta­lar­se en un servidor de Windows, pero puedes usar un de­no­mi­na­do GitLab Runner para acceder desde Windows a una in­s­ta­la­ción ya co­n­fi­gu­ra­da de GitLab en un servidor Linux. Este software se instala en Windows y es co­m­pa­ti­ble con la fu­n­cio­na­li­dad de in­te­gra­ción continua de GitLab (GitLab CI/CD). De esta forma, el Runner puede enviar consultas y so­li­ci­tu­des de trabajo a GitLab.

Descarga de Git para Windows y de datos binarios de GitLab Runner

Para instalar GitLab en un servidor Windows, necesitas primero Git para Windows. Puedes descargar el software en la página web oficial. Además, en este tutorial de GitLab te re­co­me­n­da­mos asignar una co­n­tra­se­ña in­di­vi­dual para la cuenta de usuario si no vas a usar la cuenta de sistema estándar.

También necesitas un token que te permita acceder del Runner a la instancia GitLab. En­co­n­tra­rás esta clave de acceso en los ajustes de GitLab en “Settings” -> “CI/CD”.

A co­n­ti­nua­ción, descarga el archivo binario (x86 o amd64) para el GitLab Runner para Windows y crea una carpeta en un di­re­c­to­rio cua­l­quie­ra de tu sistema, por ejemplo C:\GitLab-runner.

Introduce el archivo en dicha carpeta y cámbiale el nombre a GitLab-runner.exe. Luego, abre Windows Po­we­r­She­ll (o el Símbolo del sistema) con derechos de ad­mi­ni­s­tra­dor.

Registro de GitLab Runner en Windows

Para registrar GitLab Runner, introduce la siguiente orden en la línea de comandos:

./GitLab-runner.exe register

Ahora, introduce el URL de la in­s­ta­la­ción GitLab (en este caso es un ejemplo):

https://GitLab.com

En la siguiente ventana, introduce el token para enlazar el Runner con la in­s­ta­la­ción de GitLab. A co­n­ti­nua­ción, puedes fijar una de­s­cri­p­ción propia para el Runner. Esta opción también puede mo­di­fi­car­se más adelante en la interfaz de GitLab. La siguiente ventana permite es­ta­ble­cer tags. Estas tags son es­pe­cia­l­me­n­te útiles si vas a usar un Runner para editar varios proyectos a la vez. Mediante las tags, puedes de­te­r­mi­nar exac­ta­me­n­te qué proyectos se asignan en cada caso.

En el último paso, debes de­te­r­mi­nar el llamado “executor”, es decir, el entorno en el que funciona el Runner, por ejemplo, en una instancia Vi­r­tua­l­Box o en un entorno Shell. Shell es el executor más fácil de co­n­fi­gu­rar y la opción por defecto si registras un GitLab Runner por primera vez en Windows.

Please enter the executor: ssh, docker+machine, docker-ssh+machine, kubernetes, docker, parallels, virtualbox, docker-ssh, shell:
shell

In­s­ta­la­ción e inicio de GitLab Runner en Windows

Para instalar GitLab Runner puedes usar la cuenta de sistema integrada o una cuenta de usuario propia. Usa Po­we­r­She­ll o el Símbolo del sistema para navegar al di­re­c­to­rio que has creado an­te­rio­r­me­n­te e introduce los si­guie­n­tes comandos de manera sucesiva.

cd C:\GitLab-Runner
.\GitLab-runner.exe install
.\GitLab-runner.exe start

Primeros pasos

Una vez instalado GitLab, puedes acceder a la interfaz gráfica a través del URL de­te­r­mi­na­do an­te­rio­r­me­n­te. Para ello, puedes usar un navegador cua­l­quie­ra e iniciar sesión como ad­mi­ni­s­tra­dor. El nombre de usuario y la co­n­tra­se­ña co­rre­s­po­n­die­n­te también pueden mo­di­fi­car­se más adelante en la sección de ad­mi­ni­s­tra­dor.

Creación de usuario

En la sección de ad­mi­ni­s­tra­dor, puedes usar la opción “New User” para crear a todos los usuarios que tra­ba­ja­rán juntos en los proyectos GitLab co­rre­s­po­n­die­n­tes. Para ello, debes definir una dirección de correo ele­c­tró­ni­co y unos datos de inicio de sesión propios para el usuario y asignarlo al proyecto deseado.

En el mismo punto, puedes usar “Edit” para modificar los derechos de usuario y bloquear usuarios o eli­mi­nar­los co­m­ple­ta­me­n­te. Ten en cuenta que el bloqueo de un usuario evita que este inicie sesión, pero todos los datos (por ejemplo, commits) seguirán siendo di­s­po­ni­bles para él. En cambio, la eli­mi­na­ción completa significa la des­apa­ri­ción del usuario con toda la in­fo­r­ma­ción vinculada, por lo que debes pensar bien si deseas ejecutar esta función.

Creación de un nuevo proyecto

El paso más im­po­r­ta­n­te es crear un nuevo proyecto. Para ello, se­le­c­cio­na el botón “New Project” y saltarás a la ventana para crear el proyecto. Usa el campo “Project Name” para in­tro­du­cir el nombre del proyecto. No utilices ca­ra­c­te­res es­pe­cia­les ni espacios en blanco. En “Vi­si­bi­li­ty” podrás co­n­fi­gu­rar la vi­si­bi­li­dad, es decir, qué usuarios tienen acceso al proyecto. Puedes elegir entre los si­guie­n­tes niveles:

  • Privado: Solo tendrás acceso tú.
  • Interno: Tendrá acceso cualquier usuario que tenga la sesión iniciada.
  • Público: Puede acceder al proyecto cualquier usuario sin necesidad de ide­n­ti­fi­car­se de ninguna manera.

Una vez que hayas elegido los ajustes, crea el proyecto con el botón “Create project”. Ahora ya puedes co­ne­c­tar­lo di­re­c­ta­me­n­te con un re­po­si­to­rio Git local. Para ello, ve a la vista general de proyectos, se­le­c­cio­na la opción “HTTPS” en la de­no­mi­na­ción del proyecto y copia las órdenes indicadas en la línea de comandos.

Si todavía no dispones de una copia local del re­po­si­to­rio en el servidor, puedes re­me­diar­lo en este punto si in­tro­du­ces el siguiente comando:

$ git clone https://server/namespace/project.git

Una vez que hayas iniciado el re­po­si­to­rio con el primer Push, puedes consultar toda la in­fo­r­ma­ción di­s­po­ni­ble sobre el re­po­si­to­rio en la página del proyecto. Allí también puedes consultar las últimas ac­ti­vi­da­des y revisar el registro de commits para ver quién ha realizado cambios en el código y en qué momento.

GitLab: tutorial de trabajo en equipo

La forma más sencilla de trabajar con otros usuarios en un proyecto GitLab consiste en conceder a los usuarios acceso de Push directo al re­po­si­to­rio. Para ello, añade los usuarios a un proyecto, tal y como te ex­pli­ca­mos en este tutorial de GitLab y co­n­cé­de­les los derechos de usuario co­rre­s­po­n­die­n­tes.

Los usuarios con un nivel de derechos de “developer” o superior pueden desplazar sus commits y bi­fu­r­ca­cio­nes al re­po­si­to­rio sin re­s­tri­c­cio­nes. De forma al­te­r­na­ti­va también pueden uti­li­zar­se las de­no­mi­na­das so­li­ci­tu­des de co­m­bi­na­ción. Con ellas, es posible controlar el acceso de manera más estricta, ya que la bi­fu­r­ca­ción maestra no se edita di­re­c­ta­me­n­te. En su lugar, los usuarios crean una ra­mi­fi­ca­ción, registran sus commits y luego hacen una solicitud de co­m­bi­na­ción para conectar la ra­mi­fi­ca­ción con el maestro (u otra ra­mi­fi­ca­ción).

Además, los usuarios sin derechos de acceso pueden crear bi­fu­r­ca­cio­nes, es decir, editar su propia copia del proyecto mediante commits Push. A co­n­ti­nua­ción, pueden hacer una solicitud de co­m­bi­na­ción para volver a integrar las bi­fu­r­ca­cio­nes en el proyecto principal. De esta forma, el pro­pie­ta­rio del proyecto tiene el control total sobre lo que entra en el re­po­si­to­rio, pero puede permitir a usuarios de­s­co­no­ci­dos hacer una apo­r­ta­ción a su proyecto.

Nota

Al ser una he­rra­mie­n­ta de co­la­bo­ra­ción elaborada, GitLab dispone de numerosas funciones que facilitan la co­la­bo­ra­ción en equipo, como wikis de proyecto o he­rra­mie­n­tas de ma­n­te­ni­mie­n­to del sistema.

Ir al menú principal