[英]gerrit-trigger is not triggering jenkins job based on the comment posted to patchset
[英]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請求,我已確保以下內容:
我成功的唯一方法是禁用“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.