Hub documentation
أتمتة Webhooks
أتمتة Webhooks
تتيح لك Webhooks الاستماع إلى التغييرات الجديدة على مستودعات أو دلاء محددة، أو على جميع المستودعات التابعة لمجموعة معينة من المستخدمين/المنظمات (وليس مستودعاتك فقط، بل أي مستودع) على Hugging Face.
استخدم create_webhook في عميل huggingface_hub بلغة بايثون لإنشاء خطاف ويب (webhook) يُطلق مهمة (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"
)لتنفيذ مهمة عند إضافة ملفات إلى bucket أو حذفها منه، راقب الدلو:
webhook = create_webhook(
job_id=job_id,
watched=[{"type": "bucket", "name": "your-username/your-bucket"}],
domains=["repo"],
secrets={"HF_TOKEN": "hf_***"},
)لمثال كامل، راجع معالجة ملفات جديدة في دلو باستخدام Jobs.
يُطلق الويب هوك المهمة مع متغيرات البيئة التالية:
WEBHOOK_PAYLOAD: الحمولة الكاملة للويب هوك كنص JSONWEBHOOK_REPO_ID: اسم المستودع أو الدلو (مثلًاuser/repo-name)WEBHOOK_REPO_TYPE: نوع المستودع (model،dataset،space، أوbucket)WEBHOOK_SECRET: سر الويب هوك، إذا تم تكوينهWEBHOOK_ID: معرّف فريد للتسليم، يظل ثابتًا عبر محاولات إعادة التسليم الخاصة بذلك
لا تحتفظ عملية تشغيل 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.