【发布时间】:2020-07-08 20:31:45
【问题描述】:
Gerrit rest api 具有更改端点,并且有一个 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 次提交的提交链,并且我使用位于该链中间的更改 id 调用端点,则此端点仅返回我要求的那个及其父提交,而不是子提交.当然是有道理的,因为如果我现在去 gerrit ui 并合并那个特定的中间提交,孩子们仍然不会被合并。
有没有办法通过 gerrit rest api 通过提供任何提交的更改 id 来获取从头到尾的整个“关系”链?
我之前已经通过迭代所有打开的打开更改请求、获取它们的父级并向下迭代来完成此操作,直到父级是其打算合并到的分支中的提交。但是,这是一种蛮力的方法。
我当然可以检查本地分支并从中获取链信息,但我可能有一个用例,其中整个提交链在本地 git 存储库中不可用,仅作为远程 gerrit 服务器中的审查..
有什么建议吗?
【问题讨论】: