如何将Go Dep与GitLab子组一起使用

时间:2019-06-29 12:39:37

标签: go gitlab godeps

我有一个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

如果有人能帮助我解决这个问题,我将非常感谢。

谢谢。

2 个答案:

答案 0 :(得分:0)

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

TL; DR; (故意)是broken for private repos

  

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

我发现的唯一解决方案是使用dep's support for .netrc

  1. 在具有 api 范围的GitLab上创建个人访问令牌: enter image description here

  2. 创建一个~/.netrc文件:

    machine gitlab.com
        login <your gitlab username>
        password <the token created in step 1>
    
  3. 稍微保护您的.netrc文件:

    chmod 600 ~/.netrc
    
  4. 利润

    这现在应该可以工作:

    dep ensure -add gitlab.com/<company>/<subgroup>/<project>
    

如果您使用的是私人GitLab安装,我相信您会在适用的情况下用适当的主机名替换gitlab.com

答案 1 :(得分:-1)

我认为最好的解决方案是使用athens之类的代理服务器。您可以添加Gitlab凭据并将其用作代理服务器。然后,雅典将处理身份验证。