Open3
goの開発tips
GOPRIVATE
の設定
-
go get
する際 sum.golang.org に問い合わせ、go modulesのchecksumがあっているかどうか確認する仕組みがあるが、非公開のgo modulesをget
するときはchecksumの検証ができない - このため特に設定せずに
go get
しようとすると410 Gone
と処理される - 回避するには環境変数
GOPRIVATE
にurlを設定する必要がある-
GOPRIVATE
にurlを設定することで、それに対してgo getする際はchecksumの検証をせずにアクセスできる -
github.com/<org名>
やgithub.com/<org名>/<repo名>
を設定できる - どのレベルで許可するかの違い。社用の組織であれば
github.com/<org名>
でも良いだろうし、硬めにいくならgithub.com/<org名>/<repo名>
でリポジトリごとに設定すると良いと思う
-
ローカルにあるモジュールを別モジュールから参照したい時
- replaceを使うよう
go.mod
を書き換える
replace github.com/<org名>/<repo名> => ../any/path/to/local/repository
- dockerでビルドする場合はもちろんマウントしないとなので要調整
使っているモジュールのdefault branch以外を参照したい時
go.mod
を書き換えるかgo get
コマンドに指定する
go.mod
- commit hashかブランチ名かタグ(リリースバージョン?)を指定する
require (
github.com/<org>/<repo> <commit hash> || <branch name> || <tag>
)
-
@
や/
はinvalid stringとして弾かれるので注意- 適当な文字に置き換わると思うんだけど何に置き換わるか未確認
-
-
や_
ではなさそうだった
-
- 適当な文字に置き換わると思うんだけど何に置き換わるか未確認
go get
go get -u <モジュール>@<commit hash> || <branch name> || <tag>
- こちらも
@
や/
はNG