Webhook¶
Webhook は、特定のイベントが発生したときにサーバーサイド アプリケーションからクライアントサイド アプリケーションに自動的に情報をプッシュするよう構成可能な HTTP コールバックと定義されています。
たとえば、デプロイ済みの Mayhem インスタンスは、Mayhem ランが失敗または完了したとき、Webhook を使用して Slack や Google Chat などのクライアントサイド アプリケーションに通知を送信できます。Mayhem の Webhook は特定のユーザー、プロジェクト、または組織のランで発生するイベントをサブスクライブできます。
新規 Webhook の構成¶
Mayhem の Webhook は次の方法でアクセスおよび構成できます。
- ユーザーは、[User Settings] ページで自分のプロジェクトの Webhook を構成できます。
- 管理者権限を持つプロジェクト コントリビューターは、[Project Settings] ページでプロジェクトの Webhook を構成できます。
- 組織オーナーは、[Organization Settings] ページで組織の Webhook を構成できます。
- Mayhem 管理者は [Admin Settings] ページの [Webhooks] セクションからクラスターレベルですべての Webhook を構成できます。
Webhook 構成ページは次のようになります。
Webhook Name¶
Webhook を管理するための自由形式の名前です。
Subscription¶
Webhook はユーザー、組織、プロジェクトのイベントをサブスクライブできます。Mayhem 管理者は、このフィールドを使用して新規 Webhook のサブスクリプションを検索し、選択できます。ユーザー、組織オーナー、管理者権限を持つプロジェクト コントリビューターの場合、Webhook の作成を開始したユーザー、組織、プロジェクト設定画面に応じて、このフィールドにあらかじめ値が設定されています。
Webhook URL¶
Mayhem がイベントを送信する URL です。Webhook が使用する URL は、Mayhem クラスターからルーティング可能なパブリック IP アドレスに解決される必要があります。プライベート IP アドレスに解決される URL (例: 192.168.1.1) を使用しようとすると、エラーが発生します。
Webhook の URL にはトークンおよびその他の認証情報を含まれる場合があるため、Webhook のリストにはスキーマおよびドメインの部分だけが表示されます。完全な URL は [Edit Webhook] フォームにだけ表示されます。たとえば、Webhook のリストでは、https://example.com/mysecretlocation/webhook
は https://example.com
と表示されます。
Tip
Webhook の URL を生成する方法については、Slack および Google Chat の公式ドキュメントを参照してください。
フォーマット¶
現在、2 つの Webhook フォーマットが実装されています。
- JSON v1 は、カスタム サービスによって処理するための構造化された機械処理可能な JSON を送信します。
{
"message":"test",
"triggered_at":"1970-01-01T00:00:00"
}
- Text (Slack) は、Slack チャネルにイベントをポストするための「受信 Webhook」で使用可能なメッセージを送信します。
{
"blocks": [
{
"type": "section",
"text": {
"type": "mrkdwn",
"text": ">:microscope: Test Message 1\n>:microscope: Test Message 2"
}
},
{
"type": "context",
"elements": [
{
"type": "plain_text",
"text": "Test Webhook from cURL\nWebhook: Name not defined"
}
]
}
]
}
イベント駆動型 Webhook¶
次の Webhook 通知タイプは、Mayhem クラスターでイベントが発生すると、ただちに Webhook イベントを送信します。
- Run Started: ランが開始されるたびに送信されます。
- Run Completed: ランが終了するたびに送信されます。ランが正常に終了した、停止された、または失敗したなど、ランの終了理由に関する情報が含まれます。
「ロールアップ」Webhook¶
Webhook は規模の大きいイベントの情報を約 15 分ごとに送信します。一致するイベントが発生しなかった場合、Webhook は送信されません。
- Recent Test Cases Generated: 期間中にランが生成したテスト ケースの数がレポートされます。
- Recent Crashes Found: 期間中に見つかったクラッシュの数がレポートされます。
- Recent Defects Found: 期間中に見つかった欠陥の数がレポートされます。
Webhook の編集¶
Webhook を作成可能なすべての設定ページの Webhook リストから Webhook を編集できます。
名前およびサブスクリプションの選択は Mayhem への Webhook エントリを一意に識別するために使用されるため、変更できません。
既存の Webhook の URL、フォーマット、選択されたイベントを編集することができます。さらに、[Edit Webhook] フォームには、Webhook の構成をテストするのに使用できる curl
コマンド呼び出しのサンプルが表示されます。
Webhook の削除¶
Webhook を作成可能なすべての設定ページの Webhook リストから Webhook を削除できます。