Hub documentation

Mengelola Spaces dengan GitHub Actions

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Mengelola Spaces dengan GitHub Actions

Anda dapat menjaga sinkronisasi Space Anda dengan repositori GitHub menggunakan GitHub Action resmi huggingface/hub-sync.

hub-sync juga berfungsi untuk Models dan Datasets. Lihat GitHub Actions untuk penggunaan umum.

Setup

  1. Buat secret GitHub bernama HF_TOKEN dengan access token Hugging Face.
  2. Tambahkan file workflow (misalnya .github/workflows/sync-to-hub.yml) ke repositori Anda:
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 }}

Anda dapat mengonfigurasi Space SDK dengan space_sdk (defaultnya gradio). Lihat semua parameter.

Cara kerjanya

Aksi ini mencerminkan file Anda ke Hub menggunakan CLI hf (hf repos create + hf upload). Ini bukan sinkronisasi git-ke-git — ia mengunggah konten file dan secara otomatis mengecualikan direktori .github/ dan .git/. File yang dihapus dari repositori GitHub Anda juga akan dihapus dari Hub.

Untuk alur kerja yang lebih kompleks (misalnya langkah build, logika kustom), Anda dapat menginstal dan menggunakan hf CLI secara langsung di alur kerja Anda sebagai gantinya.

Pertimbangan ukuran file

Aksi ini mengunggah isi file dengan hf upload, sehingga Anda tidak perlu mengatur Git LFS atau git-xet untuk Hub: file besar disimpan di Xet secara otomatis. Jika repositori GitHub Anda menyimpan file dengan Git LFS (GitHub mewajibkannya untuk file di atas 100MB), atur lfs: true pada langkah actions/checkout agar aksi mengunggah file tersebut, bukan pointer LFS.

Alternatif: git push manual

Jika Anda lebih memilih sinkronisasi git-ke-git langsung daripada pemindaian file, Anda dapat mendorong ke remote git Space Anda secara langsung. Dengan git push, file yang lebih besar dari 10MB harus dilacak dengan git-xet (disarankan) atau 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

Ganti HF_USERNAME dengan nama pengguna Anda dan SPACE_NAME dengan nama Space Anda.

Update on GitHub