summaryrefslogtreecommitdiff
path: root/app/models/merge_request.rb
diff options
context:
space:
mode:
authorHiroyuki Sato <sathiroyuki@gmail.com>2019-03-09 12:22:58 +0000
committerNick Thomas <nick@gitlab.com>2019-03-09 12:22:58 +0000
commitde784ac10516ec1e1c93d164f3d99b2ff09e5889 (patch)
treefd3e0a4d845545f2ffa72e82294394a2139a4e50 /app/models/merge_request.rb
parent6908c5f70eb4d5d7e8ef28b43d73d71da9b2a0c3 (diff)
downloadgitlab-ce-de784ac10516ec1e1c93d164f3d99b2ff09e5889.tar.gz
Filter merge requests by target branch
Diffstat (limited to 'app/models/merge_request.rb')
-rw-r--r--app/models/merge_request.rb16
1 files changed, 16 insertions, 0 deletions
diff --git a/app/models/merge_request.rb b/app/models/merge_request.rb
index acf80addc6a..af8cb37bfb6 100644
--- a/app/models/merge_request.rb
+++ b/app/models/merge_request.rb
@@ -203,6 +203,22 @@ class MergeRequest < ActiveRecord::Base
'!'
end
+ # Returns the top 100 target branches
+ #
+ # The returned value is a Array containing branch names
+ # sort by updated_at of merge request:
+ #
+ # ['master', 'develop', 'production']
+ #
+ # limit - The maximum number of target branch to return.
+ def self.recent_target_branches(limit: 100)
+ group(:target_branch)
+ .select(:target_branch)
+ .reorder('MAX(merge_requests.updated_at) DESC')
+ .limit(limit)
+ .pluck(:target_branch)
+ end
+
def rebase_in_progress?
strong_memoize(:rebase_in_progress) do
# The source project can be deleted