> ## Documentation Index
> Fetch the complete documentation index at: https://docs.corgea.app/llms.txt
> Use this file to discover all available pages before exploring further.

# GitLab

> Configura la integración de GitLab con Corgea

# Configurar la integración de GitLab con Corgea

La integración de GitLab permite conectar repositorios con las funciones de escaneo y remediación de vulnerabilidades de Corgea. Puedes escanear automáticamente el código de las merge requests y recibir comentarios detallados con los hallazgos y las correcciones sugeridas. También puedes añadir repositorios de GitLab mediante Dropsite y crear merge requests directamente desde Corgea para corregir los hallazgos detectados.

## Requisitos previos

Antes de configurar la integración de GitLab, asegúrate de tener lo siguiente:

1. Una cuenta de Corgea
2. Una cuenta de GitLab con un repositorio que quieres integrar

## Configuración de la integración

<Steps>
  <Step title="Acceder a Integraciones">
    Inicia sesión en tu cuenta de Corgea y accede a la sección "Integraciones".
  </Step>

  <Step title="Añadir integración con GitLab">
    Haz clic en el botón "Añadir integración" y selecciona "GitLab" de la lista de integraciones disponibles.
  </Step>

  <Step title="Configurar integración">
    En el formulario "Añadir integración con GitLab", proporciona la siguiente información:

    * **Nombre**: Un nombre descriptivo para tu integración con GitLab.
    * **URL de GitLab**: La URL base de tu instancia de GitLab (por ejemplo, `https://gitlab.com` o `https://gitlab.example.com` para una instancia autoalojada).
    * **Secure Token**: Un token de acceso personal con los permisos necesarios para acceder al repositorio de GitLab. Puedes generar uno nuevo siguiendo la [documentación de GitLab](https://docs.gitlab.com/ee/user/profile/personal_access_tokens.html).
    * **Solo listar proyectos miembros**: Esta opción está habilitada de forma predeterminada y limita la selección a los proyectos de los que es miembro el propietario del token. Desactívala para incluir otros proyectos a los que pueda acceder, como proyectos públicos o disponibles mediante permisos de administrador o auditor.
    * **Comentar sobre solicitudes de fusión**: Marca esta opción para que Corgea comente automáticamente las merge requests con las vulnerabilidades detectadas y las correcciones sugeridas.
  </Step>

  <Step title="Guardar configuración">
    Haz clic en "Guardar" para crear la integración de GitLab.
  </Step>
</Steps>

## Configuración de GitLab

Para que Corgea pueda escanear tus repositorios y comentar las solicitudes de fusión, tendrás que configurar algunos ajustes en GitLab:

<Steps>
  <Step title="Crear un token de acceso">
    **Recomendación**: Crea un usuario específico para Corgea en GitLab, de modo que los comentarios y las merge requests aparezcan como enviados por Corgea.

    **Opción 1: Token de acceso personal (usuario de Corgea)**

    1. Crea una cuenta de GitLab llamada "Corgea" o similar
    2. Inicia sesión con esa cuenta
    3. Ve a Configuración de usuario > Tokens de acceso
    4. Crea un token nuevo con los siguientes ámbitos:
       * `api` (Acceso API de lectura/escritura)
       * `read_api`
       * `read_repository`
       * `write_repository`
    5. Copia el token generado: lo necesitarás para la configuración de integración con Corgea

    **Opción 2: Token de acceso al grupo**

    1. Ve a la sección de Configuración > Tokens de acceso de tu grupo
    2. Crea un token de acceso al grupo con los mismos ámbitos indicados anteriormente
    3. Este token se aplicará a todos los proyectos del grupo
    4. Copia el token generado: lo necesitarás para la configuración de integración con Corgea
  </Step>

  <Step title="Configurar el webhook">
    Para el webhook a nivel de proyecto:

    1. Ve a la sección de Configuración > Webhooks de tu proyecto
    2. Añade un webhook con esta configuración:
       * URL: `https://www.corgea.app/gitlab_webhook/` (o la URL del webhook que proporciones)
       * Cabecera personalizada: Añade `X-Corgea-UUID` con el valor de Integraciones > GitLab > Ver todo
       * Selecciona los desencadenadores:
         * Eventos de solicitud de fusión
         * Comentarios

    <img src="https://mintcdn.com/corgea/LPFdBW7ccdn08szq/images/gitlab_webhook_config.png?fit=max&auto=format&n=LPFdBW7ccdn08szq&q=85&s=f3289bd50050618c577f498b6bf62abb" style={{ borderRadius: '0.5rem' }} width="2518" height="2440" data-path="images/gitlab_webhook_config.png" />

    3. Haz clic en "Añadir webhook"

    Para el webhook a nivel de grupo:

    1. Ve a la sección de Ajustes > Webhooks de tu grupo
    2. Sigue los mismos pasos que antes
    3. El webhook se aplicará a todos los proyectos del grupo
  </Step>

  <Step title="Verificar configuración">
    1. Crea una merge request de prueba
    2. Comprueba que Corgea reciba el webhook y comente la merge request
    3. Revisa las entregas recientes del webhook en GitLab para confirmar que la comunicación funciona
  </Step>
</Steps>

## Añadir repositorios desde GitLab usando el Dropsite

<Steps>
  <Step title="Acceso al Dropsite">
    Inicia sesión en tu cuenta de Corgea y accede a la sección de Dropsite.
  </Step>

  <Step title="Seleccionar método de conexión">
    En el paso "Añadir tu código", selecciona la opción "Conectar Corgea".
  </Step>

  <Step title="Elige GitLab">
    Elige la integración "GitLab" de la lista de integraciones disponibles.
  </Step>

  <Step title="Seleccionar repositorio">
    Selecciona el repositorio y la rama que quieres escanear desde tu cuenta de GitLab.
  </Step>

  <Step title="Iniciar escaneo">
    Haz clic en "Confirmar" para iniciar el escaneo.
  </Step>
</Steps>

Corgea recuperará el código del repositorio y rama seleccionados, y realizará un escaneo de seguridad exhaustivo.

## Crear merge requests desde Corgea

Cuando Corgea detecta un hallazgo de seguridad y genera una corrección, puedes crear una merge request directamente desde la página de detalles del hallazgo:

1. Ve a la página de detalles del hallazgo que quieras corregir
2. Busca la opción "Issue MR" en el menú desplegable
   <Frame>
     <img src="https://mintcdn.com/corgea/mpJUc1GyXtnVYEyT/images/issue_mr.png?fit=max&auto=format&n=mpJUc1GyXtnVYEyT&q=85&s=4ddc078ba74c7d64b6d0c936c555b346" style={{ borderRadius: '0.5rem' }} width="747" height="828" data-path="images/issue_mr.png" />
   </Frame>
3. Haz clic en "Issue MR" para que Corgea realice automáticamente estas acciones:

   * Crear una rama a partir de la rama base configurada
   * Hacer commit de la corrección con un mensaje descriptivo
   * Crear una merge request con los cambios
   * Añadir un comentario detallado que explique la vulnerabilidad y la corrección, si esta opción está habilitada

   <Frame>
     <img src="https://mintcdn.com/corgea/mpJUc1GyXtnVYEyT/images/view_mr.png?fit=max&auto=format&n=mpJUc1GyXtnVYEyT&q=85&s=3cf196397abd84f1147956d1c83a3951" style={{ borderRadius: '0.5rem' }} width="786" height="532" data-path="images/view_mr.png" />
   </Frame>

El enlace a la merge request aparecerá en la página de detalles del hallazgo. A continuación, puedes seguir el flujo de trabajo habitual de GitLab para revisar y fusionar los cambios.

<Frame>
  <img src="https://mintcdn.com/corgea/uxLuQR4653lM43Tj/images/generate_mr.png?fit=max&auto=format&n=uxLuQR4653lM43Tj&q=85&s=6a7399730409534069bc6c90147dfb9e" style={{ borderRadius: '0.5rem' }} width="1100" height="547" data-path="images/generate_mr.png" />
</Frame>

## Cómo funciona la integración

Una vez configurada la integración con GitLab, Corgea escaneará automáticamente tu código en busca de vulnerabilidades cada vez que se cree o actualice una nueva solicitud de fusión. Así es como funciona la integración:

1. Cuando se crea o actualiza una solicitud de fusión en tu repositorio de GitLab, Corgea recibe una notificación de webhook de GitLab.
2. Corgea recupera los cambios de código de la solicitud de fusión y realiza un escaneo de seguridad exhaustivo.
3. Si se detectan vulnerabilidades, Corgea publica un comentario en la merge request con los hallazgos y las correcciones sugeridas.
   Los comentarios solo se añaden a líneas incluidas en el diff de la merge request. En los hallazgos que abarcan varias líneas, Corgea ancla el comentario a la primera línea modificada del intervalo afectado.
4. Puedes revisar los comentarios y aplicar las correcciones sugeridas antes de fusionar el código.

## Beneficios de la integración con GitLab

Al integrar Corgea con tu repositorio de GitLab, puedes disfrutar de los siguientes beneficios:

* **Escaneo automatizado de seguridad**: Corgea escanea automáticamente el código de las merge requests para detectar las vulnerabilidades al principio del ciclo de desarrollo.
* **Informes detallados de vulnerabilidades**: Corgea proporciona información detallada sobre vulnerabilidades identificadas, incluyendo su gravedad, ubicación e impacto potencial.
* **Correcciones sugeridas**: Corgea no solo identifica vulnerabilidades, sino que también propone correcciones para remediarlas con rapidez.
* **Integración fluida**: La integración se incorpora al flujo de desarrollo existente, reduce las interrupciones y facilita la revisión de seguridad.
* **Mejora de la calidad del código**: Al abordar vulnerabilidades de seguridad al principio del ciclo de desarrollo, puedes mejorar la calidad y seguridad general de tu base de código.
* **Opciones flexibles de escaneo**: Además del escaneo automático de solicitudes de fusión, puedes usar la función Dropsite para escanear repositorios de GitLab bajo demanda.
* **Aplicación de correcciones con un solo clic**: Crea merge requests directamente desde la página de detalles del hallazgo para aplicar las correcciones con un esfuerzo mínimo.

La integración de GitLab y Dropsite permiten mejorar la seguridad de las aplicaciones, agilizar el desarrollo y ofrecer software más seguro y fiable.
