このページでは、Secure Source Manager でウェブフックを設定する方法について説明します。
Webhook は、Secure Source Manager のイベントによってトリガーされ、ユーザーが指定した URL に送信される HTTP リクエストです。
始める前に
必要なロール
Webhook の作成に必要な権限を取得するには、次の IAM ロールを付与するよう管理者に依頼してください。
-
Secure Source Manager リポジトリに対する Secure Source Manager リポジトリ管理者 (
roles/securesourcemanager.repoAdmin
) -
Secure Source Manager インスタンスに対する Secure Source Manager インスタンス アクセサー (
roles/securesourcemanager.instanceAccessor
)
ロールの付与については、プロジェクト、フォルダ、組織へのアクセス権の管理をご覧ください。
必要な権限は、カスタムロールや他の事前定義ロールから取得することもできます。
Secure Source Manager のロールの付与については、IAM によるアクセス制御とユーザーにインスタンスへのアクセス権を付与するをご覧ください。
Webhook を設定する
- Secure Source Manager ウェブ インターフェースで、Webhook を作成するリポジトリに移動します。
- [設定] をクリックします。
- [Webhook] をクリックし、[Webhook を追加] をクリックします。
[フック ID] フィールドに、Webhook の ID を入力します。
[ターゲット URL] フィールドに、Webhook URL を入力します。たとえば、Jenkins でビルドをトリガーする場合は、Webhook トリガーを設定してから、Jenkins トリガー URL をここに入力して、Jenkins でビルドをトリガーします。
Webhook URL に、Webhook トリガーの作成時に入力したキーとシークレットの値が含まれている場合は、ターゲット URL の末尾から削除して、[機密性の高いクエリ文字列] フィールドにコピーします。
Webhook URL でキーとシークレットを見つけるには、
key=
で始まるテキストを探します。たとえば、次の URL があるとします。
https://cloudbuild.googleapis.com/v1/projects/my-project/triggers/test-trigger:webhook?key=eitIfKhYnv0LrkdsyHqIros8fbsheKRIslfsdngf&secret=Hello%20Secret%20Manager
[Target URL] フィールドから、疑問符
?key=...
で始まる部分をコピーして削除します。次に、最初の疑問符を削除し、残りの部分key=...
を [機密性の高いクエリ文字列] フィールドに移動します。[トリガー] セクションで、次のいずれかを選択します。
- Push: リポジトリへの push でトリガーします。
- Pull request state changed: プルリクエストの状態が変更されたときにトリガーします。
[Push] を選択した場合は、[ブランチ フィルタ] フィールドに push イベントの許可リストを入力できます。
[ブランチ フィルタ] フィールドでは glob パターンが使用され、一致するブランチに対するオペレーションのみがビルドトリガーを発生させます。フィールドが空または
*
の場合、すべてのブランチの push イベントが報告されます。構文については、glob のドキュメントをご覧ください。[Add webhook] をクリックします。
Webhook が [Webhook] ページに表示されます。
Webhook をテストする
- Secure Source Manager の [Webhook] ページで、テストする Webhook をクリックします。
ページの一番下までスクロールし、[テスト配信] をクリックします。
プレースホルダ イベントが配信キューに追加されます。配信履歴に表示されるまで数秒かかることがあります。
git
コマンドを使用して、プルリクエストを push またはマージして、Webhook をテストすることもできます。Webhook トリガーを構成したサービスのビルド履歴で、トリガーされたビルドまたはイベントのステータスを確認します。
最初のテスト配信を送信すると、Secure Source Manager のウェブフック ページの [最近の配信] セクションで、テスト配信のリクエストとレスポンスを確認することもできます。
Cloud Build YAML 変数をペイロード データに置き換える
Webhook を使用して Cloud Build に接続している場合は、Cloud Build YAML 変数を Secure Source Manager Webhook ペイロード データに置き換えることができます。
Secure Source Manager の [Webhook] ページの [最近の配信] セクションで、最上行をクリックします。
Webhook ペイロードによって送信されたリクエスト ヘッダーとコンテンツが表示されます。
Cloud Build ダッシュボードに移動し、[トリガー] をクリックします。
設定するトリガーをクリックします。
[詳細設定] セクションの [代入変数] で、[+ 変数を追加] をクリックします。
変数の名前と値を入力します。値の接頭辞は
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}
- 変数 1: