Gerrit set-review api不起作用

时间:2014-11-06 05:27:25

标签: rest gerrit

我尝试使用此" set-review"添加评论评论。 API: https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#set-review

我可以从这个界面获得一个json响应,但没有任何改变。 我无法看到Gerrit网页上的任何新评论。

以下是我的客户端代码示例:

url = '/changes/16148/revisions/1/review'
data = json.dumps({
    'message': 'test',
    'labels': {},
    'comments': {
        'tools/docpreview.py': [{
                'line': 20,
                'message': 'hehe',
                }],
        },
    'notify': 'NONE'
    })
pprint(rest.post(url, data=data))

响应示例(私人信息已删除)。

此响应看起来像这里描述的get-review api的结果: https://gerrit-review.googlesource.com/Documentation/rest-api-changes.html#get-review

{u'_number': 16148,
...
 u'insertions': 20,
 u'kind': u'gerritcodereview#change',
 u'created': u'2014-11-05 16:23:08.849000000',
...
 u'status': u'NEW',
 u'subject': u'Add markdown preview.',
 u'updated': u'2014-11-05 22:02:32.978000000'}

2 个答案:

答案 0 :(得分:1)

我很难在一段时间内做到这一点,最后,Python中的以下代码对我有用:

from requests.auth import HTTPBasicAuth
from pygerrit2.rest import GerritRestAPI

REST_AUTH = HTTPBasicAuth(MISC['auth_username'], MISC['auth_password'])
REST_CLIENT = GerritRestAPI(url=MISC['base_url'], auth=REST_AUTH)

query = "/changes/" + str(change_id) + "/revisions/" + str(cur_rev) + "/review"
REST_CLIENT.post(query, json={
      "message": MISC['message'], 
      "reviewers": [{
      "reviewer": MISC['reviewer_bot'] 
       }]
    })
# MISC is a dictionary

答案 1 :(得分:0)

您应该通过身份验证,不是吗?因此,您的请求必须转到/a/changes/