diff options
Diffstat (limited to 'app/services/auto_merge/base_service.rb')
-rw-r--r-- | app/services/auto_merge/base_service.rb | 25 |
1 files changed, 7 insertions, 18 deletions
diff --git a/app/services/auto_merge/base_service.rb b/app/services/auto_merge/base_service.rb index d0fde43138a..467a4ed2621 100644 --- a/app/services/auto_merge/base_service.rb +++ b/app/services/auto_merge/base_service.rb @@ -61,15 +61,19 @@ module AutoMerge merge_request.can_be_merged_by?(current_user) && merge_request.open? && !merge_request.broken? && - (skip_draft_check(merge_request) || !merge_request.draft?) && - (skip_discussions_check(merge_request) || merge_request.mergeable_discussions_state?) && - (skip_blocked_check(merge_request) || !merge_request.merge_blocked_by_other_mrs?) && + overrideable_available_for_checks(merge_request) && yield end end private + def overrideable_available_for_checks(merge_request) + !merge_request.draft? && + merge_request.mergeable_discussions_state? && + !merge_request.merge_blocked_by_other_mrs? + end + # Overridden in child classes def notify(merge_request) end @@ -109,20 +113,5 @@ module AutoMerge def track_exception(error, merge_request) Gitlab::ErrorTracking.track_exception(error, merge_request_id: merge_request&.id) end - - # Will skip the draft check or not when checking if strategy is available - def skip_draft_check(merge_request) - false - end - - # Will skip the blocked check or not when checking if strategy is available - def skip_blocked_check(merge_request) - false - end - - # Will skip the discussions check or not when checking if strategy is available - def skip_discussions_check(merge_request) - false - end end end |