Commit b3d648b4e882c41e0bb7bd72dc8815f6a7321fc4
1 parent
3c5954b8
Exists in
master
and in
4 other branches
Prevent duplicate merge events
Showing
2 changed files
with
15 additions
and
8 deletions
Show diff stats
app/models/merge_request.rb
@@ -177,15 +177,8 @@ class MergeRequest < ActiveRecord::Base | @@ -177,15 +177,8 @@ class MergeRequest < ActiveRecord::Base | ||
177 | end | 177 | end |
178 | 178 | ||
179 | def merge!(user_id) | 179 | def merge!(user_id) |
180 | + self.author_id_of_changes = user_id | ||
180 | self.merge | 181 | self.merge |
181 | - | ||
182 | - Event.create( | ||
183 | - project: self.project, | ||
184 | - action: Event::MERGED, | ||
185 | - target_id: self.id, | ||
186 | - target_type: "MergeRequest", | ||
187 | - author_id: user_id | ||
188 | - ) | ||
189 | end | 182 | end |
190 | 183 | ||
191 | def automerge!(current_user) | 184 | def automerge!(current_user) |
app/observers/activity_observer.rb
@@ -39,4 +39,18 @@ class ActivityObserver < ActiveRecord::Observer | @@ -39,4 +39,18 @@ class ActivityObserver < ActiveRecord::Observer | ||
39 | author_id: record.author_id_of_changes | 39 | author_id: record.author_id_of_changes |
40 | ) | 40 | ) |
41 | end | 41 | end |
42 | + | ||
43 | + def after_merge(record, transition) | ||
44 | + # Since MR can be merged via sidekiq | ||
45 | + # to prevent event duplication do this check | ||
46 | + return true if record.merge_event | ||
47 | + | ||
48 | + Event.create( | ||
49 | + project: record.project, | ||
50 | + target_id: record.id, | ||
51 | + target_type: record.class.name, | ||
52 | + action: Event::MERGED, | ||
53 | + author_id: record.author_id_of_changes | ||
54 | + ) | ||
55 | + end | ||
42 | end | 56 | end |