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

在Jenkins中配置GitLab存储库

苏季同
2023-03-14
问题内容

我正在尝试配置Jenkins(在Windows Server2008上运行)以连接到GitLab6.0存储库(在Linux机器上)。

在本地窗口框中,我可以使用SSH URL在GitLab服务器上克隆项目。我在使用HTTP
URL时遇到了一些问题,但是我确实设法使用Eclipse插件通过HTTP与身份验证进行连接。

  • 在Jenkins项目配置屏幕上,我尝试过:

http://myserver.domain/mygroup/myproject.git

无法连接到存储库:

命令“ d:\ tools \ Git \ bin \ git.exe ls-remote -h
http://myserver.domain/mygroup/myproject.git
HEAD”

返回状态码128:

stdout:stderr:错误:访问时请求的URL返回错误:504

http://myserver.domain/mygroup/myproject.git/info/refs?service = git-
upload-
pack

致命:HTTP请求失败

当我在浏览器中尝试此URL时,会出现一个身份验证弹出窗口。如果输入我的电子邮件和密码,则可以成功下载分支机构和标签列表。

  • …好吧,所以我应该能够在URL中指定用户名和密码,对吗?

http://
username:password@myserver.domain/mygroup/myproject.git

…不:

http://
username:password@myserver.domain/mygroup/myproject.git/info/refs无效:这是git存储库吗?

  • Windows GUI使用SSH没有任何问题。
    …詹金斯似乎并不那么喜欢:

git@myserver.domain:mygroup / myproject.git

错误“请输入Git存储库”仍然存在,当我尝试保存配置时,我看到以下堆栈跟踪:

    Exception: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.git.GitSCM from 
{"value":"2",
 "userRemoteConfigs":     
   {"url":"git@myserver.domain:mygroup/myproject.git",
    "name":"origin","refspec":""
   },
 "branches":{"name":""},
 "includedRegions":"","excludedRegions":"","excludedUsers":"",
 "localBranch":"","relativeTargetDir":"","reference":"",
 "scmName":"",
 "gitConfigName":"","gitConfigEmail":"",
 "pruneBranches":false,"skipTag":false,"clean":false,"remotePoll":false,
 "disableSubmodules":false,"recursiveSubmodules":false,
 "authorOrCommitter":false,"wipeOutWorkspace":false,"ignoreNotifyCommit":false,
 "useShallowClone":false,"":["","0"],
 "gitTool":"Default",
 "browser":{"stapler- class":"hudson.plugins.git.browser.FisheyeGitRepositoryBrowser"}

Stacktrace:
javax.servlet.ServletException: 
java.lang.RuntimeException: Failed to instantiate class hudson.plugins.git.GitSCM from {...}
at org.kohsuke.stapler.Stapler.tryInvoke(Stapler.java:725)
...
Caused by: java.lang.RuntimeException: Failed to instantiate class hudson.plugins.git.GitSCM from {...}
  at hudson.model.Descriptor.newInstance(Descriptor.java:617)
  ...
Caused by: java.lang.NullPointerException
  at hudson.scm.RepositoryBrowser.normalizeToEndWithSlash(RepositoryBrowser.java:85)
  at hudson.plugins.git.browser.FisheyeGitRepositoryBrowser.<init>(FisheyeGitRepositoryBrowser.java:37)
  • 我尝试添加“ ssh”协议

ssh://git@myserver.domain:mygroup / myproject.git

詹金斯立即做出反应:

stderr:ssh:myserver.domain:mygroup:没有与名称关联的地址

致命:无法从远程存储库读取。

请确保您具有正确的访问权限,并且存储库存在。


问题答案:

正如我评论:

也许Jenkins不支持scp语法(带有’ :‘)

 ssh://git@myserver.domain/mygroup/myproject.git

如“ 使用Amazonec2和git的.ssh配置中所提到的”,使用’:‘通常涉及一个’ ~/.ssh/config file,它将’:’之前的字符串解析为服务器,用户,端口和ssh密钥。

詹金斯可能会更好地理解git@myserver.domain/mygroup/myproject.git,而不是git@myserver.domain:mygroup/myproject.git



 类似资料:
  • 应用的源码是通过jenkins 从git 服务器上拉取到jenkins服务器上进行编译,所以我们需要让jenkins服务有对git服务的访问权限。 以下是介绍如何让jenkins有对gitlab和github的访问权限配置。 gitlab配置 登陆jenkins服务器 进入 cd ~/.ssh/ 找到 cat id_rsa.pub 如果没有请执行以下命令生成: $ ssh-keygen -o -t

  • 问题内容: 我正在尝试将非默认URL设置为安装Jenkins的木偶脚本的一部分。我知道如何通过Web UI编辑值,但似乎找不到实际存储值的位置。我已经浏览了jenkins_home文件夹和apache,但尚未找到它。 问题答案: 它将其存储在一个不太可能的位置:在Jenkins主文件夹中。

  • 问题内容: 在“配置Jenkins服务器”部分中在此处指定的服务器。 问题答案: 简而言之: 这是不带的Your GitLab API端点。如果要使用Webhooks或GitLab OAuth插件, 它是非常重要的字段。

  • 问题内容: 您如何与源代码一起在SCM中维护Jenkins作业配置? 随着源代码的发展,作业配置也随之发展。能够将作业配置保留在SCM中是理想的,因为有以下好处: 易于查看谁的更改历史记录,包括作者和描述 能够通过检出修订版本来重建旧的分支/标记并构建正常的工作 无需滚动UI来找到合适的部分并进行更改 我看到有一个Jenkins Job Builder插件。我更喜欢按照Travis CI的解决方案

  • 在本章中,我们将讨论如何从一个Bitbucket导入一个仓库到GitLab: 步骤(1): 登录到您的GitLab帐户并点击仪表板中的New project按钮: 步骤(2): 单击导入项目选项卡下的按钮: 步骤(3): 接下来,您需要登录到您的帐户。 如果您没有帐户,请点击注册链接创建一个新帐户,然后登录到帐户。 步骤(4): 当点击按钮(如步骤2所示)时,它将显示下面的屏幕并点击授予访问按钮:

  • 主要内容:锁定一个特定的Runner,受保护的Runner,运行未标记的作业GitLab runner是一个构建实例,用于在多台机器上运行作业,并将结果发送到GitLab,并可将其放置在单独的用户,服务器和本地计算机上。 安装后,您可以将runner注册为共享或特定的。 “GitLab安装”一章介绍了runner的安装。 您可以通过使用特定或共享runner来为作业提供服务。 共享runner 这些runner对于多个具有相似要求的项目很有用。 您可以使用单个或少量Run