10

在有人开枪打倒我之前..我已经查看了所有有此错误的消息,但它们似乎来自不同的问题,我无法获得任何实质性信息。以下是我在 git 轮询日志中遇到的错误...

  1. 我没有关于错误 #1 的线索,请提供输入

  2. 为此,我阅读了其他问题,当有 gerrit 触发器时,$GERRIT_REFSPEC 会动态填写,但我不明白为什么我一直在 git poll 日志中看到这个。我怎样才能解决这个问题 ?


错误信息:

  1. 错误:从原点/原点获取问题 - 可能不可用。无论如何继续

  2. hudson.plugins.git.GitException:命令“/usr/bin/git fetch -t ssh://company.com:29418/platform/vendor/proprietary/mla.git $GERRIT_REFSPEC”返回状态码 128:stdout:stderr:致命:找不到远程参考 $GERRIT_REFSPEC

4

4 回答 4

14
  • 转到 Job 的 Configure 页面并搜索以选中This build is parameterized框。
  • 然后将Name设置为GERRIT_REFSPEC
  • 默认值refs /heads/master

我花了一些时间搜索如何添加 Gerrit Trigger 插件手册中提到的这个字符串参数。我将 Jenkins 1.567 与 Gerrit Trigger 2.11.1 一起使用。

于 2014-06-12T12:15:16.167 回答
7

截至 2016 年 5 月,此错误可能是Jenkins 2.3 或 1.651.2 中引入的 SECURITY-170 修复的结果。

来自维基

在 2016 年 5 月的安全公告中,宣布了一个漏洞 (SECURITY-170 / CVE-2016-3721),攻击者可以利用该漏洞利用某些 Jenkins 插件允许定义任意构建参数的事实——这些参数又被注入构建环境.

这个问题的修复——最初包含在 Jenkins 版本 1.651.2 和 Jenkins 2.3 中——意味着只有在作业配置中明确定义的构建参数才会在构建时默认可用。默认情况下,插件添加到构建中的任何其他任意参数都将不可用。

由于有许多插件依赖于旧 Jenkins 版本中的行为,升级到 1.651.2 或 2.3 意味着某些构建行为可能会被破坏。

Gerrit Trigger 是受影响的插件之一。您应该注意更新的问题在这里

但是请注意,如果您只从 Gerrit 构建一个分支,Rado 的GERRIT_REFSPEC在构建配置中手动定义参数的解决方案可以暂时解决此问题。


通过将以下 JAVA_ARGS 添加到 ubuntu 上的 /etc/default/jenkins 可以找到一种解决方法

JAVA_ARGS="$JAVA_ARGS -Dhudson.model.ParametersAction.keepUndefinedParameters=true"

您还可以添加应该允许哪些变量

JAVA_ARGS="$JAVA_ARGS -Dhudson.model.ParametersAction.safeParameters=GERRIT_REFSPEC,GERRIT_BRANCH
于 2016-05-15T16:11:50.027 回答
2

看起来您手动运行了 Jenkins Gerrit Trigger 构建?触发页面说,

Using "Build Now"
[..]
Add a String parameter called GERRIT_REFSPEC with the default value refs/heads/master

https://wiki.jenkins-ci.org/display/JENKINS/Gerrit+Trigger

于 2013-02-22T22:24:58.053 回答
-3

解决此问题后,如果Jenkins仍未拉取最新的代码提交(未合并),则需要添加附加行为->选择构建内容的策略-> Gerrit 触发器

参考:感谢Fabian

在此处输入图像描述

于 2016-11-16T12:19:58.917 回答