Hub documentation

Quản lý Spaces bằng GitHub Actions

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Quản lý Spaces bằng GitHub Actions

Bạn có thể đồng bộ hóa Space của mình với kho GitHub bằng cách sử dụng GitHub Action chính thức huggingface/hub-sync.

hub-sync cũng hoạt động với Models và Datasets. Xem GitHub Actions để biết cách sử dụng chung.

Cài đặt

  1. Tạo một GitHub secret có tên HF_TOKEN với một access token của Hugging Face.
  2. Thêm một tệp workflow (ví dụ: .github/workflows/sync-to-hub.yml) vào kho của bạn:
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 }}

Bạn có thể cấu hình Space SDK bằng space_sdk (mặc định là gradio). Xem tất cả các tham số.

Cách hoạt động

Hành động này sao chép các tệp của bạn lên Hub bằng CLI hf (hf repos create + hf upload). Đây không phải là đồng bộ hóa git-to-git — nó tải lên nội dung tệp và tự động loại trừ các thư mục .github/ và .git/. Các tệp bị xóa khỏi kho GitHub của bạn cũng sẽ bị xóa khỏi Hub.

Đối với các quy trình làm việc phức tạp hơn (ví dụ: các bước build, logic tùy chỉnh), bạn có thể cài đặt và sử dụng hf CLI trực tiếp trong quy trình làm việc của mình.

Xem xét kích thước tệp

Hành động này tải nội dung tệp lên bằng hf upload, vì vậy bạn không cần thiết lập Git LFS hoặc git-xet cho Hub: các tệp lớn sẽ được lưu trữ trong Xet một cách tự động. Nếu kho GitHub của bạn lưu trữ tệp bằng Git LFS (GitHub yêu cầu điều này cho các tệp lớn hơn 100MB), hãy đặt lfs: true ở bước actions/checkout để hành động tải tệp lên thay vì các con trỏ LFS.

Phương án thay thế: git push thủ công

Nếu bạn thích đồng bộ trực tiếp từ git sang git thay vì sao chép tệp, bạn có thể đẩy trực tiếp lên git remote của Space của mình. Khi dùng git push, các tệp lớn hơn 10MB phải được theo dõi bằng git-xet (khuyến nghị) hoặc 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

Thay HF_USERNAME bằng tên người dùng của bạn và SPACE_NAME bằng tên Space của bạn.

Update on GitHub