Hub documentation
Gestión de Spaces con GitHub Actions
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-synctambién funciona para Models y Datasets. Consulte GitHub Actions para el uso general.
Configuración
- Crea un secreto de GitHub llamado
HF_TOKENcon un token de acceso de Hugging Face. - 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 mainReemplaza HF_USERNAME con tu nombre de usuario y SPACE_NAME con el nombre de tu Space.