1

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

2 回答 2

4

这个问题在GitLab 支持跟踪器上进行了详细讨论。

TL;博士; 它(故意)被私人回购打破

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

我找到的唯一解决方案是使用go get's support for.netrc,它解决了 fordep以及现代 Go 模块的问题。

  1. 使用api范围 在 GitLab 上创建个人访问令牌:在此处输入图像描述

  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在适用的情况下替换为适当的主机名。

于 2019-07-18T17:08:34.940 回答
0

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

于 2019-06-30T06:21:00.543 回答