Usa*_*jad 52 environment-variables go go-modules
我开始研究一个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 Gone
我可以轻松地从终端克隆私有 repo,这意味着我的ssh
密钥配置正确。我在这里读到我需要设置GOPRIVATE
环境变量,但我不知道该怎么做。
任何人都可以回答或指向相关教程吗?
转到: v1.13,操作系统: macOS Mojave
ifn*_*tak 92
go env -w GOPRIVATE=github.com/repoURL/private-repo
Run Code Online (Sandbox Code Playgroud)
或者
如果您想允许来自您组织的所有私有存储库
go env -w GOPRIVATE=github.com/<OrgNameHere>/*
Run Code Online (Sandbox Code Playgroud)
检查“非公共模块的模块配置”以获取更多信息:
GOPRIVATE 环境变量控制 go 命令认为哪些模块是私有的(不公开),因此不应使用代理或校验和数据库。该变量是模块路径前缀的 glob 模式(在 Go 的 path.Match 的语法中)的逗号分隔列表。例如,
Run Code Online (Sandbox Code Playgroud)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访问 git repo(本地托管),您可能需要将以下内容添加到您的~/.gitconfig
:
GOPRIVATE=*.corp.example.com,rsc.io/private
Run Code Online (Sandbox Code Playgroud)
使go
命令能够访问 git 服务器。
Ser*_*aly 28
如果 zsh 使用:
go env -w GOPRIVATE='gitlab.my_firm_name.com/*'
否则得到
zsh: no matches found: GOPRIVATE=gitlab.my_firm_name.com/*
小智 6
只需跟进 ssh 的使用,这是用于使其工作的命令:
GitHub:
git config --global url."git@github.com:".insteadOf "https://github.com/"
Run Code Online (Sandbox Code Playgroud)
比特桶:
git config --global url."git@bitbucket.org:".insteadOf "https://bitbucket.org/"
Run Code Online (Sandbox Code Playgroud)