我正在尝试将私有存储库安装为 golang 模块。
阅读微软博客文章后。我已经尝试在本地进行此操作。
我已经更新了本地 .gitconfig
[url "git@ssh.dev.azure.com:v3/<my org>/"]
insteadOf = https://dev.azure.com/<my org>/
Run Code Online (Sandbox Code Playgroud)
还导出到我的环境:
export GOPRIVATE=dev.azure.com/<my org>/
Run Code Online (Sandbox Code Playgroud)
存储库包含一个go.mod具有以下标头的文件:
module dev.azure.com/<my-org>/<project>/<repo>
go 1.18
Run Code Online (Sandbox Code Playgroud)
当我尝试通过以下方式安装模块时:
go get -v dev.azure.com/<my-org>/<project>/<repo>.git@develop
Run Code Online (Sandbox Code Playgroud)
它失败了:
go: dev.azure.com/<my-org>/<project>/<repo>.git@v0.0.0-20220827174211-d4e6ad2f92b0: parsing go.mod:
module declares its path as: dev.azure.com/<my-org>/<project>/<repo>
but was required as: dev.azure.com/<my-org>/<project>/<repo>.git
Run Code Online (Sandbox Code Playgroud)
.git但是,如果我最后删除它,则会失败:
203 非权威信息
导入私有模块的正确方法是什么
删除 .git 是第一步。
golang/go问题 41030中提到了 203 错误,该问题重定向到问题 28236。
这包括:
如果您在这里是由于身份验证问题而与 Azure DevOps 存储库同步
go get,例如在构建计算机上,那么您可以在gitconfig文件中设置一个简单的 git 凭据帮助程序:例如:Run Code Online (Sandbox Code Playgroud)[credential "https://dev.azure.com"] helper = "/bin/sh /etc/azure-devops-helper.sh"与
azure-devops-helper.sh类似的东西Run Code Online (Sandbox Code Playgroud)[credential "https://dev.azure.com"] helper = "/bin/sh /etc/azure-devops-helper.sh"其中环境变量包含所采用的用户名和 PAT。
事实证明,这对我们来说比切换到 Azure 存储库的 SSH 更可靠。
并且,对于任何401 Gone错误:
需要明确告诉
GOPRIVATE不要检查 的校验和dev.azure.com。看来真的只是这样了。