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

GitHub Actions を使用して、GitHub リポジトリを Hugging Face Hub に自動的に同期できます。公式の huggingface/hub-sync アクションは、Models、Datasets、Spaces の同期をサポートしています。

キーレス公開(保存またはローテーションが必要なHF_TOKENシークレットがない)については、Trusted Publishersを参照してください。これは、各実行の開始時に GitHub Actions の組み込み OIDC トークンを、短期間有効なリポジトリスコープの Hub トークンと交換します。

セットアップ

  1. ターゲットリポジトリへのwrite権限を持つHugging Faceのaccess tokenを作成してください。セキュリティを強化するために、同期先のリポジトリにのみスコープを限定したfine-grained tokenを使用することをお勧めします。
  2. リポジトリの設定で、HF_TOKEN という名前のGitHub secretとしてトークンを追加してください。
  3. リポジトリにワークフローファイル(例: .github/workflows/sync-to-hub.yml)を追加します。

基本的な使用方法

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

デフォルトでは、Spaceに同期されます。モデルやデータセットを同期するには、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

パラメータ

パラメータ必須デフォルト説明
github_repo_idはい—GitHub リポジトリ(${{ github.repository }} を使用)
huggingface_repo_idはい—Hub上のターゲットリポジトリ(username/repo-name)
hf_tokenはい—Hugging Face アクセストークン
repo_typeいいえspacespace、model、またはdataset
space_sdkいいえgradiogradio、streamlit、docker、またはstatic
privateいいえfalseリポジトリをプライベートとして作成するかどうか
subdirectoryいいえ.特定のサブディレクトリを同期する(モノレポに有用)

このアクションはhf CLIを使用してファイルをHubにミラーリングします。git-to-gitの同期ではありません。.github/ディレクトリと.git/ディレクトリは自動的に除外され、削除もミラーリングされます(GitHubから削除されたファイルはHubからも削除されます)。

より複雑なワークフロー(ビルドステップやカスタムアップロードロジックなど)では、代わりにワークフロー内で直接hf CLIをインストールして使用できます。

Spaces固有のガイダンス(ファイルサイズ制限、LFSの処理)については、GitHub ActionsによるSpacesの管理を参照してください。

Update on GitHub