如果未添加新提交,如何使用 Github api 合并 PR

How to use Github api to merge a PR if new commits weren't added

在我们的管道中,我们目前正在检查一个 PR(创建一个新的本地分支),对其进行测试,如果测试通过,则合并 PR。 我们正在使用它来合并 PR:

curl -X PUT https://api.github.com/repos/'${repo}'/pulls/'${prNumber}'/merge

这里的问题是,开发人员可能会在测试时向该 PR 推送更多提交。 我怎样才能防止这种情况发生? 最好只合并经过测试的提交(直到我本地分支上的提交)。但是,如果我可以在合并任何一个之前检查所有 repos 的 PR,那么如果合并了新的提交就足够了

这取决于您的构建过程。如果您的合并脚本检查至少一次批准,并且只有这样您的分支才有资格合并,您可以在推送新提交时关闭陈旧的拉取请求,这将恢复批准:

如果您的脚本不需要批准,您可以在过程开始时检查最后一次提交的 SHA,并在合并之前验证它没有更改。