登录
首页 >  Golang >  Go问答

无法使用 bitbucket 进行 GO mod tidy 的原因是什么?

来源:stackoverflow

时间:2024-02-13 23:45:20 135浏览 收藏

小伙伴们有没有觉得学习Golang很有意思?有意思就对了!今天就给大家带来《无法使用 bitbucket 进行 GO mod tidy 的原因是什么?》,以下内容将会涉及到,若是在学习中对其中部分知识点有疑问,或许看了本文就能帮到你!

问题内容

我正在尝试使用私有存储库作为 go 库。

每当我尝试运行 go get og god mod tidy 时,我都会收到这种错误

>go get bitbucket.org/myworkspace/myRepo
go get bitbucket.org/myworkspace/myRepo: reading https://api.bitbucket.org/2.0/repositories/myworkspace/myRepo?fields=scm: 404 Not Found

我发现了多个建议来解决这个问题,使用 git config 而不是 url reqriting,但它不起作用,而且这一切似乎都假设 go 将通过 git 克隆库存储库,而不是 api。 p>

我运行 linux 的同事尝试了这一点,并且成功了,并且它似乎从未使用 api.bitbucket.org 而不仅仅是 bitbucket.org。

我尝试使用凭据通过 insomnia 调用 https://api.bitbucket.org/2.0/repositories/myworkspace/myrepo?fields=scm,并且我很好地得到了存储库。

为什么 go 在 windows 上使用 bitbucket api,我如何让它使用凭据,以便它可以找到存储库?


正确答案


这是由于 change made by Bitbucket(从 2022 年 6 月 1 日起推出)所致:

推出这些更改将破坏 Go 的早期版本,因为 go 命令依赖于 403 响应来获取 Bitbucket Cloud 上托管的存储库。这意味着使用带有私有存储库的旧版 Go 的用户(例如带有 Go 依赖项的 CI/CD 构建)将遇到 404 错误。

Go 已更新以支持这些更改;版本 1.18 包含更改,但如果您运行的是早期版本,则可能需要升级到更高的次要修订版(更改位于 1.17.71.16.14 中)。相关的 Go 问题 is here(更改的目的有所不同,但它解决了问题)。

为什么 go 在 Windows 上使用 bitbucket api...

Go 使用 API 来确定 Bitbucket 存储库使用的是 Git 还是 Mercurial(Bitbucket 为 dropping support for Mercurial)。

正如评论中提到的,我发现新的 Git Credential Manager 消除了以前访问私有 Bitbuicket 存储库所需的解决方法。只需使用凭证管理器并设置 GOPRIVATE 即可。

您可以首先使用命令 export GOPRIVATE= 导出私有存储库。然后,您可以运行命令 env GIT_TERMINAL_PROMPT=1 go get ,这样,如果未配置凭据,您会收到提示。

终于介绍完啦!小伙伴们,这篇关于《无法使用 bitbucket 进行 GO mod tidy 的原因是什么?》的介绍应该让你收获多多了吧!欢迎大家收藏或分享给更多需要学习的朋友吧~golang学习网公众号也会发布Golang相关知识,快来关注吧!

声明:本文转载于:stackoverflow 如有侵犯,请联系study_golang@163.com删除
相关阅读
更多>
最新阅读
更多>
课程推荐
更多>