🏠

【Go】ローカル(社内)にあるリポジトリからモジュールをインポートするには

2024/11/27に公開

概要

ローカル環境のリポジトリに登録されているモジュールを利用したいことがあります。しかも、ローカルなので、https ではなく http でホストされているなんてことも。例えば、社内に用意した GitBucket を利用する場合などでしょうか。
そのようなリポジトリを参照する場合は、go mod tidy がエラーになってしまいますので、以下の環境変数を設定しましょう。

  • GOPRIVATE : プライベートな環境にあるリポジトリを参照できるようにする。
  • GOINSECURE : 非セキュア(httpsではない)リポジトリを参照できるようにする。

GO環境変数の確認

環境変数の現在の設定は go env コマンドで確認することができます。
GOPRIVATEGOINSECURE は、デフォルトでは何も設定されていないと思います。

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