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 | 177 | end |
178 | 178 | |
179 | 179 | def merge!(user_id) |
180 | + self.author_id_of_changes = user_id | |
180 | 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 | 182 | end |
190 | 183 | |
191 | 184 | def automerge!(current_user) | ... | ... |
app/observers/activity_observer.rb
... | ... | @@ -39,4 +39,18 @@ class ActivityObserver < ActiveRecord::Observer |
39 | 39 | author_id: record.author_id_of_changes |
40 | 40 | ) |
41 | 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 | 56 | end | ... | ... |