登录
首页 >  Golang >  Go问答

如何将 go get 或 go dep 与 GitLab 子组一起使用

来源:stackoverflow

时间:2024-04-15 08:45:35 303浏览 收藏

本篇文章主要是结合我之前面试的各种经历和实战开发中遇到的问题解决经验整理的,希望这篇《如何将 go get 或 go dep 与 GitLab 子组一起使用》对你有很大帮助!欢迎收藏,分享给更多的需要的朋友学习~

问题内容

我有一个 go 项目,需要来自私有 gitlab 存储库(例如 git.mydomain.com/myteam/category/subcategory/project.git)的一些依赖项。 但我收到此错误。

ensure Solve(): remote repository at https://git.mydomain.com/myteam/category.git does not exist or is inaccessible: : exit status 128

解决方案


这个问题在 GitLab support tracker 上进行了详细讨论。

tl;博士; (故意)broken for private repos

[您的群组]是私人群组吗?如果是这样,这是预期的行为,我建议阅读 #1337 (comment 36293613) 以后的讨论。在这种情况下,我们决定以牺牲可用性为代价来最大限度地提高安全性/隐私性。建议的解决方法是专门将 .git 添加到您的 url。

我发现的唯一解决方案是使用 go get's support for .netrc,它可以解决 dep 以及现代 go 模块的问题。

  1. 在 gitlab 上创建具有 api 范围的个人访问令牌:

  2. 创建 ~/.netrc 文件:

    machine gitlab.com
         login 
         password 
  3. 稍微保护一下您的 .netrc 文件:

    chmod 600 ~/.netrc
  4. 利润

现在应该可以工作了:

dep ensure -add gitlab.com///

go get gitlab.com///

如果您使用的是私有 gitlab 安装,我相信您可以在适用的情况下将 gitlab.com 替换为适当的主机名。

我认为最好的解决方案是使用像 athens 这样的代理服务器.您可以添加 gitlab-credentials 并将其用作代理服务器。然后雅典将处理身份验证。

以上就是本文的全部内容了,是否有顺利帮助你解决问题?若是能给你带来学习上的帮助,请大家多多支持golang学习网!更多关于Golang的相关知识,也可关注golang学习网公众号。

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