diff options
Diffstat (limited to 'app/services/issuable_base_service.rb')
-rw-r--r-- | app/services/issuable_base_service.rb | 12 |
1 files changed, 10 insertions, 2 deletions
diff --git a/app/services/issuable_base_service.rb b/app/services/issuable_base_service.rb index bb65a8f402d..6cb84458d9b 100644 --- a/app/services/issuable_base_service.rb +++ b/app/services/issuable_base_service.rb @@ -163,7 +163,11 @@ class IssuableBaseService < BaseService before_create(issuable) - if issuable.save + issuable_saved = issuable.with_transaction_returning_status do + issuable.save && issuable.store_mentions! + end + + if issuable_saved Issuable::CommonSystemNotesService.new(project, current_user).execute(issuable, is_update: false) after_create(issuable) @@ -224,7 +228,11 @@ class IssuableBaseService < BaseService update_project_counters = issuable.project && update_project_counter_caches?(issuable) ensure_milestone_available(issuable) - if issuable.with_transaction_returning_status { issuable.save(touch: should_touch) } + issuable_saved = issuable.with_transaction_returning_status do + issuable.save(touch: should_touch) && issuable.store_mentions! + end + + if issuable_saved Issuable::CommonSystemNotesService.new(project, current_user).execute(issuable, old_labels: old_associations[:labels]) handle_changes(issuable, old_associations: old_associations) |