diff options
author | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 21:42:06 +0300 |
---|---|---|
committer | GitLab Bot <gitlab-bot@gitlab.com> | 2020-08-20 21:42:06 +0300 |
commit | 6e4e1050d9dba2b7b2523fdd1768823ab85feef4 (patch) | |
tree | 78be5963ec075d80116a932011d695dd33910b4e /app/finders/merge_requests_finder.rb | |
parent | 1ce776de4ae122aba3f349c02c17cebeaa8ecf07 (diff) |
Add latest changes from gitlab-org/gitlab@13-3-stable-ee
Diffstat (limited to 'app/finders/merge_requests_finder.rb')
-rw-r--r-- | app/finders/merge_requests_finder.rb | 27 |
1 files changed, 21 insertions, 6 deletions
diff --git a/app/finders/merge_requests_finder.rb b/app/finders/merge_requests_finder.rb index d5e6c4783c1..b70d0b7a06a 100644 --- a/app/finders/merge_requests_finder.rb +++ b/app/finders/merge_requests_finder.rb @@ -30,8 +30,10 @@ # updated_before: datetime # class MergeRequestsFinder < IssuableFinder + include MergedAtFilter + def self.scalar_params - @scalar_params ||= super + [:wip, :target_branch] + @scalar_params ||= super + [:wip, :draft, :target_branch, :merged_after, :merged_before] end def klass @@ -42,8 +44,9 @@ class MergeRequestsFinder < IssuableFinder items = by_commit(super) items = by_deployment(items) items = by_source_branch(items) - items = by_wip(items) + items = by_draft(items) items = by_target_branch(items) + items = by_merged_at(items) by_source_project_id(items) end @@ -88,20 +91,32 @@ class MergeRequestsFinder < IssuableFinder items.where(source_project_id: source_project_id) end - def by_wip(items) - if params[:wip] == 'yes' + def by_draft(items) + draft_param = params[:draft] || params[:wip] + + if draft_param == 'yes' items.where(wip_match(items.arel_table)) - elsif params[:wip] == 'no' + elsif draft_param == 'no' items.where.not(wip_match(items.arel_table)) else items end end + # WIP is deprecated in favor of Draft. Currently both options are supported def wip_match(table) - table[:title].matches('WIP:%') + items = + table[:title].matches('WIP:%') .or(table[:title].matches('WIP %')) .or(table[:title].matches('[WIP]%')) + + return items unless Feature.enabled?(:merge_request_draft_filter) + + items + .or(table[:title].matches('Draft - %')) + .or(table[:title].matches('Draft:%')) + .or(table[:title].matches('[Draft]%')) + .or(table[:title].matches('(Draft)%')) end def by_deployment(items) |