GitHub マーケットプレイスからの ServiceNow DevOps カスタムアクション

  • リリースバージョン: Yokohama
  • 更新日 2025年01月30日
  • 所要時間:11分
  • GitHubマーケットプレイスのカスタムアクションを使用して、SonarQube スキャンデータ、セキュリティデータの収集、ワークフローの一時停止または再開、インスタンスで変更要求が承認または却下されるまでのワークフローの再開、変更要求の詳細の取得と更新などを行います。

    または、Docker コンテナー イメージを使用して、 GitHub Actions パイプラインのカスタム アクションを実装することもできます。詳細については、「汎用 Docker コンテナイメージを使用したパイプラインのカスタムアクションの実装」を参照してください。

    ServiceNow DevOps SonarQube カスタムアクション

    ワークフロー実行によって開始されたプロジェクトの SonarQube スキャン結果を ServiceNow インスタンスに保存します。インスタンスで SonarQube ツールを作成し、ワークフロー内のジョブのステップレベルで ServiceNow DevOps SonarQube カスタムアクションを使用する必要があります。

    次のいずれかの方法を使用して、SonarQube 分析結果を表示します。
    • 次のように移動する。 DevOps > ソフトウェア品質結果 > ソフトウェア数量サマリー.
    • 次のように移動する。 DevOps > 調整 > タスク実行 関連する タスク実行 レコードを選択します。
    カスタムアクションを使用するには、次のタスクを実行します。
    • インスタンスで SonarQube ツールを作成します。

      トークンの生成元 ユーザー > アカウント情報 > Security (セキュリティ) ページを作成し、生成されたトークンを使用して ServiceNow インスタンスにツールを作成します。詳細については、「DevOps チェンジベロシティへのオンボーディングSonarQube - ワークスペース」と「DevOps チェンジベロシティ へのオンボードSonarQube - クラシック」を参照してください。

    • 次のシークレットを作成して、SonarQube スキャン結果を ServiceNow インスタンスに保存します。
      • SONAR_HOST_URL:SonarQube インスタンスの URL。例: https://sonarcloud.io
      • SONAR_PROJECT_KEY:SonarQube インスタンスでプロジェクトを識別するためのキー。例: org.examples:demo
    • ワークフローで ServiceNow DevOps SonarQube カスタムアクションを構成します。

      カスタムアクション servicenow-devops-sonar は、 uses キーワードを使用してワークフロー内のジョブのステップレベルで構成する必要があります。SonarQube 分析結果を ServiceNow インスタンスに保存するために、このカスタムアクションの入力を変更しないでください。詳細については、「 ServiceNow DevOps Sonar」を参照してください。

    ServiceNow DevOps テストレポートカスタムアクション

    ワークフロー実行によって開始されたプロジェクトの単体テスト結果を ServiceNow インスタンスに保存します。ServiceNow DevOpsテストレポートカスタムアクションは、ワークフローのジョブのステップレベルで使用する必要があります。

    に移動して、 ServiceNow インスタンスに保存された単体テスト結果を表示します。 DevOps > テスト結果 > テストサマリー.

    移動して表示することもできます DevOps > 調整 > タスク実行 をクリックし、関連する タスク実行 レコードをクリックします。

    カスタムアクションを使用するには、次のタスクを実行します。
    • GitHubリポジトリにシークレットを作成します。
    • ワークフローで [ DevOps テストレポート] カスタムアクションを設定します。

      カスタムアクション servicenow-devops-test-report は、 uses キーワードを使用してワークフロー内のジョブのステップレベルで構成する必要があります。単体テスト結果を ServiceNow インスタンスに保存するために、このカスタムアクションの入力を変更しないでください。詳細については、「 ServiceNow DevOps テストレポート」を参照してください。

    ServiceNow DevOps の [アーティファクトの登録] カスタムアクション

    ワークフロー実行によって作成または展開されたアーティファクトを ServiceNow インスタンスに保存します。ワークフローのジョブのステップレベルで ServiceNow DevOps Register Artifact カスタムアクションを使用します。

    に移動すると、インスタンスに保存されたアーティファクトの詳細が表示されます。 DevOps > アーティファクト > アーティファクト.

    カスタムアクションを使用するには、次のタスクを実行します。
    • GitHubリポジトリにシークレットを作成します。
    • ワークフローで [アーティファクト ServiceNow DevOps 登録] カスタムアクションを構成します。

      カスタムアクション servicenow-devops-register-artifact は、 uses キーワードを使用してワークフローのジョブのステップレベルで構成する必要があります。アーティファクトの詳細をインスタンスに保存するために、このカスタムアクションの入力を変更しないでください。詳細については、「 ServiceNow DevOps でアーティファクトを登録」を参照してください。

    ServiceNow DevOps パッケージ登録カスタムアクション

    ServiceNowインスタンスでワークフロー実行によって作成または展開されたパッケージを保存します。ワークフロー内のジョブのステップレベルで [ ServiceNow DevOps パッケージの登録] カスタムアクションを使用します。

    に移動して、 ServiceNow インスタンスに保存されたパッケージの詳細を表示します DevOps > アーティファクト > パッケージ.

    カスタムアクションを使用するには、次のタスクを実行します。
    • GitHubリポジトリにシークレットを作成します。
    • ワークフローで [アーティファクト ServiceNow DevOps 登録] カスタムアクションを構成します。

      カスタムアクション servicenow-devops-register-package は、 uses キーワードを使用してワークフローのジョブのステップレベルで構成する必要があります。アーティファクトの詳細をインスタンスに保存するために、このカスタムアクションの入力を変更しないでください。詳細については、「 ServiceNow DevOps でパッケージを登録」を参照してください。

    ServiceNow DevOps Change Automation カスタムアクション

    ServiceNowインスタンスで変更要求を作成して、ServiceNowインスタンスからのワークフロー実行を一時停止および再開します。

    ワークフロー内のジョブのステップレベルで [ ServiceNow DevOps 変更自動化] カスタムアクションを使用します。しきい値 (changeCreationTimeOut) で指定された期間内に変更が作成されず、 abortOnChangeCreationFailure パラメーターが有効になっている場合、パイプラインは中止されます。

    このカスタムアクションは、ServiceNowで変更要求を作成し、[変更コントロール] オプションを有効にし、変更が承認または却下されるか、またはタイムアウトしきい値 (タイムアウト) に達するまで、変更ステータスの定義された時間間隔でServiceNowインスタンスをポーリングします。タイムアウトしきい値に達し、abortOnChangeStepTimeout パラメーターが有効になっている場合、GitHubワークフローの実行を中止します。GitHub Actions コンソール:ステップタイムアウトの変更

    このカスタムアクションは、ServiceNowインスタンスで変更が承認または却下されるのを待たずに、ServiceNow中のパイプラインで変更受領書が有効になっている場合、ワークフローの実行をすぐに再開します。

    に移動すると、 ServiceNow インスタンスでワークフロー実行に対して作成された変更が表示されます。 DevOps > 調整 > パイプライン変更要求.

    ステータスが pending_decision の変更番号は、ServiceNow インスタンスの変更ステータスをポーリングしている間に GitHub Actions コンソールに表示されます。変更コメント、承認者、承認日、ステータスなどの詳細は、ServiceNowインスタンスでユーザーによって変更が承認、却下、またはキャンセルされた後GitHubアクションコンソールに記録されます。GitHub Actions コンソール:承認された変更

    パイプラインのコンソールログに移動して変更要求のステータスを表示できます 変更要求が作成されると、ポーリング時間間隔に従って変更の詳細が表示されます。変更要求ステータスに関連付けられたポリシー条件も評価され、ログに表示されます。たとえば、DevOps 変更要求の高度な自動化ポリシーがアクティブ化されている場合、ポリシー条件が評価され、対応する決定 (自動承認/自動却下/手動承認) がログに表示されます。

    次の変更要求の詳細が表示されます。
    • 番号
    • details
    • ステータス
    • sys_id
    • type
    • risk
    • priority
    • changeState
    • plannedStartDate
    • plannedEndDate
    • 変更要求 URL

    GitHub パイプラインコンソールログでステータスを変更

    注:
    changeState は変更要求のステータスで、 status はステップ実行のステータスです。
    ポリシー条件のログは、ベースシステムの変更フローについて次のように表示されます。
    • DevOps モデル変更ポリシー:変更の作成時および変更ステータスが更新されたときに、ログのみが表示されます。
    • DevOps 変更要求最小自動化ポリシー:変更の決定および変更の決定に対応するポリシー条件とともにログが表示されます。
    • DevOps 変更要求の高度な自動化ポリシー:変更の決定および変更の決定に対応するポリシー条件とともにログが表示されます。
    変更ポリシーの入力と意思決定条件は、意思決定 [sys_decision_question] テーブルに保存されます。次のフィールドと演算子をポリシー条件の入力として使用すると、ログが表示されます。
    フィールド
    • code_coverage
    • commits_without_work_item
    • integration_tests_failed
    • load_tests_failed
    • regression_tests_failed
    • num_of_outages_in_last_7_days
    • num_of_current_outages
    • num_of_open_incidents
    • total_num_of_commits
    • tests_passing_percent
    • risk
    • code_security
    • commits
    演算子
    • 次の値以下 (<=)
    • 次の値以上 (>=)
    • 次の値と異なる (!=)
    • 次の値と等しい (=)
    • <
    • >
    • ISNOTEMPTY
    • ISEMPTY
    • 次の間
    • ANYTHING
    • NSAMEAS
    • SAMEAS
    • GT_FIELD
    • LT_FIELD
    注:
    ベースシステムフィールド以外の変更ポリシーでフィールドが変更された場合、ポリシー条件を評価するには、それらのフィールドをフローに手動で追加する必要があります。
    カスタムアクションを使用するには、次のタスクを実行します。
    • GitHubリポジトリにシークレットを作成します。
    • ワークフロー ServiceNow DevOps [変更の自動化] カスタムアクションを構成します。

      カスタムアクション servicenow-devops-change は、 uses キーワードを使用してワークフローのジョブのステップレベルで構成する必要があります。インスタンスに変更を作成し、変更ステータスをポーリングするために、このカスタムアクションの入力を改ざんしないようにしてください。詳細については、「 ServiceNow DevOps Change Automation」を参照してください。

    ServiceNow DevOps で変更 Github アクションを取得

    特定の変更の詳細に基づいて、GitHub Actions パイプラインで変更要求番号を取得します。

    変更の詳細を指定して ServiceNow インスタンスから変更要求番号を取得するには、ServiceNow DevOps 変更取得 GitHub アクション カスタムアクションをパイプラインジョブのステップレベルで追加する必要があります。

    ServiceNow DevOps で変更 GitHub アクションを更新

    GitHub Actions パイプラインに関連付けられた変更要求の詳細を更新します。

    ServiceNow インスタンスで変更要求を更新するには、パイプラインジョブのステップレベルで [ ServiceNow DevOps 変更 GitHub アクションの更新 (Update Change Github Action )] カスタムアクションを追加する必要があります。詳細を更新する必要がある変更要求番号と、更新する変更要求の詳細を入力として指定する必要があります。

    ServiceNow DevOps セキュリティ結果アクション

    ServiceNow でセキュリティスキャン結果を取得します。

    ServiceNow でセキュリティスキャン結果を取得するには、 ServiceNow DevOps セキュリティ結果アクション カスタムアクションをパイプラインジョブのステップレベルで追加する必要があります。