# أتمتة Webhooks

تتيح لك Webhooks الاستماع إلى التغييرات الجديدة على مستودعات أو دلاء محددة، أو على جميع المستودعات التابعة لمجموعة معينة من المستخدمين/المنظمات (وليس مستودعاتك فقط، بل أي مستودع) على Hugging Face.

استخدم `create_webhook` في عميل `huggingface_hub` بلغة بايثون لإنشاء خطاف ويب (webhook) يُطلق مهمة (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"
)
```

لتنفيذ مهمة عند إضافة ملفات إلى [bucket](./storage-buckets) أو حذفها منه، راقب الدلو:

```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).

يُطلق الويب هوك المهمة مع متغيرات البيئة التالية:

- `WEBHOOK_PAYLOAD`: الحمولة الكاملة للويب هوك كنص JSON
- `WEBHOOK_REPO_ID`: اسم المستودع أو الدلو (مثلًا `user/repo-name`)
- `WEBHOOK_REPO_TYPE`: نوع المستودع (`model`، `dataset`، `space`، أو `bucket`)
- `WEBHOOK_SECRET`: سر الويب هوك، إذا تم تكوينه
- `WEBHOOK_ID`: معرّف فريد للتسليم، يظل ثابتًا عبر محاولات إعادة التسليم الخاصة بذلك

> [!WARNING]
> لا تحتفظ عملية تشغيل Webhook بأحجام Job أو أسرارها. مرّر الأسرار التي يحتاجها Job، مثل `HF_TOKEN`، باستخدام `secrets=` في `create_webhook`. لتشغيل سكربت UV من Webhook، عرّف وظيفتك باستخدام `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
```

يمكنك العثور على مزيد من المعلومات حول webhooks في [توثيق Webhooks الخاص بـ`huggingface_hub`](https://huggingface.co/docs/huggingface_hub/en/guides/webhooks).

