GitLab プル要求構成
GitLab 本番環境に移行する前に変更の促進を経るプル (マージ) 要求パイプラインの実行は、 DevOps チェンジベロシティ で追跡できます。この統合では、DevOps チェンジベロシティに保持する結合要求メタデータも収集GitLab。データは、結合要求パイプラインの実行で作成された変更にリンクされ、変更ポリシーの適用、レビュー、および承認に使用できます。
- プル要求の作成、更新、クローズ、再オープン、およびマージがサポートされています。
- GitLabパイプラインでの変更を促進するためのプル要求パイプラインの実行がサポートされています。プル要求の詳細は、変更承認ポリシーで使用できます。
- パイプラインのステータス GitLab 、変更の作成後にプル要求のステータスで自動的に更新されます。パイプラインは自動的に一時停止され、再開されます。
- メール ID のデフォルトは <user_name>@noreply.gitlab.com 形式です。
- コメントは、結合要求サポートの一部としてサポートされています。プル要求の作成と更新はサポートされていますが、削除と編集はサポートされていません。
- 最大 100 件のコミットが DevOps チェンジベロシティに表示されます。100 を超えるインスタンスにアクセスする必要がある場合は、 GitLab インスタンスを参照する必要があります。最新のコメントのみが入力されます。
変更承認のプル (マージ) 要求を有効にする設定
DevOps プロパティ GitLab プル (マージ) 要求の追跡を有効にします。有効になっていない場合、プル (マージ) 要求と関連イベントは無視されDevOps チェンジベロシティ内のGitLabからのプル (マージ) 要求の追跡が有効になります。
注:
このプロパティはデフォルトで有効になっています。マージ (プル) 要求を追跡しない場合は、無効にする必要があります。
有効にすると、プル (マージ) 要求の変更が DevOps チェンジベロシティに反映されます。無効にすると、 DevOps チェンジベロシティ はプル要求イベントを無視します。
プル要求とオーケストレーションパイプラインをリンクし、変更承認追跡を有効にするには、次のものが必要です。
- 変更 GitLab 追跡には Docker を使用します。詳細については、「ServiceNow のカスタムアクション GitLab」を参照してください。
- GitLabプロジェクトから、
- 移動先
- GitLab クラウドの場合: .
- オンプレミス (13.x) の場合: .
- [ パイプラインが成功する必要がある (Pipelines must succeed )] チェックボックスをオンにします。
この選択により、変更が承認された場合にのみ、結合要求を続行できます。つまり、チェックボックスをオンにすると、変更が承認されるまでプル要求がブロックされます。
- [変更内容を保存] を選択します。
- 移動先
- プロジェクトに移動し、 .yml ファイルを開きます。.ymlファイルに、パイプライン レベルまたは特定のジョブ レベルで次のルールを追加します。
rules: - if: $CI_PIPELINE_SOURCE == 'merge_request event' - if: $CI_PIPELINE_SOURCE != 'merge_request_event'パイプラインレベルの例:
workflow: rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE != 'merge_request_event'ジョブレベルの例:
changeapproval: stage: changeapproval script: - sndevopscli create change -p '{"changeStepDetails":{"timeout":3600,"interval":100},"attributes":{"short_description":"Automated Software Deployment","description":"Automated Software Deployment.","assignment_group":"a715cd759f2002002920bde8132e7018","implementation_plan":"Software update is tested and results can be found in Test Summaries Tab.","backout_plan":"When software fails in production, the previous software release will be re-deployed.","test_plan":"Testing if the software was successfully deployed or not"}}' rules: - if: $CI_PIPELINE_SOURCE == 'merge_request_event' - if: $CI_PIPELINE_SOURCE != 'merge_request_event'