关于 webhook 投递失败
Webhook 投递可能因多种原因失败。例如,如果你的服务器宕机或响应时间超过 10 秒,GitHub 会将该投递记录为失败。
GitHub 不会自动重新投递失败的投递。
处理投递失败
你可以手动重新投递失败的投递。更多信息请参见 重新投递 webhook。
你也可以编写脚本来检查失败的投递并尝试重新投递所有失败的项目。你的脚本应按计划运行,并执行以下操作:
-
使用 GitHub REST API 获取自上次脚本运行以来尝试的任何 webhook 投递的数据。更多信息请参见 仓库 webhook 的 REST API 端点、组织 webhook 的 REST API 端点以及 GitHub App webhook 的 REST API 端点。
目前没有用于获取 GitHub Marketplace webhook 或 GitHub Sponsors webhook 数据的 API 端点。
-
检查获取的数据,查看是否有投递失败。失败的投递其数据中
status字段的值将不是OK。 -
使用 GitHub REST API 重新投递所有失败的投递。更多信息请参见 仓库 webhook 的 REST API 端点(重新投递)、组织 webhook 的 REST API 端点(重新投递)以及 GitHub App webhook 的 REST API 端点(重新投递)。
示例脚本请参见
如果 webhook 投递持续失败,你应当调查其原因。每次失败的投递都会提供失败原因。更多信息请参见 排查 webhook 问题。