1. ホーム
  2. go

[解決済み] 環境変数GOPRIVATEの設定方法

2022-03-05 11:49:35

質問

の作業を開始しました。 Go プロジェクトで、Github のプライベートレポからいくつかのプライベートモジュールを使用しているのですが、私が go run main.go というメッセージが表示されます。 410 Gone というエラーが発生します。

github.com/repoURL/[email protected]+incompatible/go.mod を検証中: github.com/repoURL/[email protected]+incompatible/go.mod: 読み取り中です。 https://sum.golang.org/lookup/github.com/!repoURL/[email protected]+incompatible : 410 消去

ターミナルから簡単にプライベートリポをクローンすることができます。 ssh キーは正しく設定されています。私は ここで を設定する必要があることを GOPRIVATE 環境変数がありますが、その方法がよくわかりません。

どなたか回答するか、関連するチュートリアルを教えてください。

行ってください。 v1.13, OSです。 macOS Mojave

解決方法

簡単な答え

go env -w GOPRIVATE=github.com/repoURL/private-repo

または

組織内のすべてのプライベートリポジトリを許可する場合

go env -w GOPRIVATE=github.com/<OrgNameHere>/*


長文回答です。

確認 公開されていないモジュールのモジュール設定 をご覧ください。

<ブロッククオート

GOPRIVATE 環境変数は、go コマンドがどのモジュールをプライベート(一般に利用できない)とみなし、したがってプロキシやチェックサムのデータベースを使用しないようにするかを制御します。この変数は、モジュールのパスの接頭辞のグロブパターン(Go の path.Match の構文)のカンマ区切りのリストです。例えば

 GOPRIVATE=*.corp.example.com,rsc.io/private

は、git.corp.example.com/xyzzy、rsc.io/private、および rsc.io/private/quux を含む、いずれかのパターンに一致するパスプレフィックスのモジュールを private として処理するよう go コマンドに指示します。

. .

go env -w' コマンド (参照 'go help env') を使って、今後 go コマンドを起動する際にこれらの変数を設定することができます。


sshの使い方に関する注意点。

を使用する場合 ssh を使用して (ローカルでホストされている) git リポジトリにアクセスする場合は、以下の内容をあなたの ~/.gitconfig :

[url "ssh://[email protected]/"]
       insteadOf = https://git.local.intranet/

には go コマンドで git サーバーにアクセスできるようにします。