Webhook を設定する

このページでは、Secure Source Manager で Webhook を設定する方法について説明します。

Webhook は、Secure Source Manager のイベントによってトリガーされ、ユーザー指定の URL に送信される HTTP リクエストです。

始める前に

  1. Secure Source Manager インスタンスを作成します
  2. Secure Source Manager リポジトリを作成します

必要なロール

Webhook の作成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。

ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。

必要な権限は、カスタム ロールや他の事前定義 ロールから取得することもできます。

Secure Source Manager ロールの付与については、 IAM によるアクセス制御ユーザーにインスタンスへのアクセス権を付与するをご覧ください。

Webhook を設定する

  1. Secure Source Manager ウェブ インターフェースで、Webhook を作成するリポジトリに移動します。
  2. [設定] をクリックします。
  3. [Webhooks] をクリックし、[Webhook を追加] をクリックします。
  4. [Hook ID] フィールドに、Webhook の ID を入力します。

  5. [ターゲット URL] フィールドに、Webhook URL を入力します。たとえば、Jenkins でビルドをトリガーする場合は、 Webhook トリガーを設定し、ここに Jenkins トリガー URL を入力して Jenkins でビルドをトリガーします。

  6. Webhook トリガーの作成時に入力した鍵とシークレットの値が Webhook URL に含まれている場合は、ターゲット URL の末尾から削除して、[機密性の高いクエリ文字列] フィールドにコピーします。

    Webhook URL で鍵とシークレットを見つけるには、key= で始まるテキストを探します。

    たとえば、次の URL があるとします。 https://cloudbuild.googleapis.com/v1/projects/my-project/triggers/test-trigger:webhook?key=eitIfKhYnv0LrkdsyHqIros8fbsheKRIslfsdngf&secret=Hello%20Secret%20Manager

    [ターゲット URL] フィールドから、疑問符 ?key=... で始まる部分をコピーして削除します。次に、最初の疑問符を削除し、残りの部分 key=... を [機密性の高いクエリ文字列] フィールドに移動します。

  7. [トリガー] セクションで、次のいずれかを選択します。

    • [Push]: リポジトリへの push でトリガーします。
    • [**プルリクエストの状態が変更されました**]: プルリクエストの状態が変更されたときにトリガーします。
  8. [Push] を選択した場合は、 [ブランチ フィルタ] フィールドに push イベントの許可リストを入力できます。

    [ブランチ フィルタ] フィールドでは glob パターンが使用され、一致するブランチに対するオペレーションのみがビルドトリガーを発生させます。たとえば、{main,dev}main ブランチと dev ブランチへの push イベントでトリガーされます。フィールドが空の場合、または * の場合、すべてのブランチの push イベントが報告されます。構文については、glob のドキュメントをご覧ください。

  9. [Webhook を追加] をクリックします。

  10. Webhook が [Webhook] ページに表示されます。

Webhook をテストする

  1. Secure Source Manager の [Webhook] ページで、テストする Webhook をクリックします。
  2. ページの一番下までスクロールして [配信をテスト] をクリックします。

    プレースホルダ イベントが配信キューに追加されます。配信履歴に表示されるまで数秒かかることがあります。

  3. git コマンドを使用して、pull リクエストを push またはマージして Webhook をテストすることもできます。

  4. Webhook トリガーを構成したサービスのビルド履歴で、トリガーされたビルドまたはイベントのステータスを確認します。

  5. 最初のテスト配信を送信した後、Secure Source Manager の Webhook ページの [最近の配信] セクションで、テスト配信の [リクエスト] と [レスポンス] を確認することもできます。

Cloud Build YAML 変数をペイロード データに置き換える

Webhook を使用して Cloud Build に接続している場合は、Cloud Build YAML 変数を Secure Source Manager Webhook ペイロード データに置き換えることができます。

  1. Secure Source Manager の [Webhook] ページの [最近の配信] セクションで、一番上の行をクリックします。

    Webhook ペイロードによって送信された [リクエスト] ヘッダーとコンテンツが表示されます。

  2. Cloud Build ダッシュボードに移動し、[トリガー] をクリックします。

  3. 構成するトリガーをクリックします。

  4. [詳細セクション] の [代入変数] で、 [+ 変数を追加] をクリックします。

  5. 変数の名前と値を入力します。値の接頭辞は body です。

    たとえば、Cloud Build YAML で _REPO_URL をペイロード データ フィールド repository.clone_url に、_COMMIT_SHA を最新の commit sha に置き換えるには、次の名前と値を入力します。

    • 変数 1: _REPO_URL 値 1: $(body.repository.clone_url)
    • 変数 2: _COMMIT_SHA 値 2: $(body.after)

    Cloud Build YAML ファイルは次のようになります。

    steps:
    - name: gcr.io/cloud-builders/git
      env:
      - '_REPO_URL=$_REPO_URL'
      - '_COMMIT_SHA=$_COMMIT_SHA'
      script: |
        #!/bin/sh
        git clone ${_REPO_URL} /workspace
        cd /workspace
        git reset --hard ${_COMMIT_SHA}
    

次のステップ