diff options
Diffstat (limited to 'app/finders')
-rw-r--r-- | app/finders/ci/jobs_finder.rb | 3 | ||||
-rw-r--r-- | app/finders/deployments_finder.rb | 25 |
2 files changed, 16 insertions, 12 deletions
diff --git a/app/finders/ci/jobs_finder.rb b/app/finders/ci/jobs_finder.rb index 4ade3e6f031..4408c9cdb6d 100644 --- a/app/finders/ci/jobs_finder.rb +++ b/app/finders/ci/jobs_finder.rb @@ -45,7 +45,8 @@ module Ci return unless pipeline raise Gitlab::Access::AccessDeniedError unless can?(current_user, :read_build, pipeline) - jobs_by_type(pipeline, type).latest + jobs_scope = jobs_by_type(pipeline, type) + params[:include_retried] ? jobs_scope : jobs_scope.latest end def filter_by_scope(builds) diff --git a/app/finders/deployments_finder.rb b/app/finders/deployments_finder.rb index bdcf7da3bea..89a28d9dfb8 100644 --- a/app/finders/deployments_finder.rb +++ b/app/finders/deployments_finder.rb @@ -1,5 +1,7 @@ # frozen_string_literal: true +# WARNING: This finder does not check permissions! +# # Arguments: # params: # project: Project model - Find deployments for this project @@ -27,11 +29,13 @@ class DeploymentsFinder def execute items = init_collection items = by_updated_at(items) + items = by_finished_at(items) items = by_environment(items) items = by_status(items) items = preload_associations(items) - items = by_finished_between(items) - sort(items) + items = sort(items) + + items end private @@ -44,11 +48,9 @@ class DeploymentsFinder end end - # rubocop: disable CodeReuse/ActiveRecord def sort(items) - items.order(sort_params) + items.order(sort_params) # rubocop: disable CodeReuse/ActiveRecord end - # rubocop: enable CodeReuse/ActiveRecord def by_updated_at(items) items = items.updated_before(params[:updated_before]) if params[:updated_before].present? @@ -57,6 +59,13 @@ class DeploymentsFinder items end + def by_finished_at(items) + items = items.finished_before(params[:finished_before]) if params[:finished_before].present? + items = items.finished_after(params[:finished_after]) if params[:finished_after].present? + + items + end + def by_environment(items) if params[:environment].present? items.for_environment_name(params[:environment]) @@ -65,12 +74,6 @@ class DeploymentsFinder end end - def by_finished_between(items) - items = items.finished_between(params[:finished_after], params[:finished_before].presence) if params[:finished_after].present? - - items - end - def by_status(items) return items unless params[:status].present? |