Skip to main content

webhookの失敗した配信の処理

GitHub は失敗した Webhook 配信を自動的に再配信しませんが、失敗した配信は手動で処理することも、コードを記述して処理することもできます。

Webhook 配信の失敗について

Webhook の配信は、複数の理由で失敗する可能性があります。 たとえば、サーバーがダウンしているか、10 秒の応答に時間がかかる場合、GitHub は配信をエラーとして記録します。

GitHub は、失敗した配信を自動的に再配信しません。

失敗した配信の処理

失敗した配信は手動で再配信できます。 詳しくは、「Webhook の再配信」を参照してください。

失敗した配信をチェックし、失敗した配信を再配信しようとするスクリプトを記述することもできます。 スクリプトはスケジュールに従って実行し、次の操作を行う必要があります。

  1. GitHub REST API を使用して、スクリプトが最後に実行されてから試行されたすべての Webhook 配信に関するデータをフェッチします。 詳しくは、「リポジトリ ウェブフック の REST API エンドポイント」、「組織の Webhook の REST API エンドポイント」、「GitHub AppWebhook 用 REST API エンドポイント」をご覧ください。

    GitHub Marketplace webhook または GitHub Sponsors webhook に関するデータを取得する API エンドポイントはありません。

  2. フェッチされたデータを調べて、配信に失敗したかどうかを確認します。 配信に失敗した場合のデータには statusでない値OKが含まれます。

  3. 失敗した配信を再配信するには、GitHub REST API を使用します。 詳しくは、「リポジトリ ウェブフック の REST API エンドポイント」、「組織の Webhook の REST API エンドポイント」、「GitHub AppWebhook 用 REST API エンドポイント」をご覧ください。

サンプル スクリプトについては、以下を参照してください。

Webhook の配信が繰り返し失敗する場合は、原因を調査する必要があります。 失敗した配信ごとに、失敗の理由が示されます。 詳しくは、「Webhook のトラブルシューティング」を参照してください。