Jenkins スポークの Webhook の設定

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:6分
  • ServiceNowインスタンスで Jenkins から必要な更新を受信するように Webhook アプリケーションを設定します。

    始める前に

    必要なロール:admin

    Jenkins v2 スポークの認証キーを作成

    Jenkins からの要求を承認するための認証キーを作成します。

    始める前に

    必要なロール:admin

    手順

    1. 次のように移動する。 All (すべて) > システム定義 > スクリプト - バックグラウンド.
    2. [スクリプトを実行 (サーバー上で実行される JavaScript)] テキストフィールドで、次のコマンドを入力します。
      gs.info(GlideSecureRandomUtil.getSecureRandomString(32));
    3. [スクリプトを実行] をクリックします。
    4. 後で使用するために生成された値をコピーして記録します。
      クライアントシークレットまたは認証キー

    Webhook の認証キーを指定

    ServiceNowインスタンスに Webhook の認証キーを指定して、Jenkins からの要求を承認します。

    始める前に

    必要なロール:admin

    手順

    1. 次のように移動する。 All (すべて) > Jenkins v2 > Webhook クライアントの詳細.
    2. [New] をクリックします。
    3. フォームに、これらの値を入力します。
      表 : 1. Jenkins Webhook クライアントの詳細フォーム
      フィールド 説明
      認証キー 生成された認証キー詳細については、「Jenkins v2 スポークの認証キーを作成」を参照してください。
      名前 Webhook クライアントレコードを識別する名前です。
    4. [送信] をクリックします。

    Jenkins での認証キーを指定

    Jenkins での認証キーを指定して、Jenkins から更新を受信します。

    始める前に

    必要なロール:admin

    手順

    1. Jenkins アカウントにログインします。
    2. Webhook を構成するジョブをクリックして開きます。
    3. [構成] をクリックします。
    4. [バインディング] タブで、[追加] をクリックし、[Jenkins] を選択します。

      プラグインの使用の詳細については、「 認証情報のバインディング」を参照してください。

      Jenkins 認証情報プロバイダー
    5. フォームのフィールドに入力します。
      表 : 2. Jenkins 認証情報プロバイダーフォーム
      フィールド 説明
      種類 シークレットテキスト を選択します。
      シークレット 認証キーを入力します。 詳細については、「Jenkins v2 スポークの認証キーを作成」を参照してください。
      ID レコードを識別するための一意の識別子を指定します。
    6. [追加] をクリックします。
    7. [ビルド後のアクション] タブで、タスクを設定し、ServiceNowインスタンスで更新を受信するスクリプトを指定します。
      • サンプルWindows スクリプトcurl "https://<instance-name>.service-now.com/api/sn_jenkinsv2_spoke/jenkins_v2_webhook/build_status" -X POST -H "content-type:application/json" -H "jenkinsKey: %<ID>%" -d "{\"Job_Name\":\"%JOB_NAME%\",\"Job_Path\":\"%JOB_URL%\",\"Build_Number\":\"%BUILD_NUMBER%\"}"
      • サンプルシェルスクリプトcurl "https://<instance-name>.service-now.com/api/sn_jenkinsv2_spoke/jenkins_v2_webhook/build_status" -X POST -H "content-type:application/json" -H "jenkinsKey: ${<ID>}" -d "{\"Job_Name\":\"${JOB_NAME}\",\"Job_Path\":\"${JOB_URL}\",\"Build_Number\":\"${BUILD_NUMBER}\"}"
      注:
      スクリプト内の ID は、Jenkins 認証情報プロバイダーフォームで指定した ID です。
      プラグインの使用の詳細については、「 ビルド後のタスク」を参照してください。
    8. [適用] をクリックします。

    サブフローに説明を入力

    Jenkins v2 スポークのサブフローにわかりやすい説明を入力します。

    始める前に

    必要なロール:admin。

    手順

    1. 次のように移動する。 All (すべて) > Jenkins v2 > Webhook 応答サブフロー.
    2. [New] をクリックします。
    3. フォームに、これらの値を入力します。
      フィールド 説明
      説明 サブフローの説明です。
      サブフロー Jenkins v2 スポークに必要なサブフローです。
    4. [送信] をクリックします。

    ディシジョンテーブルに回答を入力

    ディシジョンテーブルに記載されている条件に対する回答としてサブフローが提供されます。指定された条件が満たされたら、関連するサブフローがトリガーされます。

    始める前に

    必要なロール:admin

    手順

    1. 次のように移動する。 All (すべて) > システム定義 > ディシジョンテーブル.
    2. Jenkins v2 Spoke のレコードを開きます。
    3. [意思決定] タブで、[新規] をクリックします。
    4. フォームに、これらの値を入力します。
      表 : 3. 意思決定フォーム
      フィールド 説明
      ラベル ルーティングポリシーを識別する一意のラベルです。
      デフォルトの回答 この回答がデフォルトの回答かどうかを指定するオプションです。デフォルトの回答は、条件が満たされない場合に適用されます。
      条件 Jenkins で必要なイベントが発生したときに満たされるべき条件です。サポートされているフィールドの詳細については、Jenkins v2 スポークを参照してください。
      回答 指定された条件が満たされるとトリガーされるサブフローです。
      1. 検索アイコン (検索アイコン) をクリックします。
      2. ドキュメントリストから必要なサブフローを選択します。
        注:
        テーブル名Jenkins v2 Webhook 回答サブフロー [sn_jenkinsv2_spoke_webhook_answer_subflow] であることを確認します。
    5. [送信] をクリックします。

    Webhook をカスタマイズ

    Webhook ルーティングポリシーを作成し、要件に応じてサブフローをカスタマイズします。

    始める前に

    必要なロール:admin

    手順

    1. 次のように移動する。 All (すべて) > Flow Designer (フローデザイナー) > デザイナー.
    2. [サブフロー] をクリックします。
    3. 必要なデフォルトのサブフローのコピーを作成します。
    4. Jenkins Webhook 応答サブフローをカスタマイズ:プロセスビルド情報のサブフローを要件に応じでカスタマイズして、公開します。
      サブフローの作成および使用の詳細については「サブフローのビルド」を、ルーティングポリシーおよびサブフローがサポートするフィールドについては、「Jenkins v2 スポーク」を参照してください。
    5. 次のように移動する。 Jenkins v2 > Webhook 応答サブフロー.
    6. [New] をクリックします。
    7. フォームのフィールドに入力します。
      フィールド 説明
      説明 サブフローの説明です。
      サブフロー Jenkins v2 スポークに必要なサブフローです。
    8. [送信] をクリックします。
      注:
      これらのルーティングポリシーは意思決定テーブルに保存されます。ユーザーは、これらのテーブルのデータを直接更新または変更しないように注意してください。
    9. 次のように移動する。 システム定義 > ディシジョンテーブル.
    10. Jenkins v2 Spoke のレコードを開きます。
    11. [意思決定] タブで、[新規] をクリックします。
    12. フォームの各フィールドに入力します。
      表 : 4. 意思決定フォーム
      フィールド 説明
      ラベル ルーティングポリシーを識別する一意のラベルです。
      デフォルトの回答 この回答がデフォルトの回答かどうかを指定するオプションです。デフォルトの回答は、条件が満たされない場合に適用されます。
      条件 Jenkins で必要なイベントが発生したときに満たされるべき条件です。サポートされているフィールドの詳細については、Jenkins v2 スポークを参照してください。
      回答 指定された条件が満たされるとトリガーされるサブフローです。
      1. 検索アイコン (検索アイコン) をクリックします。
      2. ドキュメントリストから必要なサブフローを選択します。
        注:
        テーブル名Jenkins v2 Webhook 回答サブフロー [sn_jenkinsv2_spoke_webhook_answer_subflow] であることを確認します。
    13. [送信] をクリックします。