🔓
go getでGitHubのプライベートリポジトリやOrganizationリポジトリを取得する方法
go get
でGitHubのプライベートリポジトリやGitHub Organizationのインターナル・プライベートリポジトリを取得する方法をご紹介します。
流れ
- GitHubのパーソナルアクセストークンを発行する
- git config にパーソナルアクセストークンを設定する
- GOPRIVATE環境変数を設定する
GitHubのパーソナルアクセストークンを発行する
GitHubのプライベートリポジトリやGitHub Organizationのインターナルリポジトリ、プライベートリポジトリにアクセスするための、「パーソナルアクセストークン」を発行します。
設定方法はGitHub公式ドキュメントを参考にしてください。
git config にパーソナルアクセストークンを設定する
上記で発行したパーソナルアクセストークンを利用するように git config
を設定します。
$ git config --global url."https://<your token>:x-oauth-basic@github.com/".insteadOf "https://github.com/"
"https://github.com/"というURLを使用する際に別URLに置き換えるための設定です。
この場合であれば、常にパーソナルアクセストークンを使用してGitHubにアクセスするようになります。
GOPRIVATE
環境変数を設定する
go get
時にチェックサムの検証をするのがデフォルトの挙動のため、GOPRIVATE
を設定する必要があります。
また、ダウンロードしたモジュールは、ソースに関係なく、 sum.golang.orgにある公開のGoチェックサムデータベースと照合して検証するのがデフォルトです。
https://golang.org/cmd/go/#hdr-Module_configuration_for_non_public_modules
echo "export GOPRIVATE=\"github/<your name>/\"" >> ~/.zshrc
まとめ
上記の手順で、go get
でGitHubのプライベートリポジトリやGitHub Organizationのインターナルリポジトリ、プライベートリポジトリにアクセスできるようになります。
社内用のライブラリやSDKを開発する際に必要な設定になると思うので、何か参考になれば幸いです。
Discussion