diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-09-11 12:40:59 +0300 |
---|---|---|
committer | Douwe Maan <douwe@gitlab.com> | 2017-09-11 12:40:59 +0300 |
commit | 5cc140b202a0fc9bf2056b481c977bbcf9255919 (patch) | |
tree | 6addace4503068db70271bb3fe1e5993ff3f263b /app/models/user.rb | |
parent | 2071671cd0deb39ab29dda7d04e48a649c3643cb (diff) | |
parent | 83355336dd405a3af9914a6ae6d397a631847e49 (diff) |
Merge branch 'user-recent-push' into 'master'
Rework how recent push events are retrieved
Closes #35990
See merge request !13995
Diffstat (limited to 'app/models/user.rb')
-rw-r--r-- | app/models/user.rb | 19 |
1 files changed, 6 insertions, 13 deletions
diff --git a/app/models/user.rb b/app/models/user.rb index 26b14ade5ca..358b04ac71f 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -650,20 +650,13 @@ class User < ActiveRecord::Base @personal_projects_count ||= personal_projects.count end - def recent_push(project_ids = nil) - # Get push events not earlier than 2 hours ago - events = recent_events.code_push.where("created_at > ?", Time.now - 2.hours) - events = events.where(project_id: project_ids) if project_ids + def recent_push(project = nil) + service = Users::LastPushEventService.new(self) - # Use the latest event that has not been pushed or merged recently - events.includes(:project).recent.find do |event| - next unless event.project.repository.branch_exists?(event.branch_name) - - merge_requests = MergeRequest.where("created_at >= ?", event.created_at) - .where(source_project_id: event.project.id, - source_branch: event.branch_name) - - merge_requests.empty? + if project + service.last_event_for_project(project) + else + service.last_event_for_user end end |