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

Bạn có thể sử dụng GitHub Actions để tự động đồng bộ hóa kho GitHub của bạn với Hugging Face Hub. Hành động chính thức huggingface/hub-sync hỗ trợ đồng bộ hóa Models, Datasets và Spaces.

Đối với việc phát hành không cần khóa — không phải lưu trữ hay xoay vòng bí mật HF_TOKEN — hãy xem Trusted Publishers, thành phần trao đổi token OIDC tích hợp sẵn của GitHub Actions lấy token Hub có thời hạn ngắn, phạm vi kho, tại đầu mỗi lần chạy.

Cài đặt

  1. Tạo một access token của Hugging Face với quyền write cho kho đích. Để bảo mật tốt hơn, hãy sử dụng fine-grained token được giới hạn phạm vi chỉ cho kho mà bạn đang đồng bộ hóa.
  2. Thêm token dưới dạng GitHub secret có tên HF_TOKEN trong cài đặt kho của bạn.
  3. Thêm một tệp workflow (ví dụ: .github/workflows/sync-to-hub.yml) vào kho của bạn.

Cách sử dụng cơ 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/repo-name
          hf_token: ${{ secrets.HF_TOKEN }}

Mặc định, thao tác này đồng bộ hóa đến một Space. Để đồng bộ hóa một mô hình hoặc tập dữ liệu, hãy đặt tham số 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

Tham số

Tham sốBắt buộcMặc địnhMô tả
github_repo_idCó—Kho GitHub (sử dụng ${{ github.repository }})
huggingface_repo_idCó—Kho đích trên Hub (username/repo-name)
hf_tokenCó—Token truy cập Hugging Face
repo_typeKhôngspacespace, model hoặc dataset
space_sdkKhônggradiogradio, streamlit, docker hoặc static
privateKhôngfalseCó tạo kho lưu trữ ở chế độ riêng tư hay không
subdirectoryKhông.Đồng bộ một thư mục con cụ thể (hữu ích cho các monorepo)

Hành động này sao chép các tệp của bạn lên Hub bằng CLI hf — đây không phải là đồng bộ hóa git-to-git. Nó tự động loại trừ các thư mục .github/ và .git/ và đồng bộ hóa các thao tác xóa (các tệp bị xóa khỏi GitHub 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ải lên 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 thay thế.

Để có hướng dẫn dành riêng cho Spaces (giới hạn kích thước tệp, xử lý LFS), hãy xem Quản lý Spaces bằng GitHub Actions.

Update on GitHub