diff options
Diffstat (limited to 'app/models')
-rw-r--r-- | app/models/event.rb | 20 | ||||
-rw-r--r-- | app/models/merge_request.rb | 2 | ||||
-rw-r--r-- | app/models/users_project.rb | 2 |
3 files changed, 21 insertions, 3 deletions
diff --git a/app/models/event.rb b/app/models/event.rb index e20b79e2a82..308ffd63961 100644 --- a/app/models/event.rb +++ b/app/models/event.rb @@ -10,6 +10,8 @@ class Event < ActiveRecord::Base Pushed = 5 Commented = 6 Merged = 7 + Joined = 8 # User joined project + Left = 9 # User left project belongs_to :project belongs_to :target, polymorphic: true @@ -37,7 +39,7 @@ class Event < ActiveRecord::Base # - new issue # - merge request def allowed? - push? || issue? || merge_request? + push? || issue? || merge_request? || membership_changed? end def push? @@ -84,6 +86,18 @@ class Event < ActiveRecord::Base [Closed, Reopened].include?(action) end + def joined? + action == Joined + end + + def left? + action == Left + end + + def membership_changed? + joined? || left? + end + def issue target if target_type == "Issue" end @@ -101,6 +115,10 @@ class Event < ActiveRecord::Base "closed" elsif merged? "merged" + elsif joined? + 'joined' + elsif left? + 'left' else "opened" end diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb index 542817b0eea..2e457f72286 100644 --- a/app/models/merge_request.rb +++ b/app/models/merge_request.rb @@ -162,7 +162,7 @@ class MergeRequest < ActiveRecord::Base end def automerge!(current_user) - if Gitlab::Merge.new(self, current_user).merge + if Gitlab::Merge.new(self, current_user).merge && self.unmerged_commits.empty? self.merge!(current_user.id) true end diff --git a/app/models/users_project.rb b/app/models/users_project.rb index 3b951f0dae9..ce64a10f3f0 100644 --- a/app/models/users_project.rb +++ b/app/models/users_project.rb @@ -23,7 +23,7 @@ class UsersProject < ActiveRecord::Base def self.bulk_delete(project, user_ids) UsersProject.transaction do UsersProject.where(:user_id => user_ids, :project_id => project.id).each do |users_project| - users_project.delete + users_project.destroy end end end |