summaryrefslogtreecommitdiff
path: root/app/services/issues/create_service.rb
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-06-16 18:25:58 +0000
committerGitLab Bot <gitlab-bot@gitlab.com>2021-06-16 18:25:58 +0000
commita5f4bba440d7f9ea47046a0a561d49adf0a1e6d4 (patch)
treefb69158581673816a8cd895f9d352dcb3c678b1e /app/services/issues/create_service.rb
parentd16b2e8639e99961de6ddc93909f3bb5c1445ba1 (diff)
downloadgitlab-ce-a5f4bba440d7f9ea47046a0a561d49adf0a1e6d4.tar.gz
Add latest changes from gitlab-org/gitlab@14-0-stable-eev14.0.0-rc42
Diffstat (limited to 'app/services/issues/create_service.rb')
-rw-r--r--app/services/issues/create_service.rb31
1 files changed, 14 insertions, 17 deletions
diff --git a/app/services/issues/create_service.rb b/app/services/issues/create_service.rb
index 1f4efeb1a8a..53f3dc39ba3 100644
--- a/app/services/issues/create_service.rb
+++ b/app/services/issues/create_service.rb
@@ -34,13 +34,26 @@ module Issues
# Add new items to Issues::AfterCreateService if they can be performed in Sidekiq
def after_create(issue)
- add_incident_label(issue)
user_agent_detail_service.create
resolve_discussions_with_issue(issue)
super
end
+ def handle_changes(issue, options)
+ super
+ old_associations = options.fetch(:old_associations, {})
+ old_assignees = old_associations.fetch(:assignees, [])
+
+ handle_assignee_changes(issue, old_assignees)
+ end
+
+ def handle_assignee_changes(issue, old_assignees)
+ return if issue.assignees == old_assignees
+
+ create_assignee_note(issue, old_assignees)
+ end
+
def resolve_discussions_with_issue(issue)
return if discussions_to_resolve.empty?
@@ -56,22 +69,6 @@ module Issues
def user_agent_detail_service
UserAgentDetailService.new(@issue, request)
end
-
- # Applies label "incident" (creates it if missing) to incident issues.
- # For use in "after" hooks only to ensure we are not appyling
- # labels prematurely.
- def add_incident_label(issue)
- return unless issue.incident?
-
- label = ::IncidentManagement::CreateIncidentLabelService
- .new(project, current_user)
- .execute
- .payload[:label]
-
- return if issue.label_ids.include?(label.id)
-
- issue.labels << label
- end
end
end