如何将 Go dep 与 GitLab 子组一起使用
How to use Go dep with GitLab subgroups
我有一个 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
我认为最好的解决方案是使用像 athens 这样的 proxy-server。您可以添加 Gitlab-Credentials 并将其用作 proxy-server。然后雅典将处理身份验证。
此问题在 GitLab support tracker 上进行了详细讨论。
TL;DR;这是(故意)broken for private repos:
Is [your group] private? If so, this is expected behavior, and I would recommend reading the discussion from #1337 (comment 36293613) onwards. In this case, we have decided to maximize security/privacy at the slight expense of usability. The recommended workaround is to specifically add .git to your URL.
我找到的唯一解决方案是使用 go get
's support for .netrc
,它解决了 dep
以及现代 Go 模块的问题。
在 api 范围内在 GitLab 上创建个人访问令牌:
创建一个~/.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.com///
如果您使用的是私有 GitLab 安装,我相信您会在适用的情况下将 gitlab.com
替换为适当的主机名。
我有一个 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
我认为最好的解决方案是使用像 athens 这样的 proxy-server。您可以添加 Gitlab-Credentials 并将其用作 proxy-server。然后雅典将处理身份验证。
此问题在 GitLab support tracker 上进行了详细讨论。
TL;DR;这是(故意)broken for private repos:
Is [your group] private? If so, this is expected behavior, and I would recommend reading the discussion from #1337 (comment 36293613) onwards. In this case, we have decided to maximize security/privacy at the slight expense of usability. The recommended workaround is to specifically add .git to your URL.
我找到的唯一解决方案是使用 go get
's support for .netrc
,它解决了 dep
以及现代 Go 模块的问题。
在 api 范围内在 GitLab 上创建个人访问令牌:
创建一个
~/.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.com///
如果您使用的是私有 GitLab 安装,我相信您会在适用的情况下将 gitlab.com
替换为适当的主机名。