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

Anda dapat menggunakan GitHub Actions untuk secara otomatis menyinkronkan repositori GitHub Anda ke Hugging Face Hub. Aksi resmi huggingface/hub-sync mendukung penyinkronan Models, Datasets, dan Spaces.

Untuk penerbitan tanpa kunci — tanpa perlu menyimpan atau memutar rahasia HF_TOKEN — lihat Trusted Publishers, yang menukar token OIDC bawaan GitHub Actions dengan token Hub berumur pendek dan berlingkup repo di awal setiap eksekusi.

Setup

  1. Buat access token Hugging Face dengan izin write ke repo target. Untuk keamanan yang lebih baik, gunakan fine-grained token yang di-scope hanya ke repository yang Anda sinkronkan.
  2. Tambahkan token sebagai GitHub secret bernama HF_TOKEN di pengaturan repositori Anda.
  3. Tambahkan file workflow (misalnya .github/workflows/sync-to-hub.yml) ke repositori Anda.

Penggunaan dasar

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/repo-name
          hf_token: ${{ secrets.HF_TOKEN }}

Secara default, ini menyinkronkan ke Space. Untuk menyinkronkan model atau dataset, atur parameter repo_type:

      - uses: huggingface/hub-sync@v0.3.0
        with:
          github_repo_id: ${{ github.repository }}
          huggingface_repo_id: username/my-dataset
          hf_token: ${{ secrets.HF_TOKEN }}
          repo_type: dataset

Parameter

ParameterWajibDefaultDeskripsi
github_repo_idYa—Repositori GitHub (gunakan ${{ github.repository }})
huggingface_repo_idYa—Repo target di Hub (username/repo-name)
hf_tokenYa—Token akses Hugging Face
repo_typeTidakspacespace, model, atau dataset
space_sdkTidakgradiogradio, streamlit, docker, atau static
privateTidakfalseApakah akan membuat repositori sebagai privat
subdirectoryTidak.Sinkronkan subdirektori tertentu (berguna untuk monorepo)

Aksi ini mencerminkan file Anda ke Hub menggunakan CLI hf — ini bukan sinkronisasi git-ke-git. Aksi ini secara otomatis mengecualikan direktori .github/ dan .git/ serta mencerminkan penghapusan (file yang dihapus dari GitHub akan dihapus dari Hub).

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

Untuk panduan khusus Spaces (batas ukuran file, penanganan LFS), lihat Managing Spaces with GitHub Actions.

Update on GitHub