Synamon’s Engineer blog

Synamonは「XRが当たり前の世界をつくる」ことをミッションに、未来づくりに挑戦しているXRスタートアップです。 そのため、toB領域をメインに、未来への取り組みや事業づくりにチャレンジしている企業様への支援や、XR・エンタープライズメタバース活用のユースケースづくり、継続的に使われるための仕組みづくりに取り組んでいます。 このブログでは、XR・メタバース技術とその周辺の技術、開発全般に関してエンジニアがお話しします。

GitHubのプライベートリポジトリにGitクライアントでhttpsでアクセスする際に設定すること(Unity Package Managerでプライベートリポジトリ内のパッケージを取得したい)

エンジニアの岡村です。最近仕事でUnity Package ManagerでインストールできるパッケージのリポジトリをGitHub上に作成することがありました。早速作ったリポジトリをUnityから利用しようとしたところ、パッケージの読み込みが今までやっていたsshではうまく行きませんでした。なので、httpsでアクセスするように設定を変更することになりました。しかし、その際に環境によってアクセス出来たり出来なかったりと混乱がありました。

今回の記事はその際にアクセスできるようになった手順を社内ナレッジベースに纏めておいたものがベースになっています。せっかくなので今回、内容を整理して公開してみました。

前提環境

  • Windows10
  • Git for Windows インストール済み

※Gitがインストールされていないと、UnityPackageManagerがURLからパッケージを取得しようとした際にエラーが出ます。

f:id:Sokuhatiku:20211115132911p:plain

やること

Unity Package Managerはgitリポジトリからのパッケージの読み込みに、OSにインストールされたGitクライアントを利用します。 そこで、以下の手順でGitクライアントがGitHubのプライベートリポジトリにアクセスできるように資格情報を設定してやります。

GitHubのAccessTokenの発行

GitHubアカウントにアクセスするためのPersonalAccessTokenを作成します。発行は以下のURLから出来ます。

https://github.com/settings/tokens

トークンの発行時に権限を指定する必要があるのですが、今回はプライベートリポジトリのコードにアクセスできるrepo権限が最低限必要です。

f:id:Sokuhatiku:20211115144126p:plain

アクセストークンをGitに設定する

今の状態でプライベートリポジトリを参照するパッケージをUnityPackageManagerでインポートしようとすると、次のようなダイアログが出てきます。

f:id:Sokuhatiku:20211115141923p:plain

Tokenのタブに切り替えて、先ほどGitHub上で作成したアクセストークンを貼り付けます。

f:id:Sokuhatiku:20211115142000p:plain

貼り付けたらSign inボタンを押して下さい。認証がうまく行けば、そのままパッケージのダウンロードが行われます。

この手順が正常に完了した場合は設定は終わりです。おつかれさまでした!

(手動で)アクセストークンをGitに設定する

※ここまででパッケージの読み込みが正常に完了した場合は、以降の手順は不要です。

gitのバージョンが古い、Windows以外を使っている等、上の手法で上手くいかなかった場合はこちらの方法でうまく行くかもしれません。

資格情報をファイルにプレーンテキストで格納し、gitの設定で参照するようにします。

発行したトークンを格納したファイルを作成

%USERPFORILE%\.git-credentialsファイルを作ります。このファイルは後の手順でパスを指定するので、別の名前でも構いません(デフォルトはこの名前です)。

ファイルの中には以下の一行を記述します。既にファイルが存在する場合は改行して追記してください。

https://{User}:{Token}@github.com
元の文字列 置き換え内容
{User} GitHubのユーザー名(URLに使われる文字列)
{Token} 前の手順で取得したアクセストークン

https://hogehoge:xxxxxxxx@github.comのようにします。

Gitの設定変更

Gitのグローバルコンフィグに先程作ったファイルを参照するよう設定します。

※UnityPackageManagerのパッケージ読み込み時にリポジトリ単位のコンフィグは参照されないので、グローバル以上のスコープで設定する必要があります。

%USERPROFILE%\.gitconfigファイル内に以下の設定を追加します。

[credential]
    helper = store --file ~/.git-credentials

作業を終えてからUnityでプライベートリポジトリ内のパッケージを設定すると、正常にインストールできる様になっているはずです。

以上

以上の操作でgitでGitHubのプライベートリポジトリにhttpsでアクセスすることが出来るようになり、UnityPackageManagerでパッケージとして読み込むことも可能になります。

今回はは社内のgitのインストール設定やバージョン等に縛りがなかったため、GUIを使った設定では上手くいかない人が出てきました。その原因を全て特定することは出来ず、社内で問題が出たすべての人の環境で動作する方法の模索には少し苦労しました。

宣伝

今年のSynamonは、アドベントカレンダーを実施する予定です! 自分もいくつか記事を公開する予定なので、是非楽しみにしていてください!

qiita.com

また、弊社ではUnityエンジニアを募集しています。興味がある方は是非以下のページを覗いてみてください!

twitter.com

meety.net

herp.careers