登录
首页 >  Golang >  Go问答

设置 GOPRIVATE 环境变量的方法

来源:stackoverflow

时间:2024-03-21 08:00:33 434浏览 收藏

设置 GOPRIVATE 环境变量可指定哪些模块对 Go 命令来说是私有的。使用 `go env -w goprivate=github.com/repourl/private-repo` 命令设置特定私有模块,或使用 `go env -w goprivate=github.com//*` 允许来自特定组织的所有私有模块。此变量使用逗号分隔的 glob 模式列表,可以控制 Go 命令认为哪些模块是私有的,从而不使用代理或校验和数据库。

问题内容

我开始研究 Go 项目,它使用 Github 私有存储库中的一些私有模块,每当我尝试运行 go run main.go 时,它都会给我一个以下 410 Gone 错误:

验证 github.com/repoURL/[email protected]+inknown/go.mod:github.com/repoURL/[email protected]+inknown/go.mod:阅读 https://sum.golang.org/lookup/github。 com/!repoURL/[电子邮件受保护]+不兼容:410 消失

我可以轻松地从终端克隆私人存储库,这意味着我的 ssh 密钥配置正确。我在这里读到我需要设置 GOPRIVATE 环境变量,但我不知道如何做到这一点。

有人可以回答或指出相关教程吗?

Go: v1.13,操作系统: macOS Mojave


解决方案


简短回答:

go env -w goprivate=github.com/repourl/private-repo

如果您想允许来自您组织的所有私有存储库

go env -w goprivate=github.com//*

长答案:

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

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

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

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

。 .

“go env -w”命令(请参阅“go help env”)可用于设置这些变量以供将来的 go 命令调用。

ssh使用注意事项:

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

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

go 命令能够访问 git 服务器。

如果 zsh 使用:

go env -w goprivate='gitlab.my_firm_name.com/*'

否则得到

zsh:未找到匹配项:goprivate=gitlab.my_firm_name.com/*

今天带大家了解了的相关知识,希望对你有所帮助;关于Golang的技术知识我们会一点点深入介绍,欢迎大家关注golang学习网公众号,一起学习编程~

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>