# HTTPS Git URL でのプライベートリポジトリの使用

> Configure credentials so the Package Manager can fetch packages from private repositories over HTTPS Git URLs.

端末で Git を使用して HTTPS でプライベートリポジトリにアクセスすると、ユーザー名とパスワードの入力が求められます。これらの認証情報は Git からサーバーへ送信されます。サーバーがこれらの認証情報を受け入れて、リポジトリへのアクセスを許可すると、Git によるコマンドの実行が続行します。

Unity Package Manager が Git URL を使用してパッケージを取得する場合、ユーザーが認証情報を入力するための端末はありません。したがって、サーバーが Git の認証情報をリクエストしても、Git はプロンプトを発行せず、Unity Package Manager にエラーをレポートします。この問題を解決するには、Git 認証情報ヘルパーを使用して Git を設定する必要があります。そのリポジトリに必要な認証情報がヘルパーにロードされている必要があります。認証情報が有効な場合、Git は Unity Package Manager が発行したコマンドを正常に実行できます。

**ノート**: SCP のような構文など、SSH プロトコルに Git URL を使用する場合には、Git 認証情報ヘルパーの効果はありません。

## Git Credential Manager

Git がサポートしている [認証情報保存用の認証情報ヘルパー](https://git-scm.com/book/en/v2/Git-Tools-Credential-Storage) はいくつかありますが、推奨されている認証情報ヘルパーは [Git Credential Manager](https://github.com/git-ecosystem/git-credential-manager) (GCM) です。GCM は柔軟性が高く、インストールが容易で、積極的にサポートされています。GCM は .NET をベースに作成されているため、.NET をサポートする Windows、macOS、Linux ディストリビューションで実行できます。

デフォルトでは、設定された認証情報ストアとして Windows Credential Manager (Windows の場合) と macOS Keychain （macOS の場合） が使用されます。GCM には Linux 用に設定されたデフォルトのストアがありません。GCM でサポートされているさまざまな認証情報ストアの設定の詳細については、[GCM 認証情報ストアのドキュメント](https://github.com/git-ecosystem/git-credential-manager/blob/release/docs/credstores.md) を参照してください。

## 必要な要件

GCM をインストールしたら、HTTPS URL を使用してプライベート Git リポジトリからパッケージを取得できます。

[Git for Windows](https://gitforwindows.org/) インストーラーには、GCM を自動的にインストールして設定するステップがあります。以下の場合は、GCM を個別にインストールすることもできます。

* 別の方法で Windows に Git をインストールした場合
* macOS または Linux を使用している場合

GCM のインストールの詳細については、[GCM のインストール手順](https://github.com/git-ecosystem/git-credential-manager/blob/release/docs/install.md) を参照してください。

## 手順

HTTPS Git URL を使用するプライベートリポジトリのパッケージにアクセスするには、次の手順に従います。

1. 端末で以下のコマンドを実行して、GCM を使用するように Git を設定します。

   ```lang-bash
   git config --global credential.helper manager
   ```

2. 端末を使用してリポジトリに 1 回アクセスします。例えば、以下のコマンドを実行します。

   ```lang-bash
   git ls-remote --heads https://<url-to-repository> HEAD
   ```

3. Git のプロンプトが表示されたら、認証情報を入力します。ユーザーアカウントがリモート Git サーバーにアクセスできる場合は、サーバーが認証情報を受け入れると、Git 認証情報ヘルパーが認証情報を安全に保存します。

4. Unity Package Manager を使用します。Unity Package Manager は、保存されている認証情報を必要に応じて使用して、ユーザーがアクセス権を持つ HTTPS ベースのリポジトリからパッケージを取得します。

## 追加リソース

* [Git の問題のトラブルシューティング](/engine/6000.0/manual/packages-list/packages/upm-errors.md#git-not-found)
