Webhook 配信の失敗について
Webhook の配信は、複数の理由で失敗する可能性があります。 たとえば、サーバーがダウンしているか、30 秒の応答に時間がかかる場合、GitHub は配信をエラーとして記録します。
GitHub は、失敗した配信を自動的に再配信しません。
失敗した配信の処理
失敗した配信は手動で再配信できます。 詳しくは、「Webhook の再配信」を参照してください。
失敗した配信をチェックし、失敗した配信を再配信しようとするスクリプトを記述することもできます。 スクリプトはスケジュールに従って実行し、次の操作を行う必要があります。
-
GitHub REST API を使用して、スクリプトが最後に実行されてから試行されたすべての Webhook 配信に関するデータをフェッチします。 詳しくは、「リポジトリ ウェブフック の REST API エンドポイント」、「組織の Webhook の REST API エンドポイント」、「GitHub AppWebhook 用 REST API エンドポイント」をご覧ください。
グローバル Webhook 配信に関するデータを取得する API エンドポイントはありません。
-
フェッチされたデータを調べて、配信に失敗したかどうかを確認します。 配信に失敗した場合のデータには
status
でない値OK
が含まれます。 -
失敗した配信を再配信するには、GitHub REST API を使用します。 詳しくは、「リポジトリ ウェブフック の REST API エンドポイント」、「組織の Webhook の REST API エンドポイント」、「GitHub AppWebhook 用 REST API エンドポイント」をご覧ください。
サンプル スクリプトについては、以下を参照してください。
- リポジトリの Webhook の失敗した配信を自動的に再配信する
- 組織の Webhook の失敗した配信を自動的に再配信する
- 「GitHub App webhook の失敗した配信を自動的に再配信する」
Webhook の配信が繰り返し失敗する場合は、原因を調査する必要があります。 失敗した配信ごとに、失敗の理由が示されます。 詳しくは、「Webhook のトラブルシューティング」を参照してください。