当前位置: 首页 > 面试题库 >

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

梁韬
2023-03-14
问题内容

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"

有办法让它工作吗?


问题答案:

现在,此问题已在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


 类似资料:
  • 问题内容: Jenkins中建立一个托管在bitbucket上的项目时,我将在URL字段中输入什么? 该存储库是私有的。 问题答案: 我对Jenkins并不熟悉,但是Bitbucket允许您通过https克隆git存储库,https可以接受密码作为url的一部分,如下所示:

  • 因此,我在gitlab上有一个项目test-project(https://gitlab.com/group/test-project),这是一个我使用gitlab管道构建和部署的java应用程序。在构建阶段,我正在执行,包test-project.jar被推送到gitlab maven存储库(https://gitlab.com/group/test-project/-/packages)。 现

  • 我有一个名为UserRepository的通用存储库接口。然后我有一个接口,它从MyUserRepository扩展而来。它处理一个MyUser类,该类扩展了User。 我还有一个名为UserService的服务接口和一个名为MyUserServiceImpl的类。 该服务需要UserRepository的实例,我虽然可以使用某种注释,如@Qualifer,但它不起作用。 应用程序无法启动 说明:

  • 在java构建期间,我如何在azure管道中访问Gitlab的私有maven存储库,该管道依赖于Gitlab repo中的jar文件?

  • 我刚刚安装了(而不是更新)GitHub for Windows2.0,而且一辈子我都找不到如何在非GitHub存储库中使用它。在过去,我使用本指南没有任何问题。然而,在2.0版本中,布局发生了变化,我无法找到一个UI来克隆不是来自GitHub的回购。我想我必须使用命令行,但我不知道如何以这种方式使用git。

  • 问题内容: 我在GitLab服务器上有一个专用存储库,使用SSH可以使用git clone拉出一个项目。 但是我想直接从服务器上在Linux命令行上运行脚本(更具体地说,是Drupal / Drush .make文件) 我尝试使用原始文件运行它: (为了方便非Drupal用户,我们可以说) 没有成功。当然,它会返回登录页面。 可能吗? 问题答案: 在Chris的宝贵帮助下,您可以通过以下方法从Gi