Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/merge_requests/base_service.rb')
-rw-r--r--app/services/merge_requests/base_service.rb38
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