# Automatisation des Webhooks

Les webhooks vous permettent de surveiller les nouvelles modifications sur des dépôts ou des buckets spécifiques, ou sur l’ensemble des dépôts appartenant à un ensemble particulier d’utilisateurs/organisations (pas seulement vos dépôts, mais n’importe quel dépôt) sur Hugging Face.

Utilisez `create_webhook` dans le client Python `huggingface_hub` pour créer un webhook qui déclenche un Job lorsqu’une modification survient dans un dépôt Hugging Face :

```python
from huggingface_hub import create_webhook

# Example: Creating a webhook that triggers a Job
webhook = create_webhook(
    job_id=job_id,
    watched=[{"type": "user", "name": "your-username"}, {"type": "org", "name": "your-org-name"}],
    domains=["repo", "discussion"],
    secret="your-secret"
)
```

Pour exécuter un Job lorsque des fichiers sont ajoutés ou supprimés d’un [bucket](./storage-buckets), surveillez le bucket :

```python
webhook = create_webhook(
    job_id=job_id,
    watched=[{"type": "bucket", "name": "your-username/your-bucket"}],
    domains=["repo"],
    secrets={"HF_TOKEN": "hf_***"},
)
```

Pour un exemple complet, consultez [Process new files in a bucket with Jobs](./webhooks-guide-bucket-jobs).

Le webhook déclenche le Job avec les variables d’environnement suivantes :

- `WEBHOOK_PAYLOAD` : la charge utile complète du webhook en tant que chaîne JSON
- `WEBHOOK_REPO_ID` : le nom du dépôt ou du bucket (par exemple, `user/repo-name`)
- `WEBHOOK_REPO_TYPE` : le type de dépôt (`model`, `dataset`, `space` ou `bucket`)
- `WEBHOOK_SECRET` : le secret du webhook, s'il a été configuré
- `WEBHOOK_ID` : un identifiant unique pour la livraison, stable lors des nouvelles tentatives de cette livraison

> [!WARNING]
> L’exécution d’un webhook ne conserve ni les volumes ni les secrets du Job. Transmettez les secrets dont le Job a besoin, tels que `HF_TOKEN`, à l’aide de `secrets=` dans `create_webhook`. Pour exécuter un script UV depuis un webhook, définissez votre job avec `hf jobs run <image> uv run <url>`, car sinon `hf jobs uv run` télécharge le script sur un volume, ce dont une exécution webhook ne dispose pas.

La charge utile du webhook contient plusieurs champs, voici quelques-uns des plus utiles :

```
- event:
  - action: one of "create", "delete", "move", "update"
  - scope: string
- repo:
  - owner: string
  - headSha: string (not sent for buckets)
  - name: string
  - type: one of "dataset", "model", "space", "bucket"
- updatedFiles: for bucket file changes, the list of added and deleted files
```

Vous trouverez plus d'informations sur les webhooks dans la [documentation des Webhooks de `huggingface_hub`](https://huggingface.co/docs/huggingface_hub/en/guides/webhooks).

