GitLab para principiantes: por qué es necesario en un mundo donde existe GitHub

Introducción a GitLab: para qué se utiliza, cómo utilizarlo, qué comandos tiene y cómo crear rápidamente tu propio proyecto. Y, por supuesto, compararlo en detalle con su principal competidor, GitHub.
¿Qué es GitLab y para qué se utiliza?
GitLab es un servicio para almacenar y gestionar repositorios de Git. Al igual que su competidor más conocido, GitHub, facilita en gran medida el trabajo colaborativo de los desarrolladores, permitiéndoles escribir y editar código, así como probarlo e implementarlo sin problemas adicionales.

Se puede trabajar con GitLab de diferentes maneras: a través de la línea de comandos, Web IDE (un IDE integrado para trabajar en el navegador) o a través de clientes de Git de terceros. Debo decir que no hay una forma correcta: cada uno trabaja como le resulta más conveniente, según las tareas y los dispositivos disponibles.
GitLab vs GitHub
En realidad, no hay diferencias significativas entre GitLab y GitHub, excepto:
  • GitLab es un proyecto de código abierto, por lo que la comunidad puede mejorar la plataforma. En GitHub, esta posibilidad solo está disponible para los desarrolladores.
Desde 2018, Microsoft es el propietario de GitHub, lo cual fue percibido de manera ambigua por la comunidad, dada la reputación de este gigante. Sin embargo, GitHub es más popular que GitLab: no ha tenido competidores desde 2008. Pocos conocían a GitLab en ese momento: apareció solo en 2011 y no comenzó a desarrollarse activamente de inmediato.
¿Qué elegir para un desarrollador principiante?
Ambos servicios funcionan bien para la mayoría de las tareas de desarrollo, sin embargo:
  • GitLab es más adecuado para almacenar contenido privado, ya que es un proyecto de código abierto que permite configurar tu propio servidor. Por lo tanto, es adecuado para equipos de desarrollo y empresas con presupuestos limitados que no desean abrir su código al público. GitLab también es conveniente para crear un repositorio privado donde un desarrollador independiente puede almacenar su contenido.
  • GitHub es ideal para programadores que desean compartir su código con la comunidad mientras trabajan en diferentes proyectos de código abierto. También es elegido por aquellos que desean construir un portafolio de autoridad, ya que fomenta las páginas personales (incluso tiene logros correspondientes).
Ambos proyectos son adecuados para el desarrollo web, ya que ambos tienen sus propias Pages. Aquí tienes los enlaces para GitLab y para GitHub.
Características clave de GitLab
  • 1
    Compatibilidad. GitLab es compatible con plataformas y servicios populares como Docker, Kubernetes, Jira, servicios de Google, y también tiene herramientas para integrarse con casi cualquier aplicación. Esto significa que GitLab se puede integrar fácilmente en un entorno corporativo.
  • 2
    Etiquetas y documentación. Tiene un sistema de etiquetas conveniente que facilita el proceso de desarrollo al permitir clasificar errores o solicitudes. También se puede utilizar para rastrear cambios realizados en proyectos propios o ajenos. El sistema de documentación en GitLab está estructurado de tal manera que cada proyecto se documenta en un repositorio separado.
  • 3
    Adaptabilidad
    Configuración de acceso flexible. El acceso a los repositorios se configura según el grupo al que pertenezca el usuario. Las ramas privadas se crean utilizando un módulo incorporado que permite configurar permisos para cada usuario. Y gracias a su propio sistema de protección contra amenazas cibernéticas, GitLab ofrece autenticación segura.
  • 4
    Accesibilidad
    Importación y exportación de datos sencilla. El servicio permite importar fácilmente grandes volúmenes de datos de diferentes fuentes. Esto se logra mediante la integración con soluciones populares como Jira. También hay herramientas disponibles para sincronizar código.
  • 5
    Kubernetes como opción predeterminada para implementación. Es una solución conveniente para aquellos que se dedican al desarrollo y prueba de aplicaciones, ya que Kubernetes es el orquestador más popular en el entorno de contenedores.
  • 6
    Espacio dedicado en la nube. GitLab ofrece a todos los usuarios alojamiento gratuito de proyectos en la nube. Además, en GitLab puedes crear repositorios privados de forma gratuita para almacenar código abierto.
  • 7
    Herramientas de análisis y planificación. Las herramientas de análisis de GitLab permiten realizar un seguimiento del tiempo dedicado a cada tarea, planificar el trabajo futuro y monitorear la actividad de cada desarrollador. Y a aquellos que utilizan la metodología de desarrollo de sprint les gustará la herramienta Burndown Chart.
  • 8
    Actualizaciones regulares. GitLab se actualiza mensualmente, prestando especial atención a la facilidad de uso y la seguridad.
GitLab Runner
GitLab Runner es una herramienta web útil para ejecutar instrucciones de archivos de repositorios. Debes instalar GitLab Runner si planeas configurar la integración y entrega continuas (CI/CD) para tu propio proyecto. Pero primero, debes instalar Docker, una plataforma de contenedores que se utiliza para crear imágenes y desplegar contenedores.
GitLab CI/CD
CI/CD es una tecnología de integración y entrega continua. CI/CD ayuda a automatizar y escalar proyectos, lo que reduce significativamente el tiempo de desarrollo. GitLab CI/CD es una herramienta que convierte GitLab en una plataforma completa de DevOps con todas las funciones necesarias.

