GOPRIVATE環境変数を設定する方法


15

私はGoプロジェクトに取り組み始めました、そしてそれはGithubプライベートリポジトリからのいくつかのプライベートモジュールを使用します、そしてそれを実行しようとするといつでもgo run main.go私に以下の410 Goneエラーを与えます:

github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod:github.com/repoURL/go-proto@v2.86.0+incompatible/go.modの確認:https://sum.golangの読み取り。 org / lookup / github.com / !repoURL/go-proto@v2.86.0+incompatible:410 Gone

ターミナルからプライベートリポジトリを簡単に複製できsshます。つまり、キーが正しく構成されています。環境変数を設定する必要があることをここで読みましたが、そのGOPRIVATE方法がわかりません。

誰かが関連するチュートリアルに答えたり指摘したりできますか?

Go: v1.13、OS: macOS Mojave


man $(basename $SHELL)
ピーター

1
あります行くのヘルプそのためには、:go help module-private
Soroush

回答:


24

簡潔な答え:

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

goコマンドは、git.corp.example.com / xyzzy、rsc.io / private、rsc.io / private / quuxなど、いずれかのパターンに一致するパスプレフィックスを持つ任意のモジュールをプライベートとして扱います。

。。

'go env -w'コマンド( 'go help env'を参照)を使用して、これらの変数を将来のgoコマンド呼び出しに設定できます。


sshの使用に関する注意:

sshを使用してgit repo(ローカルにホストされている)にアクセスする場合は、次のものをに追加する必要があります~/.gitconfig

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

以下のためgoのコマンドgitのサーバーにアクセスできるようにします。


1
ありがとう!うまくいったので、トリックは、組織名でワイルドカードURLを使用することでした。go env -w GOPRIVATE=github.com/{OrgNameHere}/*
UsamaAmjad
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.