summaryrefslogtreecommitdiff
path: root/app/services/resource_events/change_labels_service.rb
diff options
context:
space:
mode:
Diffstat (limited to 'app/services/resource_events/change_labels_service.rb')
-rw-r--r--app/services/resource_events/change_labels_service.rb14
1 files changed, 10 insertions, 4 deletions
diff --git a/app/services/resource_events/change_labels_service.rb b/app/services/resource_events/change_labels_service.rb
index 7e176f95db0..02182bc3a77 100644
--- a/app/services/resource_events/change_labels_service.rb
+++ b/app/services/resource_events/change_labels_service.rb
@@ -23,16 +23,22 @@ module ResourceEvents
label_hash.merge(label_id: label.id, action: ResourceLabelEvent.actions['remove'])
end
- ApplicationRecord.legacy_bulk_insert(ResourceLabelEvent.table_name, labels) # rubocop:disable Gitlab/BulkInsert
+ ids = ApplicationRecord.legacy_bulk_insert(ResourceLabelEvent.table_name, labels, return_ids: true) # rubocop:disable Gitlab/BulkInsert
- create_timeline_events_from(added_labels: added_labels, removed_labels: removed_labels)
+ if resource.is_a?(Issue)
+ events = ResourceLabelEvent.id_in(ids)
+ events.first.trigger_note_subscription_create(events: events.to_a) if events.any?
+ end
+ create_timeline_events_from(added_labels: added_labels, removed_labels: removed_labels)
resource.expire_note_etag_cache
return unless resource.is_a?(Issue)
- Gitlab::UsageDataCounters::IssueActivityUniqueCounter.track_issue_label_changed_action(author: user,
- project: resource.project)
+ Gitlab::UsageDataCounters::IssueActivityUniqueCounter.track_issue_label_changed_action(
+ author: user, project: resource.project)
+
+ events
end
private