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

# Créer une automatisation webhook

> Créez une automatisation webhook dans W&B pour envoyer des requêtes HTTP à des services externes lorsque des événements spécifiques se produisent.

Cette page explique comment créer une [automatisation](/fr/products/wandb/automations) webhook, qui envoie une requête HTTP à un service externe lorsqu’un événement spécifique se produit dans W\&B. Utilisez une automatisation webhook pour intégrer W\&B à des systèmes externes tels que des pipelines CI/CD, des services de notification ou des outils personnalisés. Pour créer une automatisation Slack, reportez-vous plutôt à [Créer une automatisation Slack](/fr/products/wandb/automations/create-automations/slack).

Dans les grandes lignes, la création d’une automatisation webhook se déroule comme suit :

1. Si nécessaire, [créez un secret W\&B](/fr/products/wandb/platform/secrets) pour chaque chaîne sensible requise par l’automatisation, comme un jeton d’accès, un mot de passe ou une clé SSH. Les secrets se définissent dans vos **paramètres de l’équipe**.
2. [Créez un webhook](#create-a-webhook) pour définir le point de terminaison et les informations d’autorisation, puis accordez à l’intégration l’accès aux secrets dont elle a besoin.
3. [Créez l’automatisation](#create-an-automation) pour définir l’[événement](/fr/products/wandb/automations/automation-events) à surveiller et la charge utile envoyée par W\&B. Accordez à l’automatisation l’accès aux secrets nécessaires à la charge utile.

<h2 id="create-a-webhook">
  Créer un webhook
</h2>

Un administrateur d’équipe peut ajouter un webhook pour l’équipe. Le webhook définit le point de terminaison auquel W\&B envoie des requêtes, ainsi que les identifiants d’authentification nécessaires pour s’y authentifier.

<Note>
  Si le webhook requiert un jeton Bearer ou si sa charge utile doit contenir une chaîne de caractères sensible, [créez un secret qui la contient](/fr/products/wandb/platform/secrets#add-a-secret) avant de créer le webhook. Vous pouvez configurer au maximum un jeton d’accès et un autre secret par webhook. Les exigences d’authentification et d’autorisation de votre webhook sont déterminées par le service du webhook.
</Note>

1. Connectez-vous à W\&B et accédez à la page **paramètres de l’équipe**.
2. Dans la section **Webhooks**, cliquez sur **New webhook**.
3. Saisissez un nom pour le webhook.
4. Saisissez l’URL du point de terminaison du webhook.
5. Si le webhook requiert un jeton Bearer, définissez **Access token** sur le [secret](/fr/products/wandb/platform/secrets) qui le contient. Lorsque l’automatisation webhook est utilisée, W\&B renseigne l’en-tête HTTP `Authorization: Bearer` avec le jeton d’accès, et vous pouvez accéder au jeton via la [variable de charge utile](#payload-variables) `${ACCESS_TOKEN}`. Pour plus d’informations sur la structure de la requête `POST` que W\&B envoie au service du webhook, consultez [Dépanner votre webhook](#troubleshoot-your-webhook).
6. Si le webhook requiert un mot de passe ou une autre chaîne de caractères sensible dans sa charge utile, définissez **Secret** sur le secret qui la contient. Lorsque vous configurez l’automatisation qui utilise le webhook, vous pouvez accéder au secret en tant que [variable de charge utile](#payload-variables) en préfixant son nom par `$`.

   Si le jeton d’accès du webhook est stocké dans un secret, vous devez *également* effectuer l’étape suivante pour définir ce secret comme jeton d’accès.
7. Pour vérifier que W\&B peut se connecter et s’authentifier auprès du point de terminaison :

   1. Facultativement, fournissez une charge utile de test. Pour faire référence dans la charge utile à un secret auquel le webhook a accès, préfixez son nom par `$`. W\&B utilise cette charge utile uniquement pour le test et ne l’enregistre pas. La charge utile d’une automatisation se configure lorsque vous [créez l’automatisation](#create-an-automation). Pour plus d’informations sur l’emplacement du secret et du jeton d’accès dans la requête `POST`, consultez [Dépanner votre webhook](#troubleshoot-your-webhook).
   2. Cliquez sur **Test**. W\&B tente de se connecter au point de terminaison du webhook à l’aide des identifiants d’authentification que vous avez configurés. Si vous avez fourni une charge utile, W\&B l’envoie.

   Si le test échoue, vérifiez la configuration du webhook et réessayez. Si nécessaire, reportez-vous à [Dépanner votre webhook](#troubleshoot-your-webhook).

<Frame>
  <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/webhooks.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=1607f84f87713463eacbae31c0fe01ff" alt="Capture d’écran montrant deux webhooks dans une équipe" width="515" height="131" data-path="products/wandb/_media/webhooks.png" />
</Frame>

Vous pouvez maintenant [créer une automatisation](#create-an-automation) qui utilise le webhook.

<h2 id="create-an-automation">
  Créer une automatisation
</h2>

Après avoir [configuré un webhook](#create-a-webhook), créez une automatisation qui définit l’événement W\&B déclenchant le webhook ainsi que la charge utile à envoyer. Sélectionnez **Registre** ou **Projet** selon la portée souhaitée, puis suivez ces étapes pour créer une automatisation qui déclenche le webhook.

<Note>
  Pour appliquer une automatisation à plus grande échelle, créez-la depuis le hub global **Automations** et sélectionnez la portée **Team** ou **Organization**. La procédure est identique à celle décrite ci-dessous. À ces niveaux de portée, la W\&B App prend uniquement en charge les événements d’artifact et de collection. Consultez [Hub Automations](/fr/products/wandb/automations#automations-hub).
</Note>

<Tabs>
  <Tab title="Registre">
    Un administrateur de registre peut créer des automatisations dans ce registre. Les automatisations de registre s’appliquent à toutes les collections du registre, y compris celles qui seront ajoutées ultérieurement.

    1. Connectez-vous à W\&B.

    2. Cliquez sur le nom d’un registre pour afficher ses détails.

    3. Pour créer une automatisation limitée au registre, cliquez sur l’onglet **Automations**, puis sur **Create automation**.

    4. Choisissez l’[événement](/fr/products/wandb/automations/automation-events#registry-events) à surveiller.

       Renseignez les éventuels champs supplémentaires qui s’affichent. Par exemple, si vous sélectionnez **An artifact alias is added**, vous devez indiquer l’**Alias regex**.

       Cliquez sur **Next step**.

    5. Sélectionnez l’équipe propriétaire du [webhook](#create-a-webhook).

    6. Définissez **Action type** sur **Webhooks**, puis sélectionnez le [webhook](#create-a-webhook) à utiliser.

    7. Si vous avez configuré un jeton d’accès pour le webhook, vous pouvez y accéder via la [variable de charge utile](#payload-variables) `${ACCESS_TOKEN}`. Si vous avez configuré un secret pour le webhook, vous pouvez y accéder dans la charge utile en préfixant son nom par `$`. Les exigences de votre webhook dépendent du service qu’il cible.

    8. Cliquez sur **Next step**.

    9. Saisissez un nom pour l’automatisation et, si vous le souhaitez, une description. Cliquez sur **Create automation**.
  </Tab>

  <Tab title="Projet">
    Un administrateur W\&B peut créer des automatisations dans un projet.

    1. Connectez-vous à W\&B et accédez à la page du projet.
    2. Dans la barre latérale du projet, cliquez sur **Automations**, puis sur **Create automation**.

       Vous pouvez également créer rapidement, depuis un graphique en courbes du workspace, une [automatisation de métrique de run](/fr/products/wandb/automations/automation-events#run-events) pour la métrique affichée. Survolez le panneau, puis cliquez sur l’icône de cloche en haut de celui-ci.

           <Frame>
             <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/run_metric_automation_from_panel.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=122de71b7adaba2a371fb0697b4662a0" alt="Emplacement de l’icône de cloche d’automatisation" width="385" height="258" data-path="products/wandb/_media/run_metric_automation_from_panel.png" />
           </Frame>
    3. Choisissez l’[événement](/fr/products/wandb/automations/automation-events#project) à surveiller, par exemple l’ajout d’un alias d’artifact ou le franchissement d’un seuil donné par une métrique de run.

       1. Renseignez les éventuels champs supplémentaires qui s’affichent selon l’événement choisi. Par exemple, si vous sélectionnez **An artifact alias is added**, vous devez indiquer l’**Alias regex**.

          1. Pour les automatisations déclenchées par un run, vous pouvez spécifier un ou plusieurs filtres de run (facultatif).

             * **Filter to one user's runs** : inclut uniquement les runs créés par l’utilisateur spécifié. Cliquez sur le bouton bascule pour activer le filtre, puis indiquez un nom d’utilisateur.
             * **Filter on run name** : inclut uniquement les runs dont le nom correspond à l’expression régulière indiquée. Cliquez sur le bouton bascule pour activer le filtre, puis indiquez une expression régulière.

          L’automatisation s’applique à toutes les collections du projet, y compris celles qui seront ajoutées ultérieurement.
       2. Cliquez sur **Next step**.
    4. Sélectionnez l’équipe propriétaire du [webhook](#create-a-webhook).
    5. Définissez **Action type** sur **Webhooks**, puis sélectionnez le [webhook](#create-a-webhook) à utiliser.
    6. Si votre webhook nécessite une charge utile, rédigez-la et collez-la dans le champ **Payload**. Si vous avez configuré un jeton d’accès pour le webhook, vous pouvez y accéder via la [variable de charge utile](#payload-variables) `${ACCESS_TOKEN}`. Si vous avez configuré un secret pour le webhook, vous pouvez y accéder dans la charge utile en préfixant son nom par `$`. Les exigences de votre webhook dépendent du service qu’il cible.
    7. Cliquez sur **Next step**.
    8. Saisissez un nom pour l’automatisation et, si vous le souhaitez, une description. Cliquez sur **Create automation**.
  </Tab>
</Tabs>

Une fois ces étapes terminées, l’automatisation est active et exécute le webhook chaque fois que l’événement spécifié se produit dans le registre ou le projet.

<h2 id="view-and-manage-automations">
  Afficher et gérer les automatisations
</h2>

Consultez, modifiez ou supprimez une automatisation depuis l’onglet **Automations**.

<Tabs>
  <Tab title="Registre">
    Gérez les automatisations d’un registre depuis son onglet **Automations**.

    * Pour afficher les détails d’une automatisation, cliquez sur son nom.
    * Pour modifier une automatisation, ouvrez son menu **action (<Icon icon="ellipsis" iconType="solid" />)**, puis cliquez sur **Edit automation**.
    * Pour supprimer une automatisation, ouvrez son menu **action (<Icon icon="ellipsis" iconType="solid" />)**, puis cliquez sur **Delete automation**. W\&B vous invite à confirmer la suppression.
  </Tab>

  <Tab title="Projet">
    Un administrateur W\&B peut afficher et gérer les automatisations d’un projet depuis l’onglet **Automations** de ce projet.

    * Pour afficher les détails d’une automatisation, cliquez sur son nom.
    * Pour modifier une automatisation, ouvrez son menu **action (<Icon icon="ellipsis" iconType="solid" />)**, puis cliquez sur **Edit automation**.
    * Pour supprimer une automatisation, ouvrez son menu **action (<Icon icon="ellipsis" iconType="solid" />)**, puis cliquez sur **Delete automation**. W\&B vous invite à confirmer la suppression.
  </Tab>
</Tabs>

<h2 id="payload-reference">
  Référence de la charge utile
</h2>

Utilisez ces sections pour construire la charge utile de votre webhook. Les sections suivantes décrivent les variables disponibles dans votre charge utile et présentent des exemples de charges utiles pour des services courants. Pour savoir comment tester votre webhook et sa charge utile, reportez-vous à [Dépanner votre webhook](#troubleshoot-your-webhook).

<h3 id="payload-variables">
  Variables de charge utile
</h3>

Le tableau suivant décrit les variables que vous pouvez utiliser pour construire la charge utile de votre webhook.

| Variable | Détails |
| - | - |
| `${project_name}` | Le nom du projet auquel appartient la mutation ayant déclenché l’action. |
| `${entity_name}` | Le nom de l’entity ou de l’équipe à laquelle appartient la mutation ayant déclenché l’action. |
| `${event_type}` | Le type d’événement ayant déclenché l’action. |
| `${event_author}` | L’utilisateur ayant déclenché l’action. |
| `${alias}` | Contient l’alias d’un artifact si l’automatisation est déclenchée par l’événement **An artifact alias is added**. Pour les autres automatisations, cette variable est vide. |
| `${tag}` | Contient les tags d’un artifact si l’automatisation est déclenchée par l’événement **An artifact tag is added**. Pour les autres automatisations, cette variable est vide. |
| `${artifact_collection_name}` | Le nom de la collection d’artifacts à laquelle la version de l’artifact est liée. |
| `${artifact_metadata.<KEY>}` | La valeur d’une clé de métadonnées de premier niveau quelconque de la version de l’artifact ayant déclenché l’action. Remplacez `<KEY>` par le nom d’une clé de métadonnées de premier niveau. Seules les clés de métadonnées de premier niveau sont disponibles dans la charge utile du webhook. |
| `${artifact_version}` | La représentation [`Wandb.Artifact`](/fr/products/wandb/ref/python/experiments/artifact) de la version de l’artifact ayant déclenché l’action. |
| `${artifact_version_string}` | La représentation `string` de la version de l’artifact ayant déclenché l’action. |
| `${ACCESS_TOKEN}` | La valeur du jeton d’accès configuré dans le [webhook](#create-a-webhook), le cas échéant. W\&B la transmet automatiquement dans l’en-tête HTTP `Authorization: Bearer`. |
| `${SECRET_NAME}` | Le cas échéant, la valeur d’un secret configuré dans le [webhook](#create-a-webhook). Remplacez `SECRET_NAME` par le nom du secret. |

<h3 id="payload-examples">
  Exemples de charges utiles
</h3>

Les exemples suivants présentent des charges utiles de webhook pour des cas d’usage courants. Ils montrent comment utiliser les [variables de charge utile](#payload-variables).

<Tabs>
  <Tab title="Déclenchement d’un événement dans un dépôt GitHub">
    <Note>
      Vérifiez que vos jetons d'accès disposent des autorisations requises pour déclencher votre flux de travail GitHub Actions. Pour plus d'informations, voir la [documentation GitHub sur l'événement repository dispatch](https://docs.github.com/en/rest/repos/repos?#create-a-repository-dispatch-event).
    </Note>

    Envoyez un repository dispatch depuis W\&B pour déclencher une action GitHub. Par exemple, supposons que vous ayez un fichier de flux de travail GitHub qui accepte un repository dispatch comme déclencheur pour la clé `on` :

    ```yaml theme={"system"}
    on:
    repository_dispatch:
      types: BUILD_AND_DEPLOY
    ```

    La charge utile destinée au dépôt pourrait ressembler à ceci :

    ```json theme={"system"}
    {
      "event_type": "BUILD_AND_DEPLOY",
      "client_payload":
      {
        "event_author": "${event_author}",
        "artifact_version": "${artifact_version}",
        "artifact_version_string": "${artifact_version_string}",
        "artifact_collection_name": "${artifact_collection_name}",
        "project_name": "${project_name}",
        "entity_name": "${entity_name}"
        }
    }
    ```

    <Note>
      La clé `event_type` de la charge utile du webhook doit correspondre au champ `types` du fichier YAML du flux de travail GitHub.
    </Note>

    Le contenu et la position des chaînes de modèle une fois rendues dépendent de l’événement ou de la version de modèle pour lesquels vous avez configuré l’automatisation. `${event_type}` prend la valeur `LINK_ARTIFACT` ou `ADD_ARTIFACT_ALIAS`. Voici un exemple de mappage :

    ```text theme={"system"}
    ${event_type} --> "LINK_ARTIFACT" or "ADD_ARTIFACT_ALIAS"
    ${event_author} --> "<wandb-user>"
    ${artifact_version} --> "wandb-artifact://_id/QXJ0aWZhY3Q6NTE3ODg5ODg3"
    ${artifact_version_string} --> "<entity>/model-registry/<registered_model_name>:<alias>"
    ${artifact_collection_name} --> "<registered_model_name>"
    ${project_name} --> "model-registry"
    ${entity_name} --> "<entity>"
    ```

    Utilisez des chaînes de modèle pour transmettre dynamiquement le contexte de W\&B à GitHub Actions et à d'autres outils. Si ces outils peuvent appeler des scripts Python, ils peuvent exploiter les artifacts de modèle enregistrés au moyen de l'[API W\&B](/fr/products/wandb/artifacts/download-and-use-an-artifact).

    Pour plus d'informations, consultez les ressources suivantes :

    * Pour plus d'informations sur le repository dispatch, voir la [documentation officielle sur le GitHub Marketplace](https://github.com/marketplace/actions/repository-dispatch).
    * Regardez les vidéos [Webhook Automations for Model Evaluation](https://www.youtube.com/watch?v=7j-Mtbo-E74\&ab_channel=Weights%26Biases) et [Webhook Automations for Model Deployment](https://www.youtube.com/watch?v=g5UiAFjM2nA\&ab_channel=Weights%26Biases), qui vous accompagnent dans la création d'automatisations pour l'évaluation et le déploiement de modèles.
    * Consultez le rapport W\&B [Model CI/CD with W\&B](https://forge.coreweave.com/wandb/wandb/wandb-model-cicd/reports/Model-CI-CD-with-W-B--Vmlldzo0OTcwNDQw), qui montre comment utiliser une automatisation webhook GitHub Actions pour l'intégration continue de modèles.
    * Pour un exemple d'intégration continue de modèles avec un webhook Modal Labs, voir le [dépôt GitHub wandb-modal-webhook](https://github.com/hamelsmu/wandb-modal-webhook).
  </Tab>

  <Tab title="Notification Microsoft Teams">
    Cet exemple de charge utile montre comment notifier votre canal Teams à l’aide d’un webhook :

    ```json theme={"system"}
    {
    "@type": "MessageCard",
    "@context": "http://schema.org/extensions",
    "summary": "New Notification",
    "sections": [
      {
        "activityTitle": "Notification from WANDB",
        "text": "This is an example message sent via Teams webhook.",
        "facts": [
          {
            "name": "Author",
            "value": "${event_author}"
          },
          {
            "name": "Event Type",
            "value": "${event_type}"
          }
        ],
        "markdown": true
      }
    ]
    }
    ```

    Vous pouvez utiliser des chaînes de modèle pour injecter des données W\&B dans votre charge utile au moment de l’exécution. Voir l’[exemple Teams](#microsoft-teams-notification).
  </Tab>

  <Tab title="Notifications Slack">
    <Note>
      Cette section est conservée à titre historique. Si vous utilisez un webhook pour intégrer Slack, W\&B vous recommande de modifier votre configuration pour utiliser plutôt l’[intégration Slack](/fr/products/wandb/automations/create-automations/slack).
    </Note>

    Configurez votre application Slack et ajoutez une intégration de webhook entrant en suivant les instructions de la [documentation de l’API Slack](https://api.slack.com/messaging/webhooks). Veillez à définir le secret indiqué sous `Bot User OAuth Token` comme jeton d’accès de votre webhook W\&B.

    Voici un exemple de charge utile :

    ```json theme={"system"}
    {
        "text": "New alert from WANDB!",
    "blocks": [
        {
                "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "Registry event: ${event_type}"
            }
        },
            {
                "type":"section",
                "text": {
                "type": "mrkdwn",
                "text": "New version: ${artifact_version_string}"
            }
            },
            {
            "type": "divider"
        },
            {
                "type": "section",
            "text": {
                "type": "mrkdwn",
                "text": "Author: ${event_author}"
            }
            }
        ]
    }
    ```
  </Tab>
</Tabs>

<h2 id="troubleshoot-your-webhook">
  Dépanner votre webhook
</h2>

Si un webhook ne fonctionne pas comme prévu, vous pouvez le dépanner de manière interactive depuis l’interface de l’application W\&B, ou par programmation à l’aide d’un script shell. Vous pouvez dépanner un webhook lors de sa création ou par la suite.

Pour en savoir plus sur le format de la requête `POST` utilisée par W\&B, consultez l’onglet **Script shell**.

<Tabs>
  <Tab title="Interface de l’application W&B">
    Un administrateur d’équipe peut tester un webhook de manière interactive depuis l’interface de l’application W\&B.

    1. Accédez à la page de votre équipe, puis cliquez sur **Settings**.
    2. Faites défiler la page jusqu’à la section **Webhooks**.
    3. Cliquez sur le menu **action (<Icon icon="ellipsis" iconType="solid" />)** à côté du nom de votre webhook.
    4. Sélectionnez **Test**.
    5. Dans le panneau qui s’affiche, collez votre requête `POST` dans le champ prévu à cet effet.
           <Frame>
             <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/webhook_ui.png?fit=max&auto=format&n=3Dv_sw2eg8feUJlx&q=85&s=e675758e82251cd4b5275210b6e414db" alt="Démonstration du test d’une charge utile de webhook" width="2610" height="1764" data-path="products/wandb/_media/webhook_ui.png" />
           </Frame>
    6. Cliquez sur **Test webhook**. W\&B affiche la réponse de votre point de terminaison dans l’interface de l’application W\&B.
           <Frame>
             <img src="https://mintcdn.com/coreweave-dbfa0e8d/3Dv_sw2eg8feUJlx/products/wandb/_media/webhook_ui_testing.gif?s=e93752b2105a0278f94163e62062a729" alt="Démonstration du test d’un webhook" width="2396" height="2304" data-path="products/wandb/_media/webhook_ui_testing.gif" />
           </Frame>

    Pour une démonstration, regardez la vidéo [Testing Webhooks in W\&B](https://www.youtube.com/watch?v=bl44fDpMGJw\&ab_channel=Weights%26Biases).
  </Tab>

  <Tab title="Script shell">
    Ce script shell illustre une façon de générer une requête `POST` semblable à celle que W\&B envoie à votre automatisation webhook lorsqu’elle est déclenchée.

    Copiez-collez le code suivant dans un script shell pour dépanner votre webhook. Renseignez vos propres valeurs pour :

    * `ACCESS_TOKEN`
    * `SECRET`
    * `PAYLOAD`
    * `API_ENDPOINT`

    ```bash webhook_test.sh theme={"system"}
    #!/bin/bash

    # Votre jeton d’accès et votre secret
    ACCESS_TOKEN="your_api_key"
    SECRET="your_api_secret"

    # URL du point de terminaison de votre webhook
    API_ENDPOINT="https://your.webhook.endpoint/path"

    # Les données à envoyer (par exemple, au format JSON)
    PAYLOAD='{"key1": "value1", "key2": "value2"}'

    # Générer la signature HMAC. Pour des raisons de sécurité, W&B inclut l’en-tête
    # X-Wandb-Signature, calculé par HMAC-SHA-256 à partir de la charge utile
    # et du secret partagé associé au webhook.
    SIGNATURE=$(echo -n "$PAYLOAD" | openssl dgst -sha256 -hmac "$SECRET" | awk '{print $2}')

    # Envoyer la requête cURL
    curl -X POST \
      -H "Content-Type: application/json" \
      -H "Authorization: Bearer $ACCESS_TOKEN" \
      -H "X-Wandb-Signature: $SIGNATURE" \
      -d "$PAYLOAD" "$API_ENDPOINT"
    ```
  </Tab>
</Tabs>


## Related topics

- [Créer une automatisation Slack](/fr/products/wandb/automations/create-automations/slack.md)
