diff options
Diffstat (limited to 'app/services/merge_requests/base_service.rb')
-rw-r--r-- | app/services/merge_requests/base_service.rb | 38 |
1 files changed, 12 insertions, 26 deletions
diff --git a/app/services/merge_requests/base_service.rb b/app/services/merge_requests/base_service.rb index aaa91548d19..0fc85675e49 100644 --- a/app/services/merge_requests/base_service.rb +++ b/app/services/merge_requests/base_service.rb @@ -4,6 +4,7 @@ module MergeRequests class BaseService < ::IssuableBaseService extend ::Gitlab::Utils::Override include MergeRequests::AssignsMergeParams + include MergeRequests::ErrorLogger delegate :repository, to: :project @@ -175,10 +176,21 @@ module MergeRequests params.delete(:allow_collaboration) end + filter_locked_labels(merge_request) filter_reviewer(merge_request) filter_suggested_reviewers end + # Filter out any locked labels that are requested to be removed. + # Only supported for merged MRs. + def filter_locked_labels(merge_request) + return unless params[:remove_label_ids].present? + return unless merge_request.merged? + return unless Feature.enabled?(:enforce_locked_labels_on_merge, merge_request.project, type: :ops) + + params[:remove_label_ids] -= labels_service.filter_locked_labels_ids_in_param(:remove_label_ids) + end + def filter_reviewer(merge_request) return if params[:reviewer_ids].blank? @@ -260,32 +272,6 @@ module MergeRequests end end - def log_error(exception:, message:, save_message_on_model: false) - reference = merge_request.to_reference(full: true) - data = { - class: self.class.name, - message: message, - merge_request_id: merge_request.id, - merge_request: reference, - save_message_on_model: save_message_on_model - } - - if exception - Gitlab::ApplicationContext.with_context(user: current_user) do - Gitlab::ErrorTracking.track_exception(exception, data) - end - - data[:"exception.message"] = exception.message - end - - # TODO: Deprecate Gitlab::GitLogger since ErrorTracking should suffice: - # https://gitlab.com/gitlab-org/gitlab/-/issues/216379 - data[:message] = "#{self.class.name} error (#{reference}): #{message}" - Gitlab::GitLogger.error(data) - - merge_request.update(merge_error: message) if save_message_on_model - end - def trigger_merge_request_reviewers_updated(merge_request) GraphqlTriggers.merge_request_reviewers_updated(merge_request) end |