Hub documentation
GitHub Actions
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
- 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.
- Ajoutez le jeton en tant que secret GitHub nommé
HF_TOKENdans les paramètres de votre dépôt. - 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: datasetParamètres
| Paramètre | Requis | Par défaut | Description |
|---|---|---|---|
github_repo_id | Oui | — | Dépôt GitHub (utilisez ${{ github.repository }}) |
huggingface_repo_id | Oui | — | Dépôt cible sur le Hub (username/repo-name) |
hf_token | Oui | — | Jeton d'accès Hugging Face |
repo_type | Non | space | space, model ou dataset |
space_sdk | Non | gradio | gradio, streamlit, docker ou static |
private | Non | false | Indiquer si le dépôt doit être créé en privé |
subdirectory | Non | . | 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