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/issues/base_service.rb')
-rw-r--r--app/services/issues/base_service.rb34
1 files changed, 33 insertions, 1 deletions
diff --git a/app/services/issues/base_service.rb b/app/services/issues/base_service.rb
index 72e906e20f1..1c50bb74176 100644
--- a/app/services/issues/base_service.rb
+++ b/app/services/issues/base_service.rb
@@ -29,7 +29,7 @@ module Issues
gates = [issue.project, issue.project.group].compact
return unless gates.any? { |gate| Feature.enabled?(:rebalance_issues, gate) }
- IssueRebalancingWorker.perform_async(nil, issue.project_id)
+ IssueRebalancingWorker.perform_async(nil, *issue.project.self_or_root_group_ids)
end
private
@@ -38,6 +38,7 @@ module Issues
super
params.delete(:issue_type) unless issue_type_allowed?(issue)
+ filter_incident_label(issue) if params[:issue_type]
moved_issue = params.delete(:moved_issue)
@@ -82,6 +83,37 @@ module Issues
def issue_type_allowed?(object)
can?(current_user, :"create_#{params[:issue_type]}", object)
end
+
+ # @param issue [Issue]
+ def filter_incident_label(issue)
+ return unless add_incident_label?(issue) || remove_incident_label?(issue)
+
+ label = ::IncidentManagement::CreateIncidentLabelService
+ .new(project, current_user)
+ .execute
+ .payload[:label]
+
+ # These(add_label_ids, remove_label_ids) are being added ahead of time
+ # to be consumed by #process_label_ids, this allows system notes
+ # to be applied correctly alongside the label updates.
+ if add_incident_label?(issue)
+ params[:add_label_ids] ||= []
+ params[:add_label_ids] << label.id
+ else
+ params[:remove_label_ids] ||= []
+ params[:remove_label_ids] << label.id
+ end
+ end
+
+ # @param issue [Issue]
+ def add_incident_label?(issue)
+ issue.incident?
+ end
+
+ # @param _issue [Issue, nil]
+ def remove_incident_label?(_issue)
+ false
+ end
end
end