Hub documentation
GitHub Actions ile Spaces Yönetimi
GitHub Actions ile Spaces Yönetimi
Space'inizi, resmi huggingface/hub-sync GitHub Action'ı kullanarak GitHub depoyla senkronize tutabilirsiniz.
hub-sync, Modeller ve Veri Setleri için de çalışır. Genel kullanım için GitHub Actions sayfasına bakın.
Kurulum
- Hugging Face erişim belirtecinizi içeren
HF_TOKENadında bir GitHub gizli değeri oluşturun. - Deponuza bir iş akışı dosyası (ör.
.github/workflows/sync-to-hub.yml) ekleyin:
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'yi space_sdk ile yapılandırabilirsiniz (varsayılan gradio). tüm parametrelere bakın.
Nasıl çalışır
Bu işlem, hf CLI aracını (hf repos create + hf upload) kullanarak dosyalarınızı Hub'a yansıtır. Git'ten git'e bir senkronizasyon değildir; dosya içeriklerini yükler ve .github/ ile .git/ dizinlerini otomatik olarak hariç tutar. GitHub depodan kaldırılan dosyalar Hub'dan da kaldırılır.
Daha karmaşık iş akışları (ör. derleme adımları, özel mantık) için, bunun yerine hf CLI'yi doğrudan iş akışınıza kurup kullanabilirsiniz.
Dosya boyutu hususları
Eylem, dosya içeriklerini hf upload ile yüklediği için Hub için Git LFS veya git-xet kurmanıza gerek yoktur: büyük dosyalar otomatik olarak Xet'te saklanır. GitHub deponuz dosyaları Git LFS ile saklıyorsa (GitHub, 100MB üzeri dosyalar için bunu zorunlu kılar), eylemin dosyaları LFS işaretçileri yerine yüklemesi için actions/checkout adımında lfs: true değerini ayarlayın.
Alternatif: manuel git push
Dosya aynalama yerine doğrudan git-to-git senkronizasyonu tercih ediyorsanız, Space'inizin git uzak deposuna doğrudan push yapabilirsiniz. git push ile 10MB'tan büyük dosyalar git-xet (önerilen) veya Git LFS ile izlenmelidir:
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 mainHF_USERNAME yerine kullanıcı adınızı ve SPACE_NAME yerine Space adınızı yazın.