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

Вы можете использовать GitHub Actions для автоматической синхронизации вашего репозитория GitHub с Hugging Face Hub. Официальное действие huggingface/hub-sync поддерживает синхронизацию моделей, наборов данных и Spaces.

Для публикации без ключей — без необходимости хранить или обновлять секрет HF_TOKEN — см. Trusted Publishers, который в начале каждого запуска обменивает встроенный OIDC-токен GitHub Actions на кратковременный токен Hub, ограниченный конкретным репозиторием.

Настройка

  1. Создайте токен доступа Hugging Face с правом write для целевого репозитория. Для повышения безопасности используйте токен с точными правами, ограниченный только тем репозиторием, в который выполняется синхронизация.
  2. Добавьте токен в качестве секрета GitHub с именем HF_TOKEN в настройках вашего репозитория.
  3. Добавьте файл рабочего процесса (например, .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Нетspacespace, model или dataset
space_sdkНетgradiogradio, 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