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

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_TOKEN para 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

  1. 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.
  2. Adicione o token como um segredo do GitHub chamado HF_TOKEN nas configurações do seu repositório.
  3. 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: dataset

Parâmetros

ParâmetroObrigatórioPadrãoDescrição
github_repo_idSim—Repositório do GitHub (use ${{ github.repository }})
huggingface_repo_idSim—Repositório de destino no Hub (username/repo-name)
hf_tokenSim—Token de acesso do Hugging Face
repo_typeNãospacespace, model ou dataset
space_sdkNãogradiogradio, streamlit, docker ou static
privateNãofalseSe deve criar o repositório como privado
subdirectoryNã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