如何避免使用 API 延迟 github 拉取请求合并

Posted

技术标签:

【中文标题】如何避免使用 API 延迟 github 拉取请求合并【英文标题】:How to avoid delaying github pull request merge using API 【发布时间】:2016-12-12 07:19:15 【问题描述】:

我正在通过 Octokit 使用 Github API,并注意到一个奇怪的行为。在一种情况下,我以编程方式跨 2 个分叉同步 master。我需要:

打开从 repo1:master 到 repo2:master 的拉取请求 合并该拉取请求

当我第一次尝试这个时,我一直看到错误“Head branch was modified. Review and try the merge again.”事实证明,在创建拉取请求和合并它(基于 PR 编号)之间简单地延迟(5 秒)可以避免这个错误。

因此,似乎 github 在实际完成之前从“create”调用中返回或类似的东西。我想知道是否有更可靠的方法(不使用睡眠)来确保 PR 在创建后准备好合并。

【问题讨论】:

【参考方案1】:

在 GitHub 创建拉取请求时可能会有一些延迟。一种方法是订阅pull request event webhook,一旦“正式”打开拉取请求,就会发送该pull request event webhook,然后执行合并。

【讨论】:

我最终使用了一个更简单的过程来维护服务器上的 git checkout,然后推送/拉取以同步存储库。但是,如果有人需要做与我原来的方法类似的事情,这种 webhook 方法应该可以很好地工作。 我觉得还是需要等待,让Github达到一致性。 pull_request 事件在 PR 能够成功合并之前发送,但等待几秒钟似乎就足够了。

以上是关于如何避免使用 API 延迟 github 拉取请求合并的主要内容,如果未能解决你的问题,请参考以下文章

Github API Auth 无法在拉取请求上添加评论

从 github 拉取时如何避免 Permission denied (publickey)?

如何使用 git 查看 GitHub 拉取请求?

GitHub Actions:如何像合并一样构建拉取请求?

如何在 GitHub 上恢复拉取请求提交

有没有办法从 github 操作获得对 GitHub API 的写入权限?