Hub documentation
GitHub Actions
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
- 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.
- Agrega el token como un secreto de GitHub llamado
HF_TOKENen la configuración de tu repositorio. - 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: datasetParámetros
| Parámetro | Obligatorio | Predeterminado | Descripción |
|---|---|---|---|
github_repo_id | Sí | — | Repositorio de GitHub (usa ${{ github.repository }}) |
huggingface_repo_id | Sí | — | Repositorio de destino en el Hub (username/repo-name) |
hf_token | Sí | — | Token de acceso de Hugging Face |
repo_type | No | space | space, model o dataset |
space_sdk | No | gradio | gradio, streamlit, docker o static |
private | No | false | Si se debe crear el repositorio como privado |
subdirectory | No | . | 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