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 を使用します。詳細については、「汎用 Docker コンテナイメージを使用したパイプラインのカスタムアクションの実装」を参照してください。
- 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'