Hub documentation

إدارة المساحات باستخدام GitHub Actions

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

إدارة المساحات باستخدام GitHub Actions

يمكنك إبقاء مساحة huggingface/hub-sync متزامنة مع مستودع GitHub الخاص بك باستخدام إجراء GitHub الرسمي.

يعمل hub-sync أيضًا مع النماذج (Models) ومجموعات البيانات (Datasets). راجع GitHub Actions للاستخدام العام.

الإعداد

  1. أنشئ سرًا على GitHub باسم HF_TOKEN يحتوي على رمز وصول لحساب Hugging Face.
  2. أضف ملف سير عمل (مثل .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 باسم مساحة العمل الخاصة بك.

Update on GitHub