PrivateなGo Modulesを管理する
#go
go mod tidy したときにプライベートリポジトリにあるモジュールを指定した状態でそのまま go mod tidy するとモジュールが取得できなくてエラーになる事がある。
GOPRIVATE を指定する
go mod tidy したときに 410 Gone がログに出るのが特徴
まずプライベートなモジュールを環境変数で明示するとよい
go env を使っても良い
code:sh
# 指定のOrganization配下のすべてをプライベートモジュールとして指定する
export GOPRIVATE=github.com/<Organization>/*
# 指定のRepository配下のすべてをプライベートモジュールとして指定する
export GOPRIVATE=github.com/<Organization>/<Repository>
Git の設定を調整する
fatal: could not read Username for 'https://*****' と出るのが特徴
プライベートなモジュールを取得するときに認証が必要な場合は対応するSSHの秘密鍵を使うか、Personal Access Token を使って認証するように .gitconfig に追記すると良い。
code:sh
# GitHubの場合
git config --global url.'https://<GITHUB_TOKEN>:x-oauth-basic@github.com/'.insteadOf 'https://github.com/'
# GHESなどの場合
git config --global url.'https://<GITHUB_TOKEN>:x-oauth-basic@ghe.example.com/'.insteadOf 'https://ghe.example.com/'