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

Vous pouvez utiliser GitHub Actions pour synchroniser automatiquement votre dépôt GitHub avec le Hugging Face Hub. L'action officielle huggingface/hub-sync prend en charge la synchronisation des Models, des Datasets et des Spaces.

Pour la publication sans clé — aucun secret HF_TOKEN à stocker ou à faire tourner — consultez Trusted Publishers, qui échange le jeton OIDC intégré de GitHub Actions contre un jeton Hub à durée de vie courte et limité au dépôt au début de chaque exécution.

Configuration

  1. Créez un jeton d’accès Hugging Face avec la permission write sur le dépôt cible. Pour une meilleure sécurité, utilisez un jeton granulaire limité au seul dépôt vers lequel vous synchronisez.
  2. Ajoutez le jeton en tant que secret GitHub nommé HF_TOKEN dans les paramètres de votre dépôt.
  3. Ajoutez un fichier de workflow (par exemple .github/workflows/sync-to-hub.yml) à votre dépôt.

Utilisation de base

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 }}

Par défaut, cette synchronisation est effectuée vers un Space. Pour synchroniser un modèle ou un jeu de données, définissez le paramètre 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

Paramètres

ParamètreRequisPar défautDescription
github_repo_idOui—Dépôt GitHub (utilisez ${{ github.repository }})
huggingface_repo_idOui—Dépôt cible sur le Hub (username/repo-name)
hf_tokenOui—Jeton d'accès Hugging Face
repo_typeNonspacespace, model ou dataset
space_sdkNongradiogradio, streamlit, docker ou static
privateNonfalseIndiquer si le dépôt doit être créé en privé
subdirectoryNon.Synchroniser un sous-répertoire spécifique (utile pour les monorepos)

L'action réplique vos fichiers vers le Hub à l'aide de l'interface en ligne de commande hf — il ne s'agit pas d'une synchronisation git vers git. Elle exclut automatiquement les répertoires .github/ et .git/ et réplique les suppressions (les fichiers supprimés de GitHub seront supprimés du Hub).

Pour des flux de travail plus complexes (par exemple, des étapes de compilation, une logique de téléversement personnalisée), vous pouvez plutôt installer et utiliser directement le hf CLI dans votre flux de travail.

Pour des conseils spécifiques aux Spaces (limites de taille de fichier, gestion du LFS), consultez Gestion des Spaces avec GitHub Actions.

Update on GitHub