我开始在一个Go
项目上工作,它使用了Github私有仓库中的一些私有模块,每当我尝试运行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:410人走了
我可以很容易地从终端克隆私有仓库,这意味着我的ssh
密钥配置正确。我在这里读到我需要设置GOPRIVATE
环境变量,但我不知道如何做到这一点。
有人能回答或指出相关的教程吗?
**Go:**v1.13,**操作系统:**macOS莫哈韦
4条答案
按热度按时间knsnq2tg1#
简短回答:
或
如果要允许组织中的所有私有回购
长回答:
查看“非公共模块的模块配置”以获取更多信息:
GOPRIVATE环境变量控制go命令认为哪些模块是私有的(不可公开使用),因此不应使用代理或校验和数据库。该变量是模块路径前缀的glob模式(在Go的path.Match语法中)的逗号分隔列表。例如,
导致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
:go
命令可以访问git服务器。f87krz0w2#
如果使用zsh:
go env -w GOPRIVATE='gitlab.my_firm_name.com/*'
否则得到
zsh: no matches found: GOPRIVATE=gitlab.my_firm_name.com/*
k3bvogb13#
下面是ssh的用法,这是用来让它工作的命令:
GitHub:
Bitbucket:
xxls0lw84#
如果使用zsh,在通配符前添加
/
,如下所示:go env -w GOPRIVATE=github.com/<OrgNameHere>\/*