DevOps 変更プロセスの促進
パイプラインで変更要求を自動的に作成するために DevOps 変更速度管理の変更の促進機能を有効にし、変更承認フローとポリシーを使用して特定の条件下で承認を自動化します。
アクティブな変更要求の詳細を表示するには、次に移動します .
変更制御プロセス
DevOps 開発パイプラインのジョブに対して変更管理が有効になると、変更要求にアサイン先グループが追加されている場合、変更要求が自動的に作成され、現在のステージまたはジョブの実行の承認を要求するために [評価] ステータスに設定されます。変更要求は、変更承認ポリシーで条件を設定することで自動的に承認できます。
パイプラインステップは、変更受領書を有効にするように構成できます。変更受領書は、パイプラインを一時停止しません。変更受領書を有効にして作成された変更要求には、すべてのパイプラインデータが含まれますが、パイプラインを続行するために承認は必要なく、変更要求は [実装後 (post implement)] ステータスになります。変更受領書を有効にせずに作成された変更要求の場合、変更要求が承認されるまでパイプラインは一時停止され、承認されるとパイプラインが再開されます。
変更受領書がオンになっていても変更要求の状況の自動移行を停止したい場合は sn_devops.enable_change_receipt_state_transition プロパティを無効にする必要があります。詳細については、「DevOps 変更速度管理のプロパティ」を参照してください。
自動または手動で承認されると、変更要求は [実装] ステータスに移行し、ジョブが実行されます。ジョブが実行されると、変更要求は [クローズ済み] ステータスに移行し、ジョブ実行が成功した場合はクローズコードが [成功]、ジョブ実行のエラーの場合は [不成功] になります。変更要求の状況のカスタマイズについては、「カスタム変更要求プロセス」を参照してください。
変更要求が承認されず、[キャンセル済み] または [クローズ済み] ステータスに移行した場合、関連する Jenkins、GitHub、または ADO ジョブは失敗としてマークされ、コンソールメッセージが表示されます。
Jenkins の場合:[ServiceNow DevOps] ジョブの実行が承認されませんでした ([ServiceNow DevOps] Job was not approved for execution)
GitHub の場合:エラー:**** 変更が作成されましたが、変更は却下またはキャンセルされました (Error: **** Change has been created but the change is either rejected or cancelled)
ADO の場合:"changeState":"Closed"
フローとポリシーを使用した変更要求の自動承認
すべての DevOps 変更要求の変更承認プロセスを自動化できます。DevOps 変更速度管理は、フローと DevOps データ (作業アイテム、コミット、コードカバレッジ、コードセキュリティ、リスク、テスト結果など) を使用して変更要求のステータスを更新し、変更承認ポリシーに基づいて自動的に承認します。ベースシステムでは、(フローデザイナーで) クローンの作成、カスタマイズ、およびアクティブ化できる 3 つのフローを利用できます。デフォルトでは、DevOps 変更要求の手動承認フロー (DevOps Change Request Manual Approval Flow) がアクティブ化されています。DevOps フローは、自動的に作成された変更要求、または変更受付がオフになっている変更要求にのみ適用されます。
フロー
フローは、トリガー (フローを実行するタイミングを指定する) と一連の再利用可能なアクション (アクションがデータに対して一連の操作を実行する) で構成される自動化されたプロセスです。フローは、プロセスの自動化を可能にする ServiceNow AI Platform 機能であるフローデザイナーに組み込まれています。詳細については、「Flow Designer」を参照してください。
ベースシステムで利用可能な DevOps フローの 1 つをテンプレートとして使用できます。フローをクローンし、ビジネス要件に合わせてカスタマイズします。競合やエラーを回避するために、常に 1 つの DevOps フローのみが [アクティブ] ステータスになるようにします。DevOps フローは、DevOps カテゴリを含む変更要求、または devops_change プロパティが [true] に設定されている場合に適用されます。(自動的に作成された DevOps 変更要求では、カテゴリはデフォルトで [DevOps] に設定されます)。
- DevOps 変更要求が承認されると、フローはステップ実行ステータスを [承認済み] に更新し、変更要求ステータスが [実装] に更新されます。その後、パイプラインが再開されます。
- DevOps 変更要求が承認されると、フローはステップ実行ステータスを [却下] に更新し、変更要求ステータスが [新規] に更新されます。その後、パイプラインが停止されます。
- DevOps 変更要求が承認されると、フローはステップ実行ステータスを [ユーザーによってキャンセル済み] に更新し、変更要求ステータスが [キャンセル済み] に更新されます。その後、パイプラインがキャンセルされます。
DevOps 変更要求の手動承認フロー (DevOps Change Request Manual Approval Flow)、DevOps 変更要求の最小限の自動化承認フロー (DevOps Change Request Minimal Automation Approval Flow)、または DevOps 変更要求の高度な自動化承認フロー (DevOps Change Request Advanced Automation Approval Flow) の変更の更新中にビジネスルールやデータポリシーによって問題が発生した場合に、変更要求の作業メモおよびパイプラインツールのコンソールログで、変更要求に対応するエラーを表示します。
| DevOps フロー | デフォルト動作 |
|---|---|
| DevOps 変更要求の手動承認フロー (DevOps Change Request Manual Approval Flow) | このフローは、デフォルトでアクティブ化されています。このフローでは、DevOps 変更要求は手動承認プロセスを経る必要があり、このプロセスでは、フローは変更要求が適格なステータス ([却下]、[実装済み]、または特定の実装ステータス) に達するまで待機します。到達すると、このフローは変更要求のステータスに基づいてステップ実行ステータスを更新します。 変更要求がタイプベースの場合、フローは変更が却下、実装、またはキャンセルされるまで待機します。変更要求がモデルベースの場合、フローは、変更が却下またはキャンセルされるか、モデルで定義された実装ステータスまたは DevOps プロパティで指定された実装ステータスのいずれかに達するまで待機します。競合やエラーを回避するために、モデルがベースシステムの DevOps 変更モデル ([DevOps] または [DevOps の簡素化]) である DevOps 変更要求に対しては、このフローはトリガーされません。 このフローをクローンし、カスタマイズして変更を加えることができます。他の DevOps フローが非アクティブ化されていることを確認します。 |
| DevOps 変更要求の最小限の自動化承認フロー (DevOps Change Request Minimal Automation Approval Flow) | このフローは DevOps データを収集し、DevOps 変更要求の最小限の自動化ポリシー (DevOps Change Request Minimal Automation Approval Flow) を実行します。これにより、変更を自動却下するか、自動承認するか、手動承認のために送信するかを決定します。このフローは、タイプまたはモデルが通常に設定されている DevOps 変更要求に対してトリガーされます。 変更要求の承認を自動化する必要があるものの、最小限で開始する場合は、このフローをアクティブ化します。 このフローをクローンし、カスタマイズして変更を加えることができます。他の DevOps フローが非アクティブ化されていることを確認します。 [DevOps:最小限の自動化ポリシー決定理由を更新] アクションをこのフローに追加して、ポリシー決定をステップ実行変更コメントと変更要求作業メモに更新し、決定の理由を確認することもできます。このアクションをすべての意思決定ブロック内に追加し、必要な入力を指定できます。 |
| DevOps 変更要求の高度な自動化承認フロー (DevOps Change Request Advanced Automation Approval Flow) | このフローは DevOps データを収集し、DevOps 変更要求の高度な自動化ポリシー (DevOps Change Request Advanced Automation Approval Flow) を実行します。これにより、変更を自動却下するか、自動承認するか、手動承認のために送信するかを決定します。このフローは、タイプまたはモデルが通常に設定されている DevOps 変更要求に対してトリガーされます。 DevOps 変更要求が承認されると、フローによって変更要求が [スケジュール済み] ステータスに更新され、開始予定日を使用して変更要求の開始日が設定されます。変更要求の開始日に、フローは変更要求ステータスを [実装] に更新します。その後、パイプラインが再開されます。強力な変更ポリシーを使用して変更要求の承認を自動化する場合は、このフローをアクティブ化します。 このフローをクローンし、カスタマイズして変更を加えることができます。他の DevOps フローが非アクティブ化されていることを確認します。 |
| DevOps デモ変更自動化 (DevOps Demo Change Automation) フロー | デモデータがインストールされると、DevOps デモ変更自動化フロー (DevOps Demo Change Automation) が利用可能になり、通常のタイプの変更要求または通常のモデルの変更要求を決定ポリシーに基づいて自動承認できます。デモデータの一部として、以下の利用可能な決定方針があります。
|
フロー、サブフロー、およびアクションをより効果的に使用する方法に関するガイドラインについては、「General guidelines for Workflow Studio flows, subflows, and actions」を参照してください。
変更承認ポリシー
- ポリシー入力:条件内で評価される変数ソース。
- 決定:条件に基づいて、変更承認定義を適用する必要があるかどうかを決定します。
- 承認定義:適用できる承認のタイプを定義します。
- DevOps モデル変更 (DevOps Model Change) ポリシー
- DevOps 変更要求の最小限の自動化 (DevOps Change Request Minimal Automation) ポリシー
- DevOps 変更要求の高度な自動化 (DevOps Change Request Advanced Automation) ポリシー
変更承認ポリシーの詳細については、「変更承認ポリシー」を参照してください。
DevOps 自動承認フローでは、変更承認ポリシーと DevOps データ (作業アイテム、コミット、プル要求、テストサマリー、セキュリティサマリー、品質サマリーなど) を使用して、変更レコードステータスとステップ実行ステータスを [承認済み]、[却下]、または [キャンセル] に自動的に更新します。これらのポリシーは、ビジネス要件に基づいて表示および編集することも、ディシジョンテーブルで独自のポリシーを作成することもできます。次のディシジョンテーブルを参照してください。
DevOps 変更要求の最小限の自動化 (DevOps Change Request Minimal Automation) ポリシーには、デフォルトで次の条件と基準があります:
DevOps 変更要求の高度な自動化 (DevOps Change Request Advanced Automation) ポリシーには、デフォルトで次の条件と基準があります:
- 自動承認:ポリシーで指定された条件が満たされた場合、変更要求は自動的に承認されます。
- 自動却下:ポリシーで指定された条件が満たされなかった場合、変更要求は自動的に却下されます。
- 手動承認:1 つ以上の条件がユーザーまたはグループによる手動承認を必要とする場合、それはポリシーで指定されています。手動承認を迅速化し、変更要求を進行させるために、ポリシーによって関連するユーザーまたはグループに通知が送信されます。
変更承認ポリシーを変更管理ワークフロースタジオのアクションに適用して、変更要求の承認プロセスを制御します。詳細については、「[変更承認ポリシーの適用 (Apply Change Approval Policy)] フローアクションの使用」を参照してください。
変更承認作業メモ
フローと変更承認ポリシーに基づいて変更要求が更新されると、変更要求に関連付けられた作業メモが次のいずれかのハードコードされたメッセージに更新されます。
- 変更承認ポリシーが見つかりませんでした。変更の要求は却下されました (%s)。
- %s はアクティブではありません。変更の要求は却下されました (%s)。
- 一致する決定がありません。%s がスキップされました (%s) 。
- 一致する決定から承認が生成されませんでした。%s がスキップされました (%s)。
- 変更の要求が %s (%s) によって却下されました。
- 変更の要求が %s (%s) によって承認されました。
if (APPROVED.equals(state))
38 message = String.format(APPROVED_MSG, policyName, actionLabel);デフォルトの変更ハンドラーサブフロー
- 要求者
- 理由
- 実装計画
- バックアウトプラン
- テスト計画
- 簡単な説明
- 説明
- 開始日
- 終了日
- リスク影響度の分析 (Risk Impact Analysis)
デフォルトの変更ハンドラー (Default Change Handler) サブフローは、変更要求レコードの作成時にテンプレートを使用して入力されたフィールド値をオーバーライドします。
必要に応じて、 [sn_devops.change_request_handler_subflow] DevOps プロパティ.
カスタム変更要求テンプレート
変更要求のタイプは、グローバルスコープの変更要求テーブルに対応します。
[自動変更要求 (Automatic change request)] 関連リスト
- コミット
- 変更要求に関連付けられたコミット。
- 作業アイテム
- 変更要求に関連付けられた作業アイテム。
- アーティファクトバージョン
変更要求が承認される前に作成されたパッケージのパイプライン実行にリンクされているパッケージに関連付けられているアーティファクトバージョンのリスト。
パイプライン実行にリンクされているパッケージがない場合、リストは空になります。
- テストサマリー ([テスト結果] 関連リストを置き換えます)
変更要求前のアーティファクト、パッケージ、またはタスクの実行に関連付けられたパイプライン実行のテストサマリーのリスト。
詳細については、「テスト結果」を参照してください。
- ソフトウェア数量サマリー
- 変更要求前のアーティファクト、パッケージ、またはタスク実行に関連付けられたパイプライン実行のソフトウェア品質サマリーのリスト。
- セキュリティのサマリー
- 変更要求前のアーティファクト、パッケージ、またはタスク実行に関連付けられたパイプライン実行のセキュリティサマリーのリスト。注:リンクされたパッケージを含むパイプライン実行に関連付けられた変更レコードのセキュリティスキャン結果は、[セキュリティサマリー] タブにも表示されます。
カスタム変更要求プロセス
これらの DevOps 変更プロパティを使用して、変更要求フローをカスタマイズできます。
- DevOps 変更要求の実装ステータス
- DevOps 変更要求の実装後ステータス
- DevOps 変更要求のキャンセルステータス
- DevOps 変更要求の承認テキスト
変更要求フローをカスタマイズするには、まず . たとえば、[DevOps_Implement (value - 10)] です。
次に、選択リストを次に追加します .
選択リストを作成してスクリプトインクルードに追加したら、DevOps 変更プロパティを新しい選択リスト値で更新できます。たとえば、DevOps change request implement state [-10] です。
DevOps リスク条件
コミット担当者のリスクスコアに基づく DevOps リスクとインパクトカリキュレーションを使用できます。
この条件は、デフォルトでは非アクティブです。
[テスト結果] 関連リスト
パッケージの作成後にパイプラインで実行されたテストを一覧表示します。パッケージが作成されなかった場合、リストにはアーティファクトバージョンの作成後に実行されたテストが含まれます。
シナリオ:
- パイプラインにパッケージが作成されますが、アーティファクトバージョンは登録されません。
- パッケージ作成ステージで変更要求が作成された場合:
パッケージがまだパイプライン実行にリンクされていないため、テスト結果は表示されません。
- パッケージ作成ステージの後のステージで変更要求が作成された場合:
ビルド テストの概要には、パッケージ作成ステージの後、変更管理されたステージまでのステージに関連付けられているものが含まれます。
- パッケージ作成ステージで変更要求が作成された場合:
- アーティファクトバージョンは登録されますが、パッケージは作成されません。
- アーティファクトバージョンで変更要求が作成された場合:
タスクの実行が完了するまでテストが関連付けられないため、テスト結果は表示されません。
- アーティファクトバージョンステージの後のステージで変更要求が作成された場合:
ビルドテストの概要には、アーティファクトバージョンステージ、ならびにその後のステージ、変更管理されたステージまでのステージに関連付けられているものが含まれます。
- アーティファクトバージョンで変更要求が作成された場合:
- アーティファクトバージョンとパッケージの両方がパイプラインに作成されます。
- 変更要求がアーティファクトバージョンステージおよびパッケージ作成ステージの一部である場合:
ビルドテストの概要には、パッケージ作成ステージ、ならびにその後のステージ、変更管理されたステージまでのステージに関連付けられているものが含まれます。
- 変更要求がパッケージ作成ステージの一部であり、アーティファクトバージョンステージがそれ以前のステージの一部として作成されている場合、
- または変更要求が (パッケージ作成ではなく) アーティファクトバージョンステージの後、パッケージ作成ステージの前のステージで作成されている場合、
- または変更要求がパッケージ作成ステージの一部であり、アーティファクトバージョンステージがそれ以前のステージの一部として作成されている場合:
ビルドテストの概要には、アーティファクトバージョンステージ、ならびにその後のステージ、変更管理されたステージまでのステージに関連付けられているものが含まれます。
- 変更要求がアーティファクトバージョンステージおよびパッケージ作成ステージの一部である場合:
[パイプライン実行] ビュー
パイプラインアクティビティを表示するには、次に移動します .