如何在GitLab子组中使用go get或go dep

rqqzpn5f  于 9个月前  发布在  Go
关注(0)|答案(2)|浏览(91)

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

字符串

68de4m5k

68de4m5k1#

这个问题在GitLab support tracker上有详细讨论。
TL;DR;它(故意)为私人回购而损坏:
你的私生活是怎样的呢?如果是这样的话,这是预期的行为,我建议阅读从#1337(comment 36293613)开始的讨论。在这种情况下,我们决定以牺牲可用性为代价来最大化安全/隐私。推荐的解决方案是专门将.git添加到您的URL中。
我找到的唯一解决方案是使用go get.netrc的支持,这解决了dep和现代Go模块的问题。
1.在GitLab上创建个人访问令牌,API作用域:x1c 0d1x
1.创建~/.netrc文件:

machine gitlab.com
     login <your gitlab username>
     password <the token created in step 1>

字符串
1.保护您的.netrc文件一点:

chmod 600 ~/.netrc


1.利润
现在应该可以了:

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


go get gitlab.com/<company>/<subgroup>/<project>


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

ckocjqey

ckocjqey2#

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

相关问题