Skip to main content

处理失败的 Webhook 交付

GitHub 不会自动重新交付失败的 Webhook 交付,但用户可以手动或通过编写代码来处理失败的交付。

在本文中

关于 Webhook 交付失败

Webhook 交付可能因多种原因而失败。 例如,若服务器关闭或耗时超过 10 秒才进行响应,GitHub 会将交付记录为失败。

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

处理交付失败

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

也可以编写脚本来检查失败的交付并尝试重新交付任何失败的交付。 脚本应按计划运行并执行以下操作:

  1. 使用 GitHub REST API,提取自上次运行脚本以来尝试执行的任何 Webhook 交付的数据。 有关详细信息,请参阅“存储库 Webhook 的 REST API 终结点”、“用于组织 Webhooks 的 REST API 接口节点”和“GitHub App Webhooks 的 REST API 接口终端”。

    没有 API 终结点可用于获取有关 GitHub Marketplace Webhook 或 GitHub Sponsors Webhook 的数据。

  2. 查看提取的数据,检查是否有失败的交付。 失败交付的数据的 status 值不是 OK

  3. 使用 GitHub REST API 重新交付任何失败的交付。 有关详细信息,请参阅“存储库 Webhook 的 REST API 终结点”、“用于组织 Webhooks 的 REST API 接口节点”和“GitHub App Webhooks 的 REST API 接口终端”。

有关示例脚本,请参阅:

  •         [AUTOTITLE](/webhooks/using-webhooks/creating-a-script-to-automatically-redeliver-failed-deliveries-for-a-repository-webhook)
    
  •         [AUTOTITLE](/webhooks/using-webhooks/creating-a-script-to-automatically-redeliver-failed-deliveries-for-an-organization-webhook)
    
  •         [AUTOTITLE](/webhooks/using-webhooks/creating-a-script-to-automatically-redeliver-failed-deliveries-for-a-github-app-webhook)
    

如果 Webhook 交付反复失败,则应调查原因。 每个失败交付都要给出失败的原因。 有关详细信息,请参阅“Webhook 疑难解答”。