Hub documentation
Automatización de Webhooks
Automatización de Webhooks
Los webhooks permiten escuchar nuevos cambios en repositorios o buckets específicos, o en todos los repositorios que pertenecen a un conjunto particular de usuarios u organizaciones (no solo tus repositorios, sino cualquier repositorio) en Hugging Face.
Use create_webhook en el cliente de Python huggingface_hub para crear un webhook que active un Job cuando se produzca un cambio en un repositorio de 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"
)Para ejecutar un Job cuando se añaden o se eliminan archivos de un bucket, observe el bucket:
webhook = create_webhook(
job_id=job_id,
watched=[{"type": "bucket", "name": "your-username/your-bucket"}],
domains=["repo"],
secrets={"HF_TOKEN": "hf_***"},
)Para un ejemplo completo, consulte Procesar nuevos archivos en un bucket con Jobs.
El webhook activa el Job con las siguientes variables de entorno:
WEBHOOK_PAYLOAD: la carga completa del webhook como una cadena JSONWEBHOOK_REPO_ID: el nombre del repositorio o cubo (p. ej.,user/repo-name)WEBHOOK_REPO_TYPE: el tipo de repositorio (model,dataset,spaceobucket)WEBHOOK_SECRET: el secreto del webhook, si se configuró unoWEBHOOK_ID: un identificador único para la entrega, estable entre reintentos de esa entrega
Una ejecución de webhook no conserva los volúmenes ni los secretos del Job. Pasa los secretos que el Job necesita, como
HF_TOKEN, consecrets=encreate_webhook. Para ejecutar un script de UV desde un webhook, define tu job conhf jobs run <image> uv run <url>; de lo contrario,hf jobs uv runsube el script a un volumen, el cual no está disponible en una ejecución de webhook.
La carga del webhook contiene varios campos; aquí hay algunos útiles:
- 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 filesPuedes encontrar más información sobre webhooks en la documentación de Webhooks de huggingface_hub.