第26章 Webhook の使用
Webhook を使用すると、Web 上のアプリケーション間で指定されたコマンドを実行できます。automation controller は現在、GitHub および GitLab との Webhook インテグレーションを提供しています。
次のサービスを使用して Webhook を設定します。
GitHub および GitLab の Webhook ポストステータスバック機能は、特定の CI イベント下でのみ動作するように設計されています。別の種類のイベントを受信すると、サービスログに次のようなメッセージが記録されます。
awx.main.models.mixins Webhook event did not have a status API endpoint associated, skipping.
26.1. GitHub Webhook の設定
automation controller には、トリガーされた Webhook イベントに基づいてジョブを実行する機能があります。ジョブのステータス情報 (pending, error, success) は、プルリクエストイベントの場合にのみ送信できます。Automation controller がジョブステータスを Webhook サービスにポストする必要がない場合は、直接ステップ 3 に進みます。
手順
Automation Controller で使用する Personal Access Token (PAT) を生成します。
- GitHub アカウントのプロファイル設定で、Settings を選択します。
- ナビゲーションパネルから、 を選択します。
- Developer Settings ページで、Personal access tokens を選択します。
- Personal access tokens 画面で、 をクリックします。
- プロンプトが表示されたら、GitHub アカウントのパスワードを入力して続行します。
- Note フィールドに、この PAT の用途に関する簡単な説明を入力します。
- Select scopes フィールドで、repo:status、repo_deployment、および public_repo の横のボックスをオンにします。自動 Webhook には、招待の場合を除き、リポジトリースコープへのアクセス権だけが必要です。詳細は、OAuth アプリのスコープのドキュメント を参照してください。
- 重要
トークンが生成されたら、ステップ 2 で必要となるため、必ず PAT をコピーしてください。GitHub でこのトークンに再度アクセスすることはできません。
必要に応じて、PAT を使用して、GitHub の認証情報を作成します。
- インスタンスに移動し、生成されたトークンを使用して GitHub PAT の新しい認証情報を作成 します。
GitHub にポストバックするジョブテンプレートで使用するため、この認証情報の名前をメモしておきます。
Webhook を有効にするジョブテンプレートに移動し、前の手順で作成した Webhook サービスと認証情報を選択します。
- をクリックします。ジョブテンプレートは GitHub にポストバックするように設定されています。
- Webhook を設定する GitHub リポジトリーに移動し、 を選択します。
-
ナビゲーションパネルから、
を選択します。 - Add webhook ページを完了するには、ジョブテンプレートまたはワークフロージョブテンプレートで Enable Webhook オプションをオンにする必要があります。詳細は、 ジョブテンプレートの作成 と ワークフローテンプレートの作成 の両方のステップ 3 を参照してください。
以下のフィールドに入力します。
- Payload URL: Webhook URL の内容をジョブテンプレートからコピーし、ここに貼り付けます。結果は GitHub からこのアドレスに送信されます。
- Content type: application/json に設定します。
- Secret: ジョブテンプレートから Webhook キー の内容をコピーし、ここに貼り付けます。
Which events would you like to trigger this webhook?: Webhook をトリガーするイベントのタイプを選択します。このようなイベントがあれば、ジョブまたはワークフローがトリガーされます。ジョブのステータス (保留中、エラー、成功) を GitHub に送り返すには、Let me select individual events セクションで Pull requests を選択する必要があります。
- Active: これをチェックしたままにします。
- をクリックします。
- Webhook が設定されると、編集または削除する機能とともに、リポジトリーでアクティブな Webhook のリストに表示されます。Webhook をクリックして、Manage webhook 画面に移動します。
- スクロールして、Webhook に対して行われた配信試行と、それらが成功したか失敗したかを表示します。
関連情報
詳細は、Webhook のドキュメント を参照してください。