我是格里特的新手。我正在使用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需要授权
此服务器无法验证您 有权访问该文档 请求。要么你提供了错误的 凭据(例如,密码错误)或您的凭据 浏览器不懂如何供应 所需的证书。
我错过了什么。??
答案 0 :(得分:9)
您使用的是正确的用户名:密码组合吗?这不是您的网络密码 - 它是gerrit生成的HTTP密码。您可以转到设置 - > HTTP密码找到它。如果密码框为空,请单击按钮让Gerrit生成新密码。
答案 1 :(得分:0)
您可以尝试使用pygerrit。 https://pypi.python.org/pypi/pygerrit/0.2.1
我认为它有一些API可以轻松访问gerrit。
答案 2 :(得分:0)
如@Ramraj所述,您可以尝试使用pygerrit或pygerrit2。
并且提供一些示例,说明如何在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)