小编典典

如何将Go与私有的GitLab存储库一起使用

go

GitLab是一种免费的开放源代码方式,用于托管私有.git存储库,但它似乎不适用于Go。创建项目时,它将生成以下形式的URL:

git@1.2.3.4:private-developers/project.git

哪里:

  • 1.2.3.4 是gitlab服务器的IP地址
  • private-developers 是有权访问私有存储库的用户组

Golang 1.2.1似乎不了解这种语法。

go get git@1.2.3.4:private-developers/project.git

结果是:

package git@23.251.148.129/project.git: unrecognized import path "git@1.2.3.4/project.git"

有办法让它工作吗?


阅读 297

收藏
2020-07-02

共1个答案

小编典典

现在,此问题已在Gitlab 8. *中解决,但仍然不直观。确实,最困难的挑战是go get,以下步骤将使您克服这些挑战:

  1. 创建SSH密钥对。确保不要覆盖默认情况下保存在中的现有对~/.ssh/

    ssh-keygen -t rsa -b 4096
    
  2. 在您的Gitlab项目中创建一个新的 Secret变量 。使用SSH_PRIVATE_KEY作为 重点 和您的内容 私有 密钥

  3. 用修改您.gitlab-ci.ymlbefore_script

        before_script:
      # install ssh-agent if not already installed
      - 'which ssh-agent || ( apt-get update -y && apt-get install openssh-client -y )'
      # run ssh-agent
      - eval $(ssh-agent -s)
      # add the SSH key stored in SSH_PRIVATE_KEY
      - ssh-add <(echo "$SSH_PRIVATE_KEY")
      # for Docker builds disable host key checking
      - mkdir -p ~/.ssh
      - '[[ -f /.dockerenv ]] && echo -e "Host *\n\tStrictHostKeyChecking no\n\n" > ~/.ssh/config'
  1. 加入 大众 在步骤1中创建的密钥对关键 部署的关键 在你需要的项目go get
2020-07-02