如何通过API避免延迟Github合并拉取请求

4
我正在使用Octokit通过Github API进行操作,并发现了一种奇怪的行为。在一个场景中,我需要以编程方式同步两个fork之间的master。我需要:
  • 从repo1:master到repo2:master打开一个pull request
  • 合并该pull request
当我第一次尝试这样做时,我一直看到错误"Head branch was modified. Review and try the merge again."事实证明,在创建pull request和合并它(基于PR号码)之间放置一个延迟(5秒钟)可以避免此错误的出现。
因此,似乎github在“create”调用返回之前就已经完成了某些操作,或者类似于此类的情况。我想知道是否有更可靠的方法(不使用sleeps),以确保在创建后准备好合并PR。
1个回答

1

由于GitHub正在创建拉取请求,可能会有一些延迟。一种方法是订阅拉取请求事件Webhook,一旦拉取请求“正式”打开,就会发送该Webhook,然后执行合并操作。


最终我采用了一种更简单的方法,即在服务器上维护一个git checkout,然后通过推送/拉取来同步仓库。但是,如果有人需要执行类似于我的原始方法的操作,这种Webhook方法应该很有效。 - Kallin Nagelberg
我认为仍然需要等待并允许Github达到一致性。在PR成功合并之前,pull_request事件会被发送,但等待几秒钟似乎就足够了。 - cdignam

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接