Webhooks de GitLab: configuración, verificación y fallos

Webhooks de GitLab

Webhooks de GitLab: configuración, signing token y desactivación | We.Inc

Añade un webhook de proyecto o grupo en GitLab, elige los eventos, verifica la cabecera webhook-signature o X-Gitlab-Token y descubre cuándo GitLab desactiva un hook que falla.

Un webhook de GitLab envía un HTTP POST a tu URL cuando ocurre un evento en un proyecto o grupo, como un push, una merge request o un comentario nuevo. Se añade en Configuración, Webhooks. Protégelo con un signing token y responde rápido con 200, porque GitLab desactiva los hooks que fallan de forma reiterada.

Datos de los webhooks de GitLab (docs.gitlab.com, octubre de 2026)

Los webhooks son la forma en que GitLab avisa a tu sitio, tu script de despliegue o el chat de tu equipo de que algo ha cambiado, sin que tu código tenga que preguntar una y otra vez. La configuración lleva un minuto; lo que da problemas después es demostrar que una petición viene de GitLab y evitar que el hook se desactive. El comprobador de abajo genera una firma con signing token en tu navegador para que puedas probar tu receptor.

Preguntas frecuentes

¿Qué es X-Gitlab-Token?

Es el antiguo token secreto. Si defines uno, GitLab lo envía como texto plano en la cabecera X-Gitlab-Token y tu servidor lo compara. La documentación de GitLab recomienda ahora un signing token para los webhooks nuevos.

¿Por qué se desactivó mi webhook de GitLab?

GitLab desactiva un hook tras cuatro fallos consecutivos, es decir, respuestas 4xx o 5xx, tiempos de espera de conexión agotados u otros errores HTTP. Primero queda desactivado un minuto, más tiempo con cada nuevo fallo hasta 24 horas, y de forma permanente tras 40 seguidos.

¿Cómo sé qué evento ha llegado?

Lee la cabecera X-Gitlab-Event. Su valor es el tipo de evento seguido de Hook, por ejemplo Push Hook, Merge Request Hook, Note Hook para comentarios o Pipeline Hook.

¿Puedo añadir un webhook a todo un grupo?

Sí, en los planes Premium y Ultimate. Un webhook de grupo se dispara con eventos de todos los proyectos del grupo y también puede recibir eventos de miembros del grupo, proyectos y subgrupos.

¿Funciona el signing token en GitLab autogestionado?

La documentación de GitLab indica que llegó en la versión 19.0 tras un feature flag activado por defecto y pasó a estar disponible de forma general en la 19.1. Las versiones autogestionadas anteriores solo tienen el token secreto.

Cómo funciona el signing token

Pasar de un token secreto sin interrupciones

Este receptor comprueba la firma del signing token, rechaza marcas de tiempo caducadas y recurre al token secreto antiguo mientras migras.

Los tokens vienen de variables de entorno. La ventana de validez de cinco minutos es elección nuestra; elige la que te convenga.

Eventos habituales y sus valores de X-Gitlab-Event

Eventos de webhook de GitLab

Generador de firmas con signing token

Introduce un signing token, el webhook-id, el webhook-timestamp y el cuerpo sin procesar para obtener el valor de webhook-signature que enviaría GitLab. Todo se ejecuta en tu navegador.

Signing token (empieza por whsec_)

Cuerpo de la petición sin procesar

El token debe empezar por whsec_ seguido de texto en base64.

El token precargado es un ejemplo inventado, no una clave real. Con estos valores el resultado es:

¿Cuándo desactiva GitLab un hook?

Entregas fallidas consecutivas: {n}

Activo: las entregas continúan.

Desactivado temporalmente: primero 1 minuto, más tiempo con cada nuevo fallo, hasta 24 horas, y luego se reactiva automáticamente.

Desactivado permanentemente: sigue así hasta que una petición de prueba reciba una respuesta 2xx.

Empieza gratis · Sin tarjeta de crédito

Relacionado: Guías

Producto

Para quién es

Funciones

Recursos

Empresa

Mapa del sitio