使用 Gerrit-python-api 包设置提交消息错误

Set commit message error using Gerrit-python-api package

Link 到包 python-gerrit-api:

的文档

https://python-gerrit-api.readthedocs.io/en/latest/gerrit.changes.html?highlight=get_edit#gerrit.changes.change.GerritChange.set_commit_message

代码:

输入_ = { “消息”:“新提交消息 \n\nChange-Id:xxxxxxxxx\n” }

变化=gerrit.changes.get('xxxxxxxxx')

结果 = change.set_commit_message(输入_)

错误:

当我尝试使用上述包设置提交消息时,出现“gerrit.utils.exceptions.NotFoundError: 404 Client Error: Not Found”错误。

这与您在其他问题中提出的问题相同。如果您有子父项目,它将尝试以 parent/child 而不是 parent%2Fchild 的身份访问该项目。这将导致错误 404

有关修复,请参阅拉取请求。参见:https://github.com/shijl0925/python-gerrit-api/pull/5

父子关系的一个例子是 gerrit 的代码所有者插件。插件库不包含任何代码,它更像是一个包含子库的文件夹,这些子库通常会继承父库的访问权限。

如果您查看下面的 url,您会发现 url 使用 %2F 而不是正斜杠。那就是在 gerrit-python-api

中不起作用的原因

https://gerrit-review.googlesource.com/q/project:plugins%252Fcode-owners+status:open

这个例子适用于我上面的拉取请求

input_ = {"message" : "New commit message\n\nChange-Id: I46554af336396ecb57d0c270c114a686439b5a66\n"}
c1 = gerrit.changes.get("12321")
print (c1)
c1.set_commit_message(input_)