GitLab CI/CD permite gestionar configuraciones a través de archivos YAML, ejecutar de forma estable en diferentes entornos, compilar y ejecutar en diferentes sistemas operativos. Además, esta herramienta permite la integración con clústeres de Kubernetes y trabajar con tareas en entornos Docker.

A continuación, compararemos GitLab CI/CD con una herramienta similar de GitHub, GitHub Actions.
GitLab CI/CD vs GitHub Actions
Para que los principiantes no tengan dificultades al cambiar de GitHub Actions a GitLab CI/CD, analicemos las principales diferencias entre estas herramientas.
  • 1
    En CI/CD, los scripts en las tareas se ejecutan utilizando la clave script, mientras que en Actions se utiliza la clave run.
  • 2
    Las tareas en diferentes plataformas en CI/CD se ejecutan utilizando la clave tags, mientras que en Actions se utiliza runs-on.
  • 3
    Ambas herramientas pueden trabajar con tareas en imágenes Docker y especificar contenedores adicionales. En CI/CD se utiliza la clave image, mientras que en Actions se utiliza container.
  • 4
    Para ejecutar tareas condicionales, CI/CD utiliza la clave rules, mientras que Actions utiliza if.
  • 5
    Para ejecutar tareas con dependencias, CI/CD utiliza la clave stages, mientras que Actions utiliza needs.
Puedes ver ejemplos de código para cada servicio y conocer algunas diferencias menos significativas en la documentación oficial de GitHub sobre este tema. Aunque las instrucciones se titulan "Migración de GitLab CI/CD a GitHub Actions", también son útiles para migrar de Actions a CI/CD.
Un poco de práctica: tu primer proyecto en GitLab
Para crear un proyecto en GitLab, debes seguir algunos pasos sencillos:
  • Crear una cuenta y un grupo de trabajo
  • Crear un repositorio
  • Subir archivos
  • Agregar claves de autenticación.
Ahora, veamos cada uno de estos pasos en detalle.
Crear una cuenta y un grupo de trabajo en GitLab
Después de hacer clic en el botón Login en el sitio web del proyecto, aparecerá un botón de registro. Al hacer clic en él, se abrirá un formulario en el que deberás completar algunos campos estándar y luego confirmar el registro desde el correo electrónico que el servicio enviará a la dirección de correo electrónico proporcionada.

Una vez que hayas creado tu cuenta con éxito, puedes comenzar a configurar GitLab. Para ello, ve a tu perfil y completa los campos necesarios, incluido el nombre del grupo. También se te pedirá que indiques si trabajarás solo o en equipo.
Crear un repositorio en GitLab
Después de crear un grupo, aparecerá un ícono con un signo más en la barra superior. Haz clic en el menú desplegable junto a él y selecciona New project o New project/repository. A continuación, elige el nivel de privacidad. Si no quieres que tu código sea visible para otros usuarios, selecciona Private en el menú desplegable. Ahora puedes comenzar a cargar archivos en el repositorio Git que se creará junto con el proyecto.
Subir archivos a GitLab
Los archivos se pueden cargar de tres formas:
  • A través de la interfaz web haciendo clic en el botón Upload File
  • A través de la línea de comandos utilizando el programa git
  • A través de un cliente de Git de terceros, como Sublime Merge o Tower.
También puedes utilizar el Web IDE, diseñado para trabajar en el navegador.
Agregar claves de autenticación
Para generar una clave, debes ingresar el comando ssh-keygen en la terminal. Puedes dejar el directorio donde se almacenarán las claves con la configuración predeterminada. Luego, el servicio te pedirá que ingreses una contraseña y luego copies la clave del archivo (que puedes encontrar por su extensión .pub) y la pegues en el sitio web de GitLab. Haz clic en SSH-keys en el menú de la izquierda.
Trabajo posterior
La configuración inicial de GitLab está completa. Ahora puedes comenzar a trabajar con las ramas del proyecto, agregar nuevos usuarios y realizar muchas otras acciones (como enviar informes de errores). Aquí están algunas de las funciones útiles:
  • Para crear una nueva rama, ve al repositorio, abre el menú con el signo más y selecciona New Branch. Aquellos que usen clientes de Git pueden hacer lo mismo con el comando git checkout o utilizando una interfaz gráfica.
  • Para fusionar ramas del proyecto en una sola (este proceso se llama "merging"), haz clic en el botón Create merge request y completa los campos necesarios. Deberás escribir un comentario explicativo, indicar el autor de la solicitud, el revisor y agregar etiquetas, y luego confirmar la fusión.
  • Agregar nuevos usuarios se realiza a través del menú izquierdo. Selecciona Project information y luego Members. En el formulario que se abre, además del nombre de usuario y la dirección de correo electrónico, debes indicar el rol del usuario y la fecha en la que expirarán sus permisos y será excluido del proyecto. Siempre puedes extender este tiempo.
  • Para notificar a tus colegas y usuarios sobre problemas, como errores, selecciona Issues en el menú izquierdo. Luego, haz clic en New Issue y se abrirá un formulario en el que deberás indicar el título y agregar una descripción del problema, así como asignar a alguien como responsable Assignee`.
Leer otros artículos de Blog
Lee otros artículos relevantes del mundo de la tecnología y el espíritu empresarial.