gomod使用私有仓库
在工作中我们有些mod是放在gitlab中的且一般是有认证的这里记录下解决办法
私有仓库设置
都可以通过
,
来设置多个
- 告诉go那些仓库是私有仓库
go env -w GOPRIVATE="git@git.example.com"
- 告诉go私有仓库不走goproxy代理
go env -w GONOPROXY="git.example.com"
- 告诉go这个仓库的不用验证CA
go env -w GOINSECURE="git.example.com"
- 设置不做校验的仓库
go env -w GONOSUMDB="git.example.com"
使用gitlab token认证
原理其实就是替换下git的链接将普通的链接替换成可以认证的链接
token在gitlab的项目–>设置–>访问令牌,添加一个只读的即可
# 将go默认访问的替换成通过token认证的链接以达到认证的目的
git config --global url."https://oauth2:$TOKEN@git.example.com/lib/utils.git".insteadOf "https://git.example.com/lib/utils.git"
使用gitlab ssh认证
- 这里将https的请求换成ssh请求,需要注意的是本地的公钥需要提前加入到gitalb中
git config --global url."git@git.example.com:lib/utils.git".insteadOf "https://git.example.com/lib/utils.git"
# 另一种写法
git config --global url."ssh://git@git.example.com:lib/utils.git".insteadOf "https://git.example.com/lib/utils.git"