我有一个 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 支持跟踪器上进行了详细讨论。
TL;博士; 它(故意)被私人回购打破:
[您的小组] 是私人的吗?如果是这样,这是预期的行为,我建议从#1337(评论 36293613)开始阅读讨论。在这种情况下,我们决定以牺牲可用性为代价来最大限度地提高安全性/隐私性。推荐的解决方法是专门将 .git 添加到您的 URL。
我找到的唯一解决方案是使用go get
's support for.netrc
,它解决了 fordep
以及现代 Go 模块的问题。
创建一个~/.netrc
文件:
machine gitlab.com
login <your gitlab username>
password <the token created in step 1>
.netrc
稍微保护您的文件:
chmod 600 ~/.netrc
利润
现在应该可以工作了:
dep ensure -add gitlab.com/<company>/<subgroup>/<project>
如果您使用的是私有 GitLab 安装,我相信您会gitlab.com
在适用的情况下替换为适当的主机名。
我认为最好的解决方案是使用像athens这样的代理服务器。您可以添加您的 Gitlab-Credentials 并将其用作代理服务器。然后雅典将处理身份验证。