私はgolang 1.13を使用しています。
プライベートgitlabプロジェクトに依存するプロジェクトがあります。
私は同じためのsshキーを持っています。
新しく作成したモジュールの依存関係を取得しようとすると、次のエラーが発生します。
$ go version
go version go1.13 linux/AMD64
$ go mod why
go: downloading gitlab.com/mycompany/myproject v0.0.145
verifying gitlab.com/mycompany/[email protected]: gitlab.com/mycompany/[email protected]: reading https://sum.golang.org/lookup/gitlab.com/mycompany/[email protected]: 410 Gone
プライベートなgitlabプロジェクトなので、なぜsum.golang.org/lookupにpingを送信しようとしているのか、私にはわかりません。
私の〜/ .gitconfigには以下が含まれています(同様のエラーをGoogle検索で調べたところ)
# Enforce SSH
[url "ssh://[email protected]/"]
insteadOf = https://github.com/
[url "ssh://[email protected]/"]
insteadOf = https://gitlab.com/
[url "ssh://[email protected]/"]
insteadOf = https://bitbucket.org/
[url "[email protected]:"]
insteadOf = https://gitlab.com/
エラーはまだ解決しません。
私のプライベートgitlabプロジェクトリポジトリから現在のプロジェクトにパッケージがダウンロードされることを期待しています。
私のgitlabプロジェクトリポジトリで、「取得」の準備をするために必要なことはありますか?
プライベートgitlabプロジェクトリポジトリには、プロジェクトのgo.sumとgo.modもすでに含まれています。
私が欠けているものはありますか?
編集:1)プライベートリポジトリ名と会社名には、アスタリスクやその他の特殊文字は含まれていません。アルファベットのみで、数字は含まれません。
万が一、名前にアスタリスクが付いたファイルがプライベートリポジトリにあることはありませんか?
基本的に、プライベートリポジトリの確認に失敗しました。ただし、チェックサムをオフにするのは好きではありませんが、モジュールを取得する前にGOSUMDB
をoff
に簡単に設定できます。このようなもの:
GOSUMDB=off go get github.com/mycompany/myproject
ref: https://github.com/golang/go/issues/35164#issuecomment-546503518
2番目の優れた解決策は、goコマンドがプライベート(パブリックには使用不可)と見なすモジュールを制御するGOPRIVATE
環境変数を設定することです。そのため、プロキシデータベースやチェックサムデータベースを使用しないでください。変数は、モジュールパスプレフィックスのグロブパターン(Goのpath.Match
と同じ構文)のコンマ区切りリストです。例えば、
export GOPRIVATE=*.corp.example.com,rsc.io/private
または
go env -w GOPRIVATE=github.com/mycompany/*
あなたが試すことができる最後の解決策は、公開したくない、またはsum.golang.org/lookup/github.com/mycompany/...
で確認したくないすべてのプライベートリポジトリに対してこのようなチェックをオフにすることです。
GONOSUMDB=gitlab.com/mycompany/* go mod why
注意:
Httpsを介したモジュールまたはリポジトリのフェッチに問題がある場合は、~/.gitconfig
に以下を追加して、go
の代わりにssh
を使用してhttps
リポジトリを取得/取得することができます。
[url "ssh://[email protected]/"]代わりに= https://github.com/