🏠
【Go】ローカル(社内)にあるリポジトリからモジュールをインポートするには
概要
ローカル環境のリポジトリに登録されているモジュールを利用したいことがあります。しかも、ローカルなので、https ではなく http でホストされているなんてことも。例えば、社内に用意した GitBucket を利用する場合などでしょうか。
そのようなリポジトリを参照する場合は、go mod tidy がエラーになってしまいますので、以下の環境変数を設定しましょう。
-
GOPRIVATE: プライベートな環境にあるリポジトリを参照できるようにする。 -
GOINSECURE: 非セキュア(httpsではない)リポジトリを参照できるようにする。
GO環境変数の確認
環境変数の現在の設定は go env コマンドで確認することができます。
GOPRIVATE と GOINSECURE は、デフォルトでは何も設定されていないと思います。
go env GOPRIVATE GOINSECURE
# デフォルトでは何も表示されない
GO環境変数の設定
これらの変数に、ローカル環境のリポジトリを設定しましょう。変数を設定するときは -w オプションを使用します。例えば、リポジトリのURLが http://foo.local/... だったとしたら、以下のような感じです。
go env -w GOPRIVATE=foo.local
go env -w GOINSECURE=foo.local
複数登録する場合は、foo.local,bar.local のようにカンマ区切りにします。また、glob 指定なので *.local のようにワイルドカードも利用できます。
GO環境変数をデフォルトに戻す場合
設定を元に戻したい場合は、-u オプションを使用します。
go env -u GOPRIVATE
go env -u GOINSECURE
Discussion