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

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

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

Чтобы запускать Job при добавлении или удалении файлов из [bucket](./storage-buckets), отслеживайте bucket:

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

Полный пример см. в [Обработка новых файлов в бакете с помощью Jobs](./webhooks-guide-bucket-jobs).

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

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

> [!WARNING]
> Запуск вебхука не сохраняет тома и секреты задачи. Передавайте необходимые для задачи секреты, например `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`](https://huggingface.co/docs/huggingface_hub/en/guides/webhooks).

