Hub documentation
إدارة المساحات باستخدام GitHub Actions
إدارة المساحات باستخدام GitHub Actions
يمكنك إبقاء مساحة huggingface/hub-sync متزامنة مع مستودع GitHub الخاص بك باستخدام إجراء GitHub الرسمي.
يعمل
hub-syncأيضًا مع النماذج (Models) ومجموعات البيانات (Datasets). راجع GitHub Actions للاستخدام العام.
الإعداد
- أنشئ سرًا على GitHub باسم
HF_TOKENيحتوي على رمز وصول لحساب Hugging Face. - أضف ملف سير عمل (مثل
.github/workflows/sync-to-hub.yml) إلى مستودعك:
name: Sync to Hugging Face Hub
on:
push:
branches: [main]
jobs:
sync:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v6
- uses: huggingface/hub-sync@v0.3.0
with:
github_repo_id: ${{ github.repository }}
huggingface_repo_id: username/my-space
hf_token: ${{ secrets.HF_TOKEN }}يمكنك تكوين Space SDK باستخدام space_sdk (الافتراضي هو gradio). راجع جميع المعاملات.
كيف يعمل
يعكس هذا الإجراء ملفاتك إلى Hub باستخدام سطر أوامر hf (hf repos create + hf upload). إنه ليس مزامنة من git إلى git — بل يرفع محتوى الملفات ويستبعد تلقائيًا مجلدات .github/ و.git/. كما سيتم حذف الملفات المُزالة من مستودع GitHub الخاص بك من Hub أيضًا.
لعمليات العمل الأكثر تعقيدًا (مثل خطوات البناء، المنطق المخصص)، يمكنك بدلاً من ذلك تثبيت hf CLI واستخدامه مباشرةً في عملية العمل الخاصة بك.
اعتبارات حجم الملف
تقوم الإجراء برفع محتويات الملفات باستخدام hf upload، لذا لا حاجة إلى إعداد Git LFS أو git-xet للمركز: تُخزَّن الملفات الكبيرة في Xet تلقائيًا. إذا كان مستودع GitHub الخاص بك يخزّن الملفات باستخدام Git LFS (يُطلب ذلك من GitHub للملفات التي يتجاوز حجمها 100 ميغابايت)، فاضبط lfs: true على خطوة actions/checkout حتى يقوم الإجراء برفع الملفات بدلاً من مؤشرات LFS.
بديل: أمر git push يدوي
إذا كنت تفضّل مزامنة مباشرة من git إلى git بدلاً من مرآة الملفات، يمكنك الدفع مباشرة إلى git remote الخاص بـ Space الخاص بك. عند استخدام git push، يجب تتبع الملفات التي يتجاوز حجمها 10 ميغابايت باستخدام git-xet (موصى به) أو Git LFS:
name: Sync to Hugging Face hub
on:
push:
branches: [main]
workflow_dispatch:
jobs:
sync-to-hub:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 0
lfs: true
- name: Push to hub
env:
HF_TOKEN: ${{ secrets.HF_TOKEN }}
run: git push https://HF_USERNAME:$HF_TOKEN@huggingface.co/spaces/HF_USERNAME/SPACE_NAME mainاستبدل HF_USERNAME باسم المستخدم الخاص بك وSPACE_NAME باسم مساحة العمل الخاصة بك.