From 70a06f0f384b1f9fe535e3fea4d5d71c7f6f85b8 Mon Sep 17 00:00:00 2001 From: Marc Shaw Date: Fri, 11 Jul 2025 11:29:00 +0200 Subject: [PATCH] wip --- ee/app/services/auto_merge/merge_train_service.rb | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/ee/app/services/auto_merge/merge_train_service.rb b/ee/app/services/auto_merge/merge_train_service.rb index adec14b9b6d858..66043b60418c43 100644 --- a/ee/app/services/auto_merge/merge_train_service.rb +++ b/ee/app/services/auto_merge/merge_train_service.rb @@ -73,9 +73,11 @@ def availability_details(merge_request) pipeline = merge_request.diff_head_pipeline next AutoMerge::AvailabilityCheck.error(unavailable_reason: :missing_diff_head_pipeline) unless pipeline + next AutoMerge::AvailabilityCheck.success if pipeline.merge_train_pipeline? && !merge_request.on_train? + # When pipelines are not required to succeed, we also allow blocked and # canceling pipelines, because otherwise the only merge action would be an immediate merge. - if pipeline.complete? || + if (merge_request.only_allow_merge_if_pipeline_succeeds? && pipeline.success?) || (!merge_request.only_allow_merge_if_pipeline_succeeds? && (pipeline.canceling? || pipeline.blocked?)) next AutoMerge::AvailabilityCheck.success end @@ -100,7 +102,8 @@ def skippable_available_for_checks(merge_request) AutoMergeService::STRATEGY_ADD_TO_MERGE_TRAIN_WHEN_CHECKS_PASS super.merge( - skip_conflict_check: skip_conflict_check + skip_conflict_check: skip_conflict_check, + skip_ci_check: true ) end -- GitLab