一切正常,直到我添加了一个私有存储库的依赖项。我注意到自动完成功能停止工作,并且 vscode 有一个错误通知:Error loading workspace: err: exit status 1: stderr: go:bitbucket.org/my-group/my-private-repo@v0.0.0-20210512194559-2c29669c4ecc: reading https://api.bitbucket.org/2.0/repositories/my-group/my-private-repo?fields=scm: 403 Forbidden server response: Access denied. You must have write or admin access. go: bitbucket.org/my-group/my-private-repo@v0.0.0-20210512194559-2c29669c4ecc: reading https://api.bitbucket.org/2.0/repositories/my-group/my-private-repo?fields=scm: 403 Forbidden server response: Access denied. You must have write or admin access. : packages.Load error似乎 go 扩展正在尝试访问我的私人仓库:为什么这对于代码竞争能够起作用是必要的?如果有必要,如何将我的 SSH 密钥提供给 go 扩展?其他解决方法?
1 回答
一只斗牛犬
TA贡献1784条经验 获得超2个赞
它会尝试获取您的依赖项的来源,以便为您生成实际的建议。它想要加载源 go 模块样式,我猜你的依赖项位于 GOPATH 中。您希望它能够优雅地处理连接错误,并且仍然为它可以访问的代码提供补全,所以这可能是一个错误,考虑在 github 上创建一个问题(我不知道是哪个项目)。
在这种情况下,通过执行以下修复,您也可以将 go mod 用于私有依赖项,而不必以“旧式”方式手动管理依赖项。Go 模块默认使用 Git,您可以通过将以下内容添加到全局 git 配置文件来指示 git 始终使用 SSH 而不是 HTTPS:
[url "git@bitbucket.org:"] insteadOf = https://bitbucket.org/
假设您不需要任何特殊配置来进行普通的 git over ssh 操作,则应该自动使用您的私钥。
Go 模块支持通过供应商目录包含依赖项。如果您将依赖项放在那里,代码完成应该使用它而不是尝试下载它。但我无法确认这一点,从未尝试过
- 1 回答
- 0 关注
- 97 浏览
添加回答
举报
0/150
提交
取消