Hub documentation

Webhooks Автоматизация

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Webhooks Автоматизация

Webhooks позволяют отслеживать новые изменения в конкретных репозиториях или баках, а также во всех репозиториях, принадлежащих определенному набору пользователей или организаций (не только ваши репозитории, но и любые другие) на Hugging Face.

Используйте create_webhook в Python-клиенте huggingface_hub, чтобы создать вебхук, который запускает Job при изменении в репозитории 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"
)

Чтобы запускать Job при добавлении или удалении файлов из bucket, отслеживайте bucket:

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

Полный пример см. в Обработка новых файлов в бакете с помощью Jobs.

Вебхук запускает Job со следующими переменными окружения:

  • WEBHOOK_PAYLOAD: полный вебхук-пейлоад в виде JSON-строки
  • WEBHOOK_REPO_ID: имя репозитория или хранилища (например, user/repo-name)
  • WEBHOOK_REPO_TYPE: тип репозитория (model, dataset, space или bucket)
  • WEBHOOK_SECRET: секрет вебхука, если он был настроен
  • WEBHOOK_ID: уникальный идентификатор доставки, остающийся неизменным при повторных попытках этой доставки

Запуск вебхука не сохраняет тома и секреты задачи. Передавайте необходимые для задачи секреты, например HF_TOKEN, с помощью параметра secrets= в create_webhook. Чтобы запустить UV-скрипт из вебхука, определите задачу с помощью hf jobs run <image> uv run <url>, иначе hf jobs uv run загрузит скрипт в том, которого нет при запуске вебхука.

Платформ webhook содержит несколько полей, вот некоторые из полезных:

- 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

Подробнее о вебхуках можно узнать в документации по вебхукам huggingface_hub.

Update on GitHub