web-dev-qa-db-ja.com

private repo-go 1.13-`go mod ..` failed:ping" sum.golang.org/lookup ".. verifying package .. 410 gone

私は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)プライベートリポジトリ名と会社名には、アスタリスクやその他の特殊文字は含まれていません。アルファベットのみで、数字は含まれません。

22
noveaustack

万が一、名前にアスタリスクが付いたファイルがプライベートリポジトリにあることはありませんか?

0
Weev

基本的に、プライベートリポジトリの確認に失敗しました。ただし、チェックサムをオフにするのは好きではありませんが、モジュールを取得する前にGOSUMDBoffに簡単に設定できます。このようなもの:

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/

0