在 PR 上通过的所有检查的 Github API Webhook/Notification

Posted

技术标签:

【中文标题】在 PR 上通过的所有检查的 Github API Webhook/Notification【英文标题】:Github API Webhook/Notification for All checks passed on PR 【发布时间】:2018-11-24 14:01:19 【问题描述】:

我有一个应用程序对新分支上的存储库进行更改并将其提交到存储库,然后创建一个 PR。 PR 开始了两个构建 - 一个用于 travis,一个用于 jenkins。我想知道是否有一种方法可以在所有检查通过 PR 后收到通知,以便我的应用可以合并 PR。目前我只在 github 上看到一种设置状态事件的方法,该事件仅在 one 状态更新时通知我。

我可以做到这一点的一种方法是在每个 bulid 一个接一个经过时将此信息存储在某处,并在它们全部完成时合并。但是,我希望避免将信息存储在某处,因为我希望实现短暂的实现。

我正在考虑的另一种方法是:一旦收到status event,我就可以解析头部提交的 statuses_url,并验证其他构建的状态。 我认为的问题在于 statuses_url 显示 all 为这个 head 构建的版本,而不一定是与 PR 相关的那些。

我想知道是否有办法在所有检查完成后接收单一通知并同时报告其状态。

【问题讨论】:

【参考方案1】:

您可以通过为 PR Status 事件设置一个 webhook 来完成此操作,该事件调用 combined status 端点以获取该特定 sha 的整体状态。然后,您可以对任何以 sha 作为head 的拉取请求执行一些操作。

我最近实现了类似这样的功能,可以根据 PR 状态 (here) 有条件地添加/删除标签。

【讨论】:

以上是关于在 PR 上通过的所有检查的 Github API Webhook/Notification的主要内容,如果未能解决你的问题,请参考以下文章

GitHub Actions:某些文件更新的自动 PR?

Github通过PR提交代码到开源库

为 GitHub 拉取请求添加验证检查

javascript 在Github上查看PR时折叠所有文件面板

GitHub - 使用 PR 中所有提交的语义发布版本说明

Github Dashboard-Feed 通过 API 或 RSS?