1
我正在嘗試設置Teamcity構建和驗證Gerrit的補丁集。如果構建失敗,最後一步應該將驗證設置爲-1。我玩弄格里特REST API,我想我找到了一個正確的命令:如何使用Gerrit REST API設置修訂版審查
https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#set-review
文檔說:
作爲響應返回ReviewInfo實體描述應用 標籤。
我的要求是這樣的:
POST <gerrit-url>/a/changes/I696f00f4968fcb35fa614ce6325499aa15367150/revisions/current/review
{
"message": "Build failed",
"labels": {
"Verified": -1
}
}
作爲迴應,我得到全面修訂信息:
{
"id": "dev_test~master~<change-id>",
"project": "dev_test",
"branch": "master",
"hashtags": [],
"change_id": "<change-id>",
"subject": "a test",
"status": "NEW",
"created": "2017-04-03 07:53:19.000000000",
"updated": "2017-04-04 08:47:34.000000000",
"submit_type": "MERGE_IF_NECESSARY",
"mergeable": true,
"insertions": 133,
"deletions": 7,
"unresolved_comment_count": 0,
"_number": 381,
"owner": {
"_account_id": 4,
"name": "<my-name>",
"email": "<my-email>",
"username": "<my-username>",
},
"labels": {
"Code-Review": {
"all": [
{
"value": 1,
"date": "2017-04-04 08:47:34.000000000",
"permitted_voting_range": {
"min": -2,
"max": 2
},
"_account_id": 4,
"name": "<my-name>",
"email": "<my-email>",
"username": "<my-username>"
}
],
"values": {
"-2": "This shall not be merged",
"-1": "I would prefer this is not merged as is",
" 0": "No score",
"+1": "Looks good to me, but someone else must approve",
"+2": "Looks good to me, approved"
},
"default_value": 0
},
"Verified": {
"all": [
{
"value": 0,
"permitted_voting_range": {
"min": -1,
"max": 1
},
"_account_id": 4,
"name": "<my-name>",
"email": "<my-email>",
"username": "<my-username>"
}
],
"values": {
"-1": "Fails",
" 0": "No score",
"+1": "Verified"
},
"default_value": 0
}
},
"permitted_labels": {},
"removable_reviewers": [],
"reviewers": {
"REVIEWER": [
{
"_account_id": 4,
"name": "<my-name>",
"email": "<my-email>",
"username": "<my-username>"
}
]
},
"current_revision": "913330441711b067899a664a60c78be518e547b4",
"revisions": {
"913330441711b067899a664a60c78be518e547b4": {
"kind": "REWORK",
"_number": 6,
"created": "2017-04-03 14:08:14.000000000",
"uploader": {
"_account_id": 4,
"name": "<my-name>",
"email": "<my-email>",
"username": "<my-username>"
},
"ref": "refs/changes/81/381/6",
"fetch": {
"ssh": {
"url": "ssh://<url>",
"ref": "refs/changes/81/381/6"
},
"http": {
"url": "http://<url>",
"ref": "refs/changes/81/381/6"
}
}
}
}
}
它不受請求。使用GET方法或使用POST方法在身體當我發送的請求無效的JSON返回相同的響應
格里特版本(!):2.13.6-3008-gcdc381e
我是否出錯了?
PS。下面是類似的問題,但它是沒有幫助的:Gerrit set-review api doesn't work
編輯: 看來,我正從GET請求響應不是POST
你的Gerrit版本是什麼?您是否嘗試刪除「評論」部分? –
Gerrit版本是2.13.6-3008-gcdc381e。 「評論」財產不在第一位。我添加了它來檢查它是否重要。 – Sarrus
我無法重現您的問題。看來你正在獲得/ a/changes/CHANGE/detail響應,但我無法弄清楚原因。我發現的唯一奇怪的事情是空的「」allowed_labels「:{}」屬性。在我的情況下,我看到每個現有標籤的允許值。 –