Hub documentation
GitHub Actions
GitHub Actions
Você pode usar o GitHub Actions para sincronizar automaticamente seu repositório do GitHub com o Hugging Face Hub. A ação oficial huggingface/hub-sync suporta a sincronização de Models, Datasets e Spaces.
Para publicação sem chave — sem o segredo
HF_TOKENpara armazenar ou rotacionar — consulte Trusted Publishers, que troca o token OIDC embutido do GitHub Actions por um token de Hub de vida curta e escopo de repositório no início de cada execução.
Configuração
- Crie um token de acesso do Hugging Face com permissão de escrita no repositório de destino. Para maior segurança, use um token de granulação fina limitado apenas ao repositório para o qual você está sincronizando.
- Adicione o token como um segredo do GitHub chamado
HF_TOKENnas configurações do seu repositório. - Adicione um arquivo de workflow (por exemplo,
.github/workflows/sync-to-hub.yml) ao seu repositório.
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 padrão, isso sincroniza para um Space. Para sincronizar um modelo ou conjunto de dados, defina o 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 | Obrigatório | Padrão | Descrição |
|---|---|---|---|
github_repo_id | Sim | — | Repositório do GitHub (use ${{ github.repository }}) |
huggingface_repo_id | Sim | — | Repositório de destino no Hub (username/repo-name) |
hf_token | Sim | — | Token de acesso do Hugging Face |
repo_type | Não | space | space, model ou dataset |
space_sdk | Não | gradio | gradio, streamlit, docker ou static |
private | Não | false | Se deve criar o repositório como privado |
subdirectory | Não | . | Sincronizar um subdiretório específico (útil para monorepos) |
A ação espelha seus arquivos no Hub usando o CLI hf — não é uma sincronização git-to-git. Ela exclui automaticamente os diretórios .github/ e .git/ e espelha as exclusões (arquivos removidos do GitHub serão removidos do Hub).
Para fluxos de trabalho mais complexos (por exemplo, etapas de compilação, lógica de upload personalizada), você pode instalar e usar o hf CLI diretamente no seu fluxo de trabalho.
Para orientações específicas de Spaces (limites de tamanho de arquivo, tratamento de LFS), consulte Gerenciando Spaces com GitHub Actions.
Update on GitHub