Hub documentation
GitHub Actions
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
- 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.
- Thêm token dưới dạng GitHub secret có tên
HF_TOKENtrong cài đặt kho của bạn. - 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: datasetTham số
| Tham số | Bắt buộc | Mặc định | Mô tả |
|---|---|---|---|
github_repo_id | Có | — | Kho GitHub (sử dụng ${{ github.repository }}) |
huggingface_repo_id | Có | — | Kho đích trên Hub (username/repo-name) |
hf_token | Có | — | Token truy cập Hugging Face |
repo_type | Không | space | space, model hoặc dataset |
space_sdk | Không | gradio | gradio, streamlit, docker hoặc static |
private | Không | false | Có tạo kho lưu trữ ở chế độ riêng tư hay không |
subdirectory | Khô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