使用REST API

时间:2014-02-04 05:48:06

标签: gerrit

我是格里特的新手。我正在使用gerrit V. 2.6。我想在我的python脚本中使用gerrit REST API。但无法弄清楚如何使用它。我尝试了下面的代码,但收到了错误。

curl --digest --user user:password http://server/a/changes/path/to/project~branch~change_id/rebase

收到错误:

401需要授权

需要授权

此服务器无法验证您 有权访问该文档 请求。要么你提供了错误的 凭据(例如,密码错误)或您的凭据 浏览器不懂如何供应 所需的证书。

我错过了什么。??

3 个答案:

答案 0 :(得分:9)

您使用的是正确的用户名:密码组合吗?这不是您的网络密码 - 它是gerrit生成的HTTP密码。您可以转到设置 - > HTTP密码找到它。如果密码框为空,请单击按钮让Gerrit生成新密码。

答案 1 :(得分:0)

您可以尝试使用pygerrit。 https://pypi.python.org/pypi/pygerrit/0.2.1

我认为它有一些API可以轻松访问gerrit。

答案 2 :(得分:0)

如@Ramraj所述,您可以尝试使用pygerritpygerrit2

并且提供一些示例,说明如何在python脚本中使用gerrit REST API。

这是代码。

auth = HTTPBasicAuth(username, password) 
rest = GerritRestAPI(url='http://review.xxxxxx.com:8080', auth=auth)

按变更编号查询变更。

info = rest.get("/changes/?q=change:{}".format(change_number))
change_id = info[0]['change_id']
subject = info[0]['subject']

通过提交ID查询更改。

info = rest.get("/changes/?q=commit:{}".format(commit_id))
change_id = info[0]['change_id']
subject = info[0]['subject']

还原更改。

headers = {'content-type': 'application/json'} 
query = "/changes/" + str(change_number) + "/revert" 
my_data = {"message": "{}".format("Revert "+str(subject))} 
rest.post(query, data=json.dumps(my_data), timeout=30, headers=headers)

查看更改

headers = {'content-disposition': 'attachment', 'content-type': 'application/json'} 
query = "/changes/" + str(change_number) + "/revisions/current/review" 
my_data = { "labels": {"Code-Review": "+2", "Verified": "+1"} } 
rest.post(query, data=json.dumps(my_data), timeout=30, headers=headers)