跳至主要内容

处理失败的 Webhook 传递

GitHub 不会自动重新传递失败的 Webhook 传递,但您可以手动处理失败的传递或编写代码。

关于 Webhook 传递失败

Webhook 传递可能由于多种原因而失败。例如,如果您的服务器宕机或响应时间超过 10 秒,GitHub 将记录该传递为失败。

GitHub 不会自动重新传递失败的传递。

处理传递失败

您可以手动重新传递失败的传递。有关更多信息,请参阅“重新传递 Webhook”。

您还可以编写一个脚本,检查失败的传递并尝试重新传递任何失败的传递。您的脚本应按计划运行并执行以下操作

  1. 使用 GitHub REST API 获取有关自上次脚本运行以来尝试过的任何 Webhook 传递的数据。有关更多信息,请参阅“存储库 Webhook 的 REST API 端点”、“组织 Webhook 的 REST API 端点”和“GitHub App Webhook 的 REST API 端点”。

    没有 API 端点可以获取有关 GitHub Marketplace Webhook 或 GitHub Sponsors Webhook 的数据。

  2. 查看获取的数据,以查看是否有任何传递失败。失败传递的数据将具有一个非“OK”的status值。

  3. 使用 GitHub REST API 重新传递任何失败的传递。有关更多信息,请参阅“存储库 Webhook 的 REST API 端点”、“组织 Webhook 的 REST API 端点”和“GitHub App Webhook 的 REST API 端点”。

有关示例脚本,请参阅

如果webhook多次交付失败,您应该调查原因。每次交付失败都会给出失败原因。有关更多信息,请参阅“排查webhook问题”。