如何通过RESTAPI从gerrit“一起提交”所有更改?

2024-09-29 05:20:28 发布

您现在位置:Python中文网/ 问答频道 /正文

GerritRESTAPI有一个端点更改,并且有一个submitted_together选项。在python中,它将是这样的

def get_changes_submitted_together(rest, changeid):
    try:
        return rest.get(f"/changes/{changeid}/submitted_together?o=NON_VISIBLE_CHANGES&o=CURRENT_REVISION")
    except requests.exceptions.HTTPError:
        raise RuntimeError(f"Provided change ({changeid}) cannot be found on remote gerrit server.")

现在,如果我有一个包含10个提交的提交链,并且我调用了位于该链中间的具有change id的端点,那么该端点只返回我请求的一个及其父提交,而不是子提交。当然,这是有道理的,因为若我现在转到GerritUI并合并那个特定的中间提交,那个么孩子们仍然不会被合并

有没有办法通过GerritRESTAPI通过提供任何提交的更改ID从开始到结束获取整个“关系”链

我以前做过迭代所有打开的更改请求,获取它们的父项并向下迭代,直到父项是其要合并到的分支中的提交。然而,这是一种暴力手段

当然,我可以检查本地分支并从中获取链信息,但我可能有一个用例,即整个提交链在本地git存储库中不可用,只能作为远程gerrit服务器中的审阅

有什么建议吗


Tags: restgetdef选项分支端点changetogether