git - 尝试在 CircleCI 上获取 golang 私有(private)依赖项时的问题

标签 git go circleci circleci-2.0

我使用 CircleCI 作为我的工具来构建我的图像以在 Kubernetes 上发布。
我的项目正在使用 Golang,我正在使用 Go Modules。
事实证明,在检查我的代码后,我遇到了问题,步骤 go get -v -t -d ./...运行。
在某些时候,对于某些依赖项(这是我公司的内部依赖项,它们在我公司的 github 项目下),我收​​到 unknown revision信息。
我已经配置了机器帐户,因为我有自己的 github 帐户集。
我试图添加以下几行

- run: echo -e "Host github.com\n\tStrictHostKeyChecking no\n" > ~/.ssh/config
- run: cp key ~/.ssh/id_rsa
- run: git config --global url."ssh://git@github.com".insteadOf "https://github.com" || true
- run: git config --global gc.auto 0 || true
- run: go get -v -t -d ./...
命令cp key ~/.ssh/id_rsa复制 ssh key它可以访问 github 项目,我可以在本地使用它来执行上述相同的步骤。
任何帮助都会非常受欢迎,因为我已经在互联网上阅读了大量的文档/评论,但似乎没有任何效果。
谢谢。

最佳答案

回答我自己的问题:

  • Github 阻止用户获取 go get私有(private)存储库,即使正在运行的用户是所有者(在 docker 上 - 因为 circleCI 使用 docker 容器来运行构建)
  • 为了克服这个问题,我生成了一个开发者 token :https://github.com/settings/tokens
  • 并使用 token 允许访问私有(private)存储库:git config --global url."https://<my-dev-token>:x-oauth-basic@github.com/<company-slug>".insteadOf "https://github.com/<company-slug>" || true

  • 我已经测试了其他解决方案,但这是唯一一个运行良好的解决方案。

    关于git - 尝试在 CircleCI 上获取 golang 私有(private)依赖项时的问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64062977/

    相关文章:

    git - 是否有与 git archive 相反的命令用于导入 zip 文件

    go - 如何在Gin的url中添加语言前缀?

    json - 解码复杂的 Json

    http - golang : core net/http package import errors

    python - 没有进度条的 pip 安装

    node.js - 语义发布无法发布到 npm

    git - 了解 Git 和 GitHub 的基础知识

    c++ - git 冲突解决文件并不总是代表源文件中的每一行吗?

    git - 如何将 gerrit 更改 ID 添加到较旧的提交?

    reactjs - 使用 React 在 CircleCI 上的 dotenv-expand 中“超出了最大调用堆栈大小”