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 |