Hub documentation

Gestión de Spaces con GitHub Actions

Hugging Face's logo
Join the Hugging Face community

and get access to the augmented documentation experience

to get started

Gestión de Spaces con GitHub Actions

Puedes mantener tu Space sincronizado con tu repositorio de GitHub usando la acción oficial de GitHub huggingface/hub-sync.

hub-sync también funciona para Models y Datasets. Consulte GitHub Actions para el uso general.

Configuración

  1. Crea un secreto de GitHub llamado HF_TOKEN con un token de acceso de Hugging Face.
  2. Agrega un archivo de flujo de trabajo (p. ej. .github/workflows/sync-to-hub.yml) a tu repositorio:
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/my-space
          hf_token: ${{ secrets.HF_TOKEN }}

Puedes configurar el Space SDK con space_sdk (por defecto, gradio). Consulta todos los parámetros.

Cómo funciona

La acción replica tus archivos en el Hub usando la CLI hf (hf repos create + hf upload). No es una sincronización git-to-git: sube el contenido de los archivos y excluye automáticamente los directorios .github/ y .git/. Los archivos eliminados de tu repositorio de GitHub también se eliminarán del Hub.

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

Consideraciones sobre el tamaño del archivo

La acción sube el contenido de los archivos con hf upload, por lo que no es necesario configurar Git LFS o git-xet para el Hub: los archivos grandes se almacenan en Xet automáticamente. Si tu repositorio de GitHub almacena archivos con Git LFS (GitHub lo requiere para archivos de más de 100MB), establece lfs: true en el paso actions/checkout para que la acción suba los archivos en lugar de los punteros de LFS.

Alternativa: git push manual

Si prefiere una sincronización directa de git a git en lugar de un espejo de archivos, puede enviar directamente al remoto git de su Space. Con un git push, los archivos de más de 10 MB deben rastrearse con git-xet (recomendado) o Git LFS:

name: Sync to Hugging Face hub
on:
  push:
    branches: [main]
  workflow_dispatch:

jobs:
  sync-to-hub:
    runs-on: ubuntu-latest
    steps:
      - uses: actions/checkout@v3
        with:
          fetch-depth: 0
          lfs: true
      - name: Push to hub
        env:
          HF_TOKEN: ${{ secrets.HF_TOKEN }}
        run: git push https://HF_USERNAME:$HF_TOKEN@huggingface.co/spaces/HF_USERNAME/SPACE_NAME main

Reemplaza HF_USERNAME con tu nombre de usuario y SPACE_NAME con el nombre de tu Space.

Update on GitHub