我正在嘗試將私有存盤庫用作 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 克隆庫 repo,而不是 api。
我正在運行 Linux 的同事嘗試了這個并且它成功了,而且它似乎從來沒有使用 api.bitbucket.org 而不僅僅是 bitbucket.org。
我已經嘗試通過 Insomnia 呼叫https://api.bitbucket.org/2.0/repositories/myworkspace/myRepo?fields=scm并使用憑據,并且我可以很好地恢復存盤庫。
為什么要在 Windows 上使用 bitbucket api,我怎樣才能讓它使用憑據,以便它可以找到 repo?
uj5u.com熱心網友回復:
這是由于Bitbucket 所做的更改(從 2022 年 6 月 1 日開始推出):
由于 go 命令依賴 403 回應來獲取托管在 Bitbucket Cloud 上的存盤庫,因此推出這些更改將破壞以前的 Go 版本。這意味著使用帶有私有存盤庫的舊版本 Go 的用戶,例如帶有 Go 依賴項的 CI/CD 構建,將遇到 404 錯誤。
Go 已更新以支持這些更改;版本 1.18 包含更改,但如果您運行的是較早版本,則可能需要升級到較晚的次要版本(更改在1.17.7和中1.16.14)。相關的 Go 問題在這里(更改的目的有所不同,但它解決了問題)。
為什么要在windows上使用bitbucket api...
Go 使用 API 來確定 Bitbucket 存盤庫是使用 Git 還是 Mercurial(Bitbucket 正在放棄對 Mercurial 的支持)。
正如評論中提到的,我發現新的Git 憑證管理器消除了以前訪問私有 Bitbuicket 存盤庫所需的變通方法的需要。只需要使用憑證管理器和設定GOPRIVATE..
uj5u.com熱心網友回復:
您可以先使用命令匯出私有存盤庫export GOPRIVATE=<remote module name>。然后,您可以運行該命令env GIT_TERMINAL_PROMPT=1 go get <remote module name>,以便在未配置憑據時收到提示。
轉載請註明出處,本文鏈接:https://www.uj5u.com/yidong/493501.html
上一篇:如何使用Go的net/http檢查POST表單中是否存在值?
下一篇:處理網路資料包讀取超時后的錯誤
