diff --git a/app/models/event.rb b/app/models/event.rb
index 8681c2e4d9035b35d0ad4a73109a0b640e07608f..9e296c00281ef48d8c70275b67b0018b04a61c67 100644
--- a/app/models/event.rb
+++ b/app/models/event.rb
@@ -70,6 +70,12 @@ class Event < ActiveRecord::Base
         author_id: user.id
       )
     end
+
+    def reset_event_cache_for(target)
+      Event.where(target_id: target.id, target_type: target.class.to_s).
+        order('id DESC').limit(100).
+        update_all(updated_at: Time.now)
+    end
   end
 
   def proper?
diff --git a/app/models/issue.rb b/app/models/issue.rb
index a116a9354cbf61c8ad2f27d9f965601eefbd4810..b5a72d535d969387e81370a3e1761308b5f2239e 100644
--- a/app/models/issue.rb
+++ b/app/models/issue.rb
@@ -67,8 +67,6 @@ class Issue < ActiveRecord::Base
   # Thus it will automatically generate a new fragment
   # when the event is updated because the key changes.
   def reset_events_cache
-    Event.where(target_id: self.id, target_type: 'Issue').
-      order('id DESC').limit(100).
-      update_all(updated_at: Time.now)
+    Event.reset_event_cache_for(self)
   end
 end
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index 28486fb41c6a472a3898fd4710a75954b3a798ae..686add63bbfd829b19e8232a0b326f0439b23613 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -287,9 +287,7 @@ class MergeRequest < ActiveRecord::Base
   # Thus it will automatically generate a new fragment
   # when the event is updated because the key changes.
   def reset_events_cache
-    Event.where(target_id: self.id, target_type: 'MergeRequest').
-        order('id DESC').limit(100).
-        update_all(updated_at: Time.now)
+    Event.reset_event_cache_for(self)
   end
 
   def merge_commit_message
diff --git a/app/models/note.rb b/app/models/note.rb
index ed4829b2b394cc3e469c7aad9a2d5bf45fbc8f3c..7ff6444cc9bc65de94fabdd223dccbc685df0622 100644
--- a/app/models/note.rb
+++ b/app/models/note.rb
@@ -327,9 +327,7 @@ class Note < ActiveRecord::Base
   # Thus it will automatically generate a new fragment
   # when the event is updated because the key changes.
   def reset_events_cache
-    Event.where(target_id: self.id, target_type: 'Note').
-      order('id DESC').limit(100).
-      update_all(updated_at: Time.now)
+    Event.reset_event_cache_for(self)
   end
 
   def set_references