从 Azure DevOps 存储库导入时,由于缺少 .git,go get private

我正在尝试将私有存储库安装为 golang 模块。


阅读微软博客文章后。我试图在本地进行。


我已经更新了本地 .gitconfig


[url "git@ssh.dev.azure.com:v3/<my org>/"]

  insteadOf = https://dev.azure.com/<my org>/

也导出到我的环境:


export GOPRIVATE=dev.azure.com/<my org>/

存储库包含一个go.mod具有以下标头的文件:


module dev.azure.com/<my-org>/<project>/<repo>


go 1.18

当我尝试通过以下方式安装模块时:


go get -v dev.azure.com/<my-org>/<project>/<repo>.git@develop

它失败了:


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

但是,如果我在最后删除.git它,它会失败:


203非权威信息


导入私有模块的合适方式是什么


芜湖不芜
浏览 64回答 1
1回答

眼眸繁星

删除 .git 是第一步。golang/goissue 41030中提到了 203 错误,它重定向到issue 28236。这包括:如果您是由于与 Azure DevOps 存储库同步的身份验证问题而来到这里go get,例如在构建机器上,那么您可以在文件中设置一个简单的 git 凭据帮助gitconfig程序:例如:[credential&nbsp;"https://dev.azure.com"] &nbsp;&nbsp;&nbsp;helper&nbsp;=&nbsp;"/bin/sh&nbsp;/etc/azure-devops-helper.sh"用类似的azure-devops-helper.sh东西#!/bin/sh echo&nbsp;username=$USERNAME echo&nbsp;password=$AZURE_DEVOPS_TOKEN其中包含用户名和 PAT 的环境变量。事实证明,这比为 azure repos 切换到 SSH 更可靠。并且,对于任何401 Gone错误:需要明确告知GOPRIVATE不要检查dev.azure.com.看来真的仅此而已。
打开App,查看更多内容
随时随地看视频慕课网APP