2017-04-04 93 views
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

+0

你的Gerrit版本是什麼?您是否嘗試刪除「評論」部分? –

+0

Gerrit版本是2.13.6-3008-gcdc381e。 「評論」財產不在第一位。我添加了它來檢查它是否重要。 – Sarrus

+0

我無法重現您的問題。看來你正在獲得/ a/changes/CHANGE/detail響應,但我無法弄清楚原因。我發現的唯一奇怪的事情是空的「」allowed_labels「:{}」屬性。在我的情況下,我看到每個現有標籤的允許值。 –

回答

0

我想通了。這不是gerrit問題。我使用了http請求,並且我們的服務器重定向到了https,301郵政局休耕並且返回了GET請求的響應。