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

Puedes usar GitHub Actions para sincronizar automáticamente tu repositorio de GitHub con el Hugging Face Hub. La acción oficial huggingface/hub-sync admite la sincronización de Models, Datasets y Spaces.

Para la publicación sin claves, sin necesidad de almacenar ni rotar el secreto HF_TOKEN, consulte Trusted Publishers, que intercambia el token OIDC integrado de GitHub Actions por un token de Hub de corta duración y con alcance limitado al repositorio al inicio de cada ejecución.

Configuración

  1. Crea un access token de Hugging Face con permiso de write en el repositorio de destino. Para una mejor seguridad, utiliza un fine-grained token limitado únicamente al repositorio al que estás sincronizando.
  2. Agrega el token como un secreto de GitHub llamado HF_TOKEN en la configuración de tu repositorio.
  3. Agrega un archivo de flujo de trabajo (p. ej. .github/workflows/sync-to-hub.yml) a tu repositorio.

Uso básico

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 }}

Por defecto, esto se sincroniza con un Space. Para sincronizar un modelo o un conjunto de datos, establezca el parámetro 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

Parámetros

ParámetroObligatorioPredeterminadoDescripción
github_repo_idSí—Repositorio de GitHub (usa ${{ github.repository }})
huggingface_repo_idSí—Repositorio de destino en el Hub (username/repo-name)
hf_tokenSí—Token de acceso de Hugging Face
repo_typeNospacespace, model o dataset
space_sdkNogradiogradio, streamlit, docker o static
privateNofalseSi se debe crear el repositorio como privado
subdirectoryNo.Sincronizar un subdirectorio específico (útil para monorepos)

La acción replica tus archivos en el Hub usando la CLI hf; no es una sincronización de git a git. Excluye automáticamente los directorios .github/ y .git/ y replica las eliminaciones (los archivos eliminados de GitHub se eliminarán del Hub).

Para flujos de trabajo más complejos (p. ej., pasos de compilación, lógica de carga personalizada), puedes instalar y usar directamente la CLI hf en tu flujo de trabajo.

Para obtener orientación específica de Spaces (límites de tamaño de archivo, manejo de LFS), consulte Gestión de Spaces con GitHub Actions.

Update on GitHub