1. 问题描述:

require 获取私有库包时,需要验证登陆权限,无法获取包

  • go mod tidy 导入包失败
  • go get 包失败
  • go build 有 CHECKSUM 过程,无法编译
  1. 现象分析:
  • go get 不支持代码支持之外的仓库。并且 git 调用链过程采用 https
  • 下载过程如果机器设置了 GOPROXY,会导致下载失败
  • 编译过程会导致 CHECKSUM 失败
  1. 解决方法:
  • 给仓库打 tag,这样仓库地址可以被识别
  • export GOPRIVATE=git@github.com;go build 时,系统不会用 GOPROXY 以及校验 SUM
  • 调整 git https 为 ssh
$ git config --global url."git@github.com:".insteadOf "https://github.com/"
$ cat ~/.gitconfig
[url "git@github.com:"]
	insteadOf = https://github.com/
$ go get github.com/private/repo && echo Success!
Success!

参考文章:

How to go get private repos using SSH key auth instead of password auth.

解决golang go get私有仓库的问题

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