Hub documentation
GitHub Actions
GitHub Actions
Вы можете использовать GitHub Actions для автоматической синхронизации вашего репозитория GitHub с Hugging Face Hub. Официальное действие huggingface/hub-sync поддерживает синхронизацию моделей, наборов данных и Spaces.
Для публикации без ключей — без необходимости хранить или обновлять секрет
HF_TOKEN— см. Trusted Publishers, который в начале каждого запуска обменивает встроенный OIDC-токен GitHub Actions на кратковременный токен Hub, ограниченный конкретным репозиторием.
Настройка
- Создайте токен доступа Hugging Face с правом write для целевого репозитория. Для повышения безопасности используйте токен с точными правами, ограниченный только тем репозиторием, в который выполняется синхронизация.
- Добавьте токен в качестве секрета GitHub с именем
HF_TOKENв настройках вашего репозитория. - Добавьте файл рабочего процесса (например,
.github/workflows/sync-to-hub.yml) в ваш репозиторий.
Базовое использование
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 }}По умолчанию синхронизация выполняется с Space. Чтобы синхронизировать модель или набор данных, задайте параметр 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Параметры
| Параметр | Обязательный | По умолчанию | Описание |
|---|---|---|---|
github_repo_id | Да | — | Репозиторий GitHub (используйте ${{ github.repository }}) |
huggingface_repo_id | Да | — | Целевой репозиторий на Hub (username/repo-name) |
hf_token | Да | — | Токен доступа Hugging Face |
repo_type | Нет | space | space, model или dataset |
space_sdk | Нет | gradio | gradio, streamlit, docker или static |
private | Нет | false | Создавать ли репозиторий как приватный |
subdirectory | Нет | . | Синхронизация конкретного подкаталога (полезно для монорепозиториев) |
Действие синхронизирует ваши файлы с Hub с помощью CLI hf — это не git-to-git синхронизация. Автоматически исключаются каталоги .github/ и .git/, а также отражаются удаления (файлы, удалённые из GitHub, будут удалены и из Hub).
Для более сложных рабочих процессов (например, шаги сборки, пользовательская логика загрузки) вы можете установить и использовать CLI hf непосредственно в вашем рабочем процессе.
Для рекомендаций, специфичных для Spaces (ограничения на размер файлов, обработка LFS), см. Управление Spaces с помощью GitHub Actions.
Update on GitHub