当工作名称包含“ plink”时,Jenkins Git插件会失败?

问题描述 投票:2回答:1

出于某种原因,我在詹金斯(Jenkins)中使用复杂的作业名称,并直接从作业名称中解析一些作业参数。虽然职位名称有时会变得冗长,但过去的效果很好。所有作业都通过一些脚本获取回购,这些脚本将通过GitHub的Jenkins Git插件执行。使用私钥,该私钥作为凭据存储在Jenkins中。

Jenkins实例是v2.7.4,在Linux上运行(因此PuTTY的plink很远),Git插件是v3.3.0,而git是v1.7.1。我不允许升级或降级。

但是,当作业名称中包含单词plink(不区分大小写)时,作业将像这样失败:

> git fetch --tags --progress git@github.___/___.git +refs/heads/*:refs/remotes/origin/*
ERROR: Error fetching remote repo 'origin'
hudson.plugins.git.GitException: Failed to fetch from git@github.___/___.git
   at hudson.plugins.git.GitSCM.fetchFrom(GitSCM.java:809)
   ...
   at hudson.model.Executor.run(Executor.java:410)
Caused by: hudson.plugins.git.GitException: Command "git fetch --tags --progress git@github.___/___.git +refs/heads/*:refs/remotes/origin/*" returned status code 128:
stdout: 
stderr: getaddrinfo: atch: Name or service not known
ssh: connect to host github.___ port 22: Success
fatal: The remote end hung up unexpectedly

[不幸的是,工作名称每个都包含电子邮件地址的名称部分。直到最近,我们的开发人员的名字和电子邮件都带有字符串plink,因此他们的工作总是失败。由于工作原因,我目前无法对名称解析进行重新处理,因此问题是:

鉴于我需要作业名称中的字符串plink,以及带有ssh键的git fetch,如何解决此问题?

git jenkins plink
1个回答
0
投票

Jenkins git插件不支持命令行git 1.7.1(包含在CentOS 6中)。在某些情况下,它可以工作,但是官方上不提供支持。这是它不起作用的情况之一。

命令行git 1.8(默认包含在CentOS 7,Red Hat Enterprise Linux 7,Oracle Linux 7和Scientific Linux 7中)具有相同的问题。有关更多详细信息,请参见JENKINS-62534

替代品包括:

  • 您的Jenkins实例中的[Enable JGit,并将作业配置为使用JGit代替CLI git
  • 安装命令行git的较新版本。已知命令行git 2.7及更高版本没有此问题。命令行git 2.0及更高版本可能没有问题
  • 使用http或https而不是ssh协议克隆存储库
© www.soinside.com 2019 - 2024. All rights reserved.