关于 Webhook 交付失败
Webhook 交付可能因多种原因而失败。 例如,如果服务器关闭或花费的时间超过 30 秒进行响应, GitHub 则会将传递记录为失败。
GitHub 不会自动重新传送失败的交付。
处理交付失败
可以手动重新交付失败的交付。 有关详细信息,请参阅“重新传递 Webhook”。
也可以编写脚本来检查失败的交付并尝试重新交付任何失败的交付。 脚本应按计划运行并执行以下操作:
-
使用 GitHub REST API 获取有关自你的脚本上次运行以来曾尝试进行的任何 webhook 传递的数据。 有关详细信息,请参阅“存储库 Webhook 的 REST API 终结点”、“用于组织 Webhooks 的 REST API 接口节点”和“Webhooks 的 GitHub App REST API 终结点”。
没有 API 终结点可用于获取有关全局 Webhook 交付的数据。
- 查看提取的数据,检查是否有失败的交付。 失败交付的数据的
status值不是OK。 - GitHub使用 REST API 重新传送失败的任何交付。 有关详细信息,请参阅“存储库 Webhook 的 REST API 终结点”、“用于组织 Webhooks 的 REST API 接口节点”和“Webhooks 的 GitHub App REST API 终结点”。
有关示例脚本,请参阅:
如果 Webhook 交付反复失败,则应调查原因。 每个失败交付都要给出失败的原因。 有关详细信息,请参阅“Webhook 疑难解答”。