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“:{}”属性。在我的情况下,我看到每个现有标签的允许值。 –