diff --git a/app/models/label_note.rb b/app/models/label_note.rb
index d6814f4a9488975db8b5a30c35ba96e6a0b977d7..ba5f1f82a81cb2292c8178e0f987090de5acbcd5 100644
--- a/app/models/label_note.rb
+++ b/app/models/label_note.rb
@@ -62,19 +62,27 @@ class LabelNote < Note
   end
 
   def note_text(html: false)
-    added = labels_str('added', label_refs_by_action('add', html))
-    removed = labels_str('removed', label_refs_by_action('remove', html))
+    added = labels_str(label_refs_by_action('add', html), prefix: 'added', suffix: added_suffix)
+    removed = labels_str(label_refs_by_action('remove', html), prefix: removed_prefix)
 
     [added, removed].compact.join(' and ')
   end
 
+  def removed_prefix
+    'removed'
+  end
+
+  def added_suffix
+    ''
+  end
+
   # returns string containing added/removed labels including
   # count of deleted labels:
   #
   # added ~1 ~2 + 1 deleted label
   # added 3 deleted labels
   # added ~1 ~2 labels
-  def labels_str(prefix, label_refs)
+  def labels_str(label_refs, prefix: '', suffix: '')
     existing_refs = label_refs.select { |ref| ref.present? }.sort
     refs_str = existing_refs.empty? ? nil : existing_refs.join(' ')
 
@@ -84,9 +92,9 @@ class LabelNote < Note
     return unless refs_str || deleted_str
 
     label_list_str = [refs_str, deleted_str].compact.join(' + ')
-    suffix = 'label'.pluralize(deleted > 0 ? deleted : existing_refs.count)
+    suffix += ' label'.pluralize(deleted > 0 ? deleted : existing_refs.count)
 
-    "#{prefix} #{label_list_str} #{suffix}"
+    "#{prefix} #{label_list_str} #{suffix.squish}"
   end
 
   def label_refs_by_action(action, html)
diff --git a/app/models/resource_label_event.rb b/app/models/resource_label_event.rb
index f2c7cb6a65d20d4856eb1c2d9da1cafcf48cfd79..ad08f4763aea4f4f551da293144aaded82a6b321 100644
--- a/app/models/resource_label_event.rb
+++ b/app/models/resource_label_event.rb
@@ -36,10 +36,9 @@ class ResourceLabelEvent < ApplicationRecord
     issue || merge_request
   end
 
-  # create same discussion id for all actions with the same user and time
   def discussion_id(resource = nil)
     strong_memoize(:discussion_id) do
-      Digest::SHA1.hexdigest([self.class.name, created_at, user_id].join("-"))
+      Digest::SHA1.hexdigest(discussion_id_key.join("-"))
     end
   end
 
@@ -121,4 +120,8 @@ class ResourceLabelEvent < ApplicationRecord
   def resource_parent
     issuable.project || issuable.group
   end
+
+  def discussion_id_key
+    [self.class.name, created_at, user_id]
+  end
 end