GolangでGitlabのPrivate Repositoryをgo getする
今回初めてgolangでprivate repositoryからパッケージを取る必要に迫られたんですが、
普通にgo getするだけじゃダメなんですね。
code:bash
$ go get gitlab.com/private/repository
go: finding gitlab.com/private/repository latest
go: downloading gitlab.com/private/repository v0.0.0-20190910081253-3597a9be31bb
指定されたURLを開いてみると、こんな文言が。
not found: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /tmp/gopath/pkg/mod/cache/vcs/1d0b636634a988ee2742a101ad96dee7d79e051ffe5fae811bfdb7812afd7f5f: exit status 128: fatal: could not read Username for 'https://gitlab.com': terminal prompts disabled しかし、Go1.13にはGOPRIVATEとかいうめっちゃ便利な環境変数が用意されていました。
詳しくはみていませんが、プライベートリポジトリの認証チェックを緩くしてくれる感じのものだと思います。(ふんわり
code:bash
$ GOPRIVATE=gitlab.com/* go get gitlab.com/private/repository
go: finding gitlab.com/private/repository latest
go: downloading gitlab.com/private/repository v0.0.0-20190910081253-3597a9be31bb
go: extracting gitlab.com/private/repository v0.0.0-20190910081253-3597a9be31bb
思いのほか簡単に解決出来て一安心ですわ。
今回生成されたgo.mod、go.sumを使ってdownloadしたときの動きとか、一応懸念はあるので、
その辺が確認出来たら更新するかもです。
2019/09/11 追記
別のPCでgo.modをとってきて、GOPRIVATE付けずにgo mod downloadしたらエラーなど出ずに正常終了しました。
んー、思ってたのと違う。もやもやする。
go.sumに一回入ったらそれでOKなんかなぁ。
そもそも、目的のプライベートリポジトリを開発したPCやったから、手元に該当のソースがあったからかなぁ。
引き続き確認は必要そう。
2019/09/12 追記
go get -uでアップデートした時にもまた410 GONEが出ました。
これを、GOPRIVATE=gitlab.com/* go get -uにすると、普通に成功!!
環境変数に入れちゃっていい気がしますね。
最終更新日 : 2019/09/12