跳至主要内容

处理失败的 Webhook 传递

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

关于 Webhook 传递失败

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

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

处理传递失败

您可以手动重新传递失败的传递。有关详细信息,请参阅“重新传递 Webhooks”。

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

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

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

  2. 查看获取的数据,查看是否有任何传递失败。失败传递的数据将具有非 OKstatus 值。

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

有关示例脚本,请参阅:

如果 Webhook 传递反复失败,则应调查其原因。每个失败的传递都会说明失败的原因。有关详细信息,请参阅“排查 Webhook 问题”。