Hub documentation

Automatisation des Webhooks

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

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 :

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, surveillez le bucket :

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.

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

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.

Update on GitHub