簡體   English   中英

stderr:致命:無法找到遠程ref $ GERRIT_REFSPEC

[英]stderr: fatal: Couldn't find remote ref $GERRIT_REFSPEC

在有人把我打倒之前..我已經看過所有有這個錯誤的消息,但是他們似乎從一個不同的問題中表現出來,我無法得到任何實質性的信息。 以下是我在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:致命:無法找到遠程ref $ GERRIT_REFSPEC

  • 轉到“作業的配置”頁面並搜索以選中“ 此構建是否已參數化”框。
  • 然后將Name設置為GERRIT_REFSPEC
  • refs / heads / master的 默認值

我花了一些時間來搜索如何添加Gerrit Trigger插件手冊中提到的這個字符串參數。 我使用Jenkins 1.567和Gerrit Trigger 2.11.1。

截至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參數,可以暫時解決此問題。


通過在ubuntu上將以下JAVA_ARGS添加到/ etc / default / jenkins,可以獲得解決方法

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

您還可以添加允許的變量

JAVA_ARGS="$JAVA_ARGS -Dhudson.model.ParametersAction.safeParameters=GERRIT_REFSPEC,GERRIT_BRANCH

看起來你手動運行了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

解決了這個問題后,如果Jenkins還沒有提取最新的代碼提交(未合並),那么需要添加額外的行為 - > 策略來選擇要構建的內容 - > Gerrit Trigger

參考: 感謝Fabian

在此輸入圖像描述

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM