如何设置 GOPRIVATE 环境变量

新手上路,请多包涵

我开始研究一个 Go 项目,它使用 Github 私有存储库中的一些私有模块,每当我尝试运行 go run main.go 它给了我下面的 410 Gone error-def-ef-faf1

验证 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+不兼容:410 消失了

我可以轻松地从终端克隆私人仓库,这意味着我的 ssh 密钥配置正确。我 在这里 读到我需要设置 GOPRIVATE 环境变量,但我不确定该怎么做。

任何人都可以回答或指出相关教程吗?

转到: v1.13, 操作系统: macOS Mojave

原文由 UsamaAmjad 发布,翻译遵循 CC BY-SA 4.0 许可协议

阅读 1.9k
2 个回答

简短回答:

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

或者

如果你想允许来自你的组织的所有私人回购

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


长答案:

查看 “非公共模块的模块配置” 以获取更多信息:

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 repo(本地托管),您可能需要将以下内容添加到您的 `~/.gitconfig` :

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

”`

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

原文由 ifnotak 发布,翻译遵循 CC BY-SA 4.0 许可协议

只是跟进 ssh 的用法,这是用来让它工作的命令:

GitHub:

 git config --global url."git@github.com:".insteadOf "https://github.com/"

比特桶:

 git config --global url."git@bitbucket.org:".insteadOf "https://bitbucket.org/"

原文由 JFW 发布,翻译遵循 CC BY-SA 4.0 许可协议

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题