Aller au contenu
English

createGitlabWebhook

import { createGitlabWebhook } from "@elie-laloum/outpost";

Crée une source de déclencheur GitLab. Avec signingToken, elle vérifie l’en-tête webhook-signature d’un jeton de signature whsec_ (GitLab 19.0+) dans une fenêtre d’horodatage et utilise webhook-id ; avec token, elle compare X-Gitlab-Token et utilise Idempotency-Key ou X-Gitlab-Event-UUID. Elle renvoie object_kind, l’action de l’objet et l’utilisateur sous la forme gitlab:<username>.

Exemple complet et règles détaillées.

Les champs ci-dessous couvrent toutes les variantes ; la signature précise leurs combinaisons autorisées.

  • optionsRequis
    GitlabWebhookOptions
    Soit signingToken (recommandé, signe le corps), soit token (en-tête historique en clair) ; signingToken est utilisé si les deux sont fournis.
  • options.signingTokenSelon la variante
    TriggerSecret
    Jeton de signature whsec_ du webhook GitLab (GitLab 19.0+) qui vérifie webhook-signature, ou callback renvoyant chaque jeton actuellement accepté (l’ancien et le nouveau pendant une rotation). Une chaîne vide lève une erreur à la création ; un callback en échec ou vide, ou un jeton sans préfixe whsec_, refuse les requêtes.
  • options.toleranceMsSelon la variante
    number | undefined
    Écart d’horloge accepté pour l’horodatage de la requête, en millisecondes ; 300000 (5 minutes) par défaut. Une valeur qui n’est pas un entier positif lève une erreur à la création.
  • options.tokenSelon la variante
    TriggerSecret
    Jeton secret comparé en temps constant à X-Gitlab-Token, ou callback renvoyant chaque jeton actuellement accepté ; plus faible, car le corps n’est pas signé. Une chaîne vide lève une erreur à la création ; un callback en échec ou vide refuse les requêtes.

TriggerSource

export declare function createGitlabWebhook(
  options: GitlabWebhookOptions,
): TriggerSource;