使用 go get 来要求 WSL 2 上私有 github 仓库的依赖
Use go get to require dependency from private github repo on WSL 2
我正在 windows 10 上试用 WSL 2,到目前为止一切顺利,但我已经努力了 2 周才能完成这项工作,因为出于某种原因 go get
没有' 使用或无法使 Git 凭据管理器提示输入我的凭据。
我关注此博客以使用 GCM 设置 WSL2 https://www.edwardthomson.com/blog/git_credential_manager_with_windows_subsystem_for_linux.html
而且它非常适合大多数日常任务,例如克隆、读取和写入。但是当使用 go get
我得到这个错误。
go get <remote github repo>@<latest commit id>
go: <remote github repo> 681dceefc81203e094872401c184d038090d6049 => v0.0.17-0.20200501212733-681dceefc812
go get: <remote github repo>@v0.0.17-0.20200501212733-681dceefc812/go.mod: verifying module: <remote github repo>@v0.0.17-0.20200501212733-681dceefc812/go.mod: reading https://sum.golang.org/lookup/<remote github repo>@v0.0.17-0.20200501212733-681dceefc812: 410 Gone
server response:
not found: <remote github repo>@v0.0.17-0.20200501212733-681dceefc812: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /tmp/gopath/pkg/mod/cache/vcs/232ff028cb2fdebd254e30bfc612843483f0fe3fbeb18d5fc8fb4b20f21c9021: exit status 128:
fatal: could not read Username for 'https://github.com': terminal prompts disabled
已经尝试过 ssh-keys 和此处提出的解决方案
但错误仍然存在,当启用 env GIT_TERMINAL_PROMPT=1
时没有任何反应,我猜这是因为 WSL 2 没有这样做的权限。无论如何,我也尝试了这个工具 https://github.com/microsoft/Git-Credential-Manager-for-Mac-and-Linux 并通过为普通凭据存储设置一个变量,它会在终端中提示输入凭据。但是我用的是2FA,因为组织要求,提示只要求输入用户名和密码,所以认证失败。
所以我必须联系正在使用 Mac 的朋友。他能够 go get
影响 go.mod
的依赖项,进行提交并推送更改,以便我可以拉取它并从那里继续。但这当然不理想,他没有任何问题,他使用 osxkeychain 来管理他的 git 凭据。
有人遇到过这个问题吗?或者知道如何解决?非常感谢您。
Go 无法理解某些模块是私有的,它们的校验和不应根据 Go 的校验和库进行验证。下面的错误来自那个
verifying module: <remote github repo>@v0.0.17-0.20200501212733-681dceefc812/go.mod: reading https://sum.golang.org/lookup/<remote github repo>@v0.0.17-0.20200501212733-681dceefc812: 410 Gone
如果可能,至少使用 1.13 或更高版本。 Go 引入了名为 GOPRIVATE
、GONOPROXY
和 GONOSUMDB
的环境变量,以更好地管理私有模块。向 Go 发出你正在导入私人仓库的信号的最简单方法是使用 GOPRIVATE
。将私有存储库的模式设置为 GOPRIVATE
env 变量以抑制校验和验证和 GOPROXY
的使用。下面的示例避免了该层次结构中所有回购协议的校验和:
GOPRIVATE=github.com/<your org>/*
查看答案 here and 。您也可以go help module-private
寻求帮助。
我正在 windows 10 上试用 WSL 2,到目前为止一切顺利,但我已经努力了 2 周才能完成这项工作,因为出于某种原因 go get
没有' 使用或无法使 Git 凭据管理器提示输入我的凭据。
我关注此博客以使用 GCM 设置 WSL2 https://www.edwardthomson.com/blog/git_credential_manager_with_windows_subsystem_for_linux.html
而且它非常适合大多数日常任务,例如克隆、读取和写入。但是当使用 go get
我得到这个错误。
go get <remote github repo>@<latest commit id>
go: <remote github repo> 681dceefc81203e094872401c184d038090d6049 => v0.0.17-0.20200501212733-681dceefc812
go get: <remote github repo>@v0.0.17-0.20200501212733-681dceefc812/go.mod: verifying module: <remote github repo>@v0.0.17-0.20200501212733-681dceefc812/go.mod: reading https://sum.golang.org/lookup/<remote github repo>@v0.0.17-0.20200501212733-681dceefc812: 410 Gone
server response:
not found: <remote github repo>@v0.0.17-0.20200501212733-681dceefc812: invalid version: git fetch -f origin refs/heads/*:refs/heads/* refs/tags/*:refs/tags/* in /tmp/gopath/pkg/mod/cache/vcs/232ff028cb2fdebd254e30bfc612843483f0fe3fbeb18d5fc8fb4b20f21c9021: exit status 128:
fatal: could not read Username for 'https://github.com': terminal prompts disabled
已经尝试过 ssh-keys 和此处提出的解决方案
但错误仍然存在,当启用 env GIT_TERMINAL_PROMPT=1
时没有任何反应,我猜这是因为 WSL 2 没有这样做的权限。无论如何,我也尝试了这个工具 https://github.com/microsoft/Git-Credential-Manager-for-Mac-and-Linux 并通过为普通凭据存储设置一个变量,它会在终端中提示输入凭据。但是我用的是2FA,因为组织要求,提示只要求输入用户名和密码,所以认证失败。
所以我必须联系正在使用 Mac 的朋友。他能够 go get
影响 go.mod
的依赖项,进行提交并推送更改,以便我可以拉取它并从那里继续。但这当然不理想,他没有任何问题,他使用 osxkeychain 来管理他的 git 凭据。
有人遇到过这个问题吗?或者知道如何解决?非常感谢您。
Go 无法理解某些模块是私有的,它们的校验和不应根据 Go 的校验和库进行验证。下面的错误来自那个
verifying module: <remote github repo>@v0.0.17-0.20200501212733-681dceefc812/go.mod: reading https://sum.golang.org/lookup/<remote github repo>@v0.0.17-0.20200501212733-681dceefc812: 410 Gone
如果可能,至少使用 1.13 或更高版本。 Go 引入了名为 GOPRIVATE
、GONOPROXY
和 GONOSUMDB
的环境变量,以更好地管理私有模块。向 Go 发出你正在导入私人仓库的信号的最简单方法是使用 GOPRIVATE
。将私有存储库的模式设置为 GOPRIVATE
env 变量以抑制校验和验证和 GOPROXY
的使用。下面的示例避免了该层次结构中所有回购协议的校验和:
GOPRIVATE=github.com/<your org>/*
查看答案 here and go help module-private
寻求帮助。