Commit e5ef2d82 authored by Lin Jen-Shin's avatar Lin Jen-Shin

Unify app/services/merge_requests/merge_service.rb

parent 88477c19
......@@ -36,31 +36,6 @@ module MergeRequests
handle_merge_error(log_message: e.message, save_message_on_model: true)
end
def hooks_validation_pass?(merge_request)
@merge_request = merge_request
return true if project.merge_requests_ff_only_enabled
return true unless project.feature_available?(:push_rules)
push_rule = merge_request.project.push_rule
return true unless push_rule
unless push_rule.commit_message_allowed?(params[:commit_message])
handle_merge_error(log_message: "Commit message does not follow the pattern '#{push_rule.commit_message_regex}'", save_message_on_model: true)
return false
end
unless push_rule.author_email_allowed?(current_user.email)
handle_merge_error(log_message: "Commit author's email '#{current_user.email}' does not follow the pattern '#{push_rule.author_email_regex}'", save_message_on_model: true)
return false
end
true
rescue PushRule::MatchError => e
handle_merge_error(log_message: e.message, save_message_on_model: true)
false
end
private
def error_check!
......
......@@ -23,6 +23,33 @@ module EE
end
end
def hooks_validation_pass?(merge_request)
# handle_merge_error needs this. We should move that to a separate
# object instead of relying on the order of method calls.
@merge_request = merge_request # rubocop:disable Gitlab/ModuleWithInstanceVariables
return true if project.merge_requests_ff_only_enabled
return true unless project.feature_available?(:push_rules)
push_rule = merge_request.project.push_rule
return true unless push_rule
unless push_rule.commit_message_allowed?(params[:commit_message])
handle_merge_error(log_message: "Commit message does not follow the pattern '#{push_rule.commit_message_regex}'", save_message_on_model: true)
return false
end
unless push_rule.author_email_allowed?(current_user.email)
handle_merge_error(log_message: "Commit author's email '#{current_user.email}' does not follow the pattern '#{push_rule.author_email_regex}'", save_message_on_model: true)
return false
end
true
rescue PushRule::MatchError => e
handle_merge_error(log_message: e.message, save_message_on_model: true)
false
end
private
def check_size_limit
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment