我开始做一个Go项目,它使用Github private repos的一些私有模块,每当我try 运行go run main.go时,它都会给我一个410 Gone以下的错误:

验证github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod:github.com/repoURL/go-proto@v2.86.0+incompatible/go.mod:读数https://sum.golang.org/lookup/github.com/!repoURL/go-proto@v2.86.0+incompatible:410GONE

我可以很容易地从终端克隆私有回购,这意味着我的ssh个密钥配置正确.我读到here,我需要设置GOPRIVATE环境变量,但我不确定如何设置.

谁能回答或指出相关的教程?

Go: v1.13,OS: MacOS Mojave

推荐答案

简短回答:

go env -w GOPRIVATE=github.com/repoURL/private-repo

OR

如果要允许来自您组织的所有私有回购

go env -w GOPRIVATE=github.com/<OrgNameHere>/*

长长的答案:

查看"Module configuration for non-public modules"了解更多信息:

GOPRIVATE环境变量控制go命令认为私有(不公开)的模块,因此不应使用代理或校验和数据库.该变量是一个逗号分隔的模块路径前缀glob模式列表(语法为Go's path.Match).例如

 GOPRIVATE=*.corp.example.com,rsc.io/private

使go命令将路径前缀与任一模式匹配的任何模块视为私有模块,包括git.corp.example.com/xyzy、rsc.io/private和rsc.io/private/quux.

. .

"go env-w"命令(请参阅"go help env")可用于为将来的go命令调用设置这些变量.


关于ssh用法的说明:

如果您使用ssh访问git repo(本地托管),您可能需要将以下内容添加到您的~/.gitconfig中:

[url "ssh://git@git.local.intranet/"]
       insteadOf = https://git.local.intranet/

go条命令可以访问git服务器.

Go相关问答推荐

Golang ==错误:OCI运行时创建失败:无法启动容器进程:exec:./" bin:stat./" bin:没有这样的文件或目录:未知

CGO Linux到Windows交叉编译中的未知类型名称

如何配置vscode以在Go中显示不必要的(过度指定的)泛型?

golang regex基于关键字拆分字符串

从 wincrypt API 到 Go 的 RC2 解密

Go-如何在递归函数中关闭通道

如何在golang中使用viper获取对象的配置数组?

我们如何保证取消的上下文会导致 goroutine 终止?

testcontainers:如何修复绑定源路径不存在

按位移计算结果中的差异

使用 httptest 对 http 请求进行单元测试重试

linter 警告:返回值被忽略

无法使用带有 422 的 go-github 创建提交 - 更新不是快进

Golang 中的泛型类型转换

go version -m 输出中的箭头符号=>是什么意思?

如何将文件上传到 Google Drive,并与使用服务帐户和 Golang 的任何人共享

无限期运行 Go routine (完成后重新启动)

如何优雅地映射到 Go 中返回可变长度数组的方法?

Go模板中的浮点除法

GOLANG 如何使用 http.FileServer 从模板目录加载某个 html 文件