Bitbucket / Github の private リポジトリを Go Get する方法を以前書いていたのですが、これだけでは現状失敗することに先日気付きました。
上記の設定を行っていたとしても、現状以下のような 410 Gone
エラーに遭遇します。
以下は bitbucket の例ですが、github も同様でした。
$ go get -u -v bitbucket.org/drtaka/private_repository/package go: finding bitbucket.org/drtaka/private_repository latest go: finding bitbucket.org/drtaka/private_repository/package latest go: downloading bitbucket.org/drtaka/private_repository v0.0.0-20200509073455-da8936b726a4 verifying bitbucket.org/drtaka/private_repository@v0.0.0-20200509073455-da8936b726a4: bitbucket.org/drtaka/private_repository@v0.0.0-20200509073455-da8936b726a4: reading https://sum.golang.org/lookup/bitbucket.org/drtaka/private_repository@v0.0.0-20200509073455-da8936b726a4: 410 Gone
環境は以下の通りです。
$ go version go version go1.13.8 darwin/amd64
410 Gone
の HTTP ステータスって分かり難いですよね・・・
当初、この事象への対処が全くわからなかったのですが、とりあえず暫定的な対応として以下が有効である確認がとれました。
$ export GO111MODULE=on $ export GOPROXY=direct $ export GOSUMDB=off
GO111MODULE
の指定は go1.13 1.16 以降(※)であればいらないはずです。GOPROXY
、GOSUMDB
に関しては、"Go モジュールのミラーリング・サービス【正式版】 — プログラミング言語 Go | text.Baldanders.info"に説明があります。
※ 1.16 からGO111MODULE
の設定はデフォルトが on
ですね。
とりあえず前回の設定にプラスして上記(最低でもGOPROXY=direct
、GOSUMDB=off
は必須)の設定を入れておけば、410 Gone
を回避でき、private リポジトリでも Go Get が可能です。