簡體   English   中英

Jenkins Gerrit-Trigger在成功運行作業后未報告+1

[英]Jenkins Gerrit-Trigger not reporting +1 verified after successful job run

我目前正嘗試使用Jenkins Gerrit-Trigger發出“+1 Verified”,但有些原因是+1失敗了。

由於插件能夠成功地向相關的Gerrit變更集發出“-1 Verified”和“Build Started”注釋,因此權限似乎是有序的。

當工作成功時,“+1已驗證”永遠不會實現。 檢查Jenkins日志顯示與作業相關的最后一個條目顯示403響應錯誤:

Jenkins日志也顯示相同的請求:

com.sonymobile.tools.gerrit.gerritevents.workers.rest.AbstractRestCommandJob run
SEVERE: Gerrit response: Forbidden

格里特也接受了請求和403響應:

"POST /a/changes/tdmdev~develop~Id917dda3449bf9af738ad7f122adaecba70004bd/revisions/7eab7e90c6b7e66f23faaac7cbfd40d8c9c93726/review HTTP/1.1" 403 46 - "Apache-HttpClient/4.5.2 (Java/1.8.0_77)"

我已經過測試,看看是否有任何關於API的問題,並且使用Gerrit日志中的URL成功報告了“+1 Verify”:

curl -v -X POST -d '{"reviewer":"srv_devops_jenkins","labels":{"Verified":"+1"}}' -H "Content-Type: application/json" --user "srv_devops_jenkins:***" --digest http://foobar.com:8080/a/changes/tdmdev~develop~Id917dda3449bf9af738ad7f122adaecba70004bd/revisions/7eab7e90c6b7e66f23faaac7cbfd40d8c9c93726/review

Gerrit Trigger配置為支持RESTClient請求,我已確保以下內容:

  • RESTClient憑據是正確的,單擊“測試REST連接”將返回成功響應。
  • 勾選“啟用已驗證”
  • 重新啟動Jenkins中的Gerrit Trigger連接

我成功的唯一方法是禁用“REST API”並通過SSH連接發出請求,唯一的缺點是我們需要在自定義標簽上發出+ 1,據我所知,這些標簽不受支持通過Gerrit-Trigger通過SSH。

Versions:
Jenkins: 2.48
Gerrit-Trigger: 2.23.0
Gerrit: 2.12

感謝您的任何幫助,您可以提供。

簡而言之,這是Jenkins用戶的Gerrit權限問題。

通過RESTAPI提交請求時,Gerrit觸發器包括“驗證”和“代碼審查”投票。 現在我們的Jenkins用戶只擁有了Verify權限,因此禁止任何“Code Review”修改(解釋403響應代碼)。

現在作為一個解決方案,簡單地給Jenkins用戶“Code Review”權限是不切實際的。 而是在Jenkins作業中配置Gerrit投票設置的選項:

“Gerrit Trigger”>點擊“高級...”>“Gerrit報告值”

在“驗證”標題下,添加“1”表示成功,同時確保所有其他字段為空,允許RESTAPI僅在構建后發送驗證+1投票。

在Jenkins >> Gerrit Trigger >>您的服務器名稱>> Gerrit報告值>>高級>>重置api,請檢查'啟用已驗證'。

暫無
暫無

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

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