关于 Webhook 传递失败
Webhook 传递可能由于多种原因而失败。例如,如果您的服务器宕机或响应时间超过 10 秒,GitHub 将记录该传递为失败。
GitHub 不会自动重新传递失败的传递。
处理传递失败
您可以手动重新传递失败的传递。有关更多信息,请参阅“重新传递 Webhook”。
您还可以编写一个脚本,检查失败的传递并尝试重新传递任何失败的传递。您的脚本应按计划运行并执行以下操作
-
使用 GitHub REST API 获取有关自上次脚本运行以来尝试过的任何 Webhook 传递的数据。有关更多信息,请参阅“存储库 Webhook 的 REST API 端点”、“组织 Webhook 的 REST API 端点”和“GitHub App Webhook 的 REST API 端点”。
没有 API 端点可以获取有关 GitHub Marketplace Webhook 或 GitHub Sponsors Webhook 的数据。
-
查看获取的数据,以查看是否有任何传递失败。失败传递的数据将具有一个非“OK”的
status
值。 -
使用 GitHub REST API 重新传递任何失败的传递。有关更多信息,请参阅“存储库 Webhook 的 REST API 端点”、“组织 Webhook 的 REST API 端点”和“GitHub App Webhook 的 REST API 端点”。
有关示例脚本,请参阅
如果webhook多次交付失败,您应该调查原因。每次交付失败都会给出失败原因。有关更多信息,请参阅“排查webhook问题”。