パイプライン内での DevOps 変更要求の詳細の構成
パイプラインの変更ステップで、パイプライン内からクローズ情報、変更ステータス、および変更要求フィールドを更新する方法を構成します。
システム変数は、デフォルトでは、ベースシステムの変更を自動的にクローズするためのデフォルトサブフローを指します。[パイプライン完了サブフローでの DevOps 自動変更クローズ] (sn_devops.auto_close_change) は、パイプラインの完了時にクローズ情報、変更ステータス、および変更要求フィールドを更新する方法を決定します。パイプラインの完了時にアクティブ化する必要があるカスタムサブフローを指定する場合は、このサブフローのクローンを作成し、要件に応じてカスタマイズできます。
クローズ情報と変更要求属性は、changeRequestDetails オブジェクトに含まれています。
自動変更クローズ
true に設定すると、[クローズコード] フィールドと [クローズメモ] フィールドが更新され、パイプラインの完了時にシステムは変更要求のクローズを試みます。
false に設定すると、パイプラインが完了したときに [クローズコード] フィールドと [クローズメモ] フィールドが更新されますが、変更要求はクローズされません。
ServiceNow アプリケーションでパイプラインの [自動変更クローズ] フィールド値を設定することもできます。[変更のみ更新] を選択すると、パイプラインが完了したときに [クローズコード] フィールドと [クローズメモ] フィールドが更新され、[変更を更新してクローズ] を選択すると、変更要求もクローズ情報の更新と共にクローズされます。
| 変更要求属性の autoCloseChange フラグ | [自動変更クローズ] 列の値 (sn_devops_pipeline) | 最終状況 |
|---|---|---|
| True | 変更のみ更新 | 変更を更新し、ステータスをクローズに移動します |
| False | 変更を更新してクローズ | 変更の更新のみ |
| - | 変更のみ更新 | 変更の更新のみ |
| - | 変更を更新してクローズ | 変更を更新し、ステータスをクローズに移動します |
- 自動変更クローズ機能は、単一の変更が作成された基本的なパイプラインにのみ適用されます。複数の変更がある場合は、最新の変更が自動クローズで考慮されます。
- 自動変更クローズ機能は、変更受付機能が有効になっている Jenkins フリースタイルパイプラインおよび変更要求ではサポートされていません。
- Azure リリース パイプラインの場合、パイプラインの完了状態は、パイプライン内の各ステージの状態を統合することによって派生します。1 つのステージでも失敗すると、パイプラインは失敗したと見なされます。1 つのステージでも部分的に成功した場合、パイプラインは成功したと見なされますが、問題はあります。
アップグレード情報
アップグレードする場合は、GitHub および Azure ビルドパイプラインの autoCloseChange パラメーターを設定する前に、オーケストレーションツールを再構成する必要があります。
クローズコードを設定
目的の動作に基づいて、setCloseCode: パラメーターを true/false に設定します。デフォルトは true です。
true に設定すると、変更ステップ属性で指定されたとおりに [クローズコード] フィールドと [クローズメモ] フィールドが更新され、ステージが完了したときに変更要求が実装後に移動します。自動クローズコード機能を有効にすることで、この動作を上書きできます。setCloseCode 機能は、autoCloseChange が有効で true または false に設定されている場合、無効になります。詳細については、「自動変更クローズ」を参照してください。より正確な変更要求の詳細を得るには、autoCloseChange 機能を使用します。
false に設定すると、ジョブまたはパイプラインが完了しても変更要求は更新されず、[実装] ステータスのままになります。
- 変更要求のクローズ情報が設定されていません ([クローズコード] フィールドと [クローズメモ] フィールドは空のままです)。
- ステップ実行へのリンクが [作業メモ] に追加されます。
変更要求フィールド
- attributes: パラメーターを使用してフィールド値を設定します。
- DevOps API の DevOps - POST /devops/orchestration/changeControl エンドポイントを使用します。
- 指定したフィールドに必須の依存フィールドがある場合は、その属性も設定する必要があります。
- 依存必須フィールドの属性が設定されていない場合、変更要求と関連するステップの実行はキャンセルされ、作業メモが更新されます。
attributes: パラメーター内のフィールド値は、キーと値のペアです。つまり、キーはテンプレート内のフィールド名で、値はそのフィールドに入力する情報です。
changeControl API を使用して、type、cmdb_ci、template、assignment_group business_service、standard_change_template、chg_model などのフィールドを指定し、変更要求を作成できます。
属性が変更のために渡される場合、優先順位は次のとおりです。
- 変更要求フィールドまたは changeControl API。
- ステップレコードの値。
- 変更要求テンプレートで指定された値。
指定されている場合を除き、変更要求 [change_request] テーブルのすべてのフィールドがサポートされています。
| サポートされていないフィールド |
|
| サポートされているフィールド | 変更要求 [change_request] テーブルの残りのすべてのフィールド。 |
サンプル JSON ペイロード
{
"callbackURL":"http://192.168.0.4:3000/jenkins/sn-devops/pipeline_839b7605-b98d-4831-bc87-96829de7da37",
"orchestrationTaskURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests#deploy/",
"isMultiBranch":"false",
"orchestrationTaskName":"java_sample_tests#deploy",
"orchestrationTaskDetails":{
"triggerType":"upstream",
"upstreamTaskExecutionURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests/129/execution/node/35/wfapi/describe",
"taskExecutionURL":"http://192.168.0.4:3000/jenkins/job/java_sample_tests/129/execution/node/50/wfapi/describe"
},
"changeRequestDetails":{
"setCloseCode":false,
"attributes":{
"sys_created_by":"1832fbe1d701120035ae23c7ce610369",
"sys_updated_by":"56826bf03710200044e0bfc8bcbe5dca",
"requested_by":{
"name":"Abel Tuter"
},
"watch_list":[
{
"name":"Abel Tuter"
},
{
"name":"Aileen Mottern"
},
{
"name":"Alejandra Prenatt"
},
"56826bf03710200044e0bfc8bcbe5dca"
],
"work_notes_list":[
"56826bf03710200044e0bfc8bcbe5dca",
"46c6f9efa9fe198101ddf5eed9adf6e7",
"d8f57f140b20220050192f15d6673a98"
],
"assigned_to":"1832fbe1d701120035ae23c7ce610369",
"category":"Service",
"sys_created_on":"2021-02-09 18:58:41",
"priority":"2",
}
}
}