Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'lib/gitlab/analytics/cycle_analytics')
-rw-r--r--lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder.rb20
-rw-r--r--lib/gitlab/analytics/cycle_analytics/request_params.rb27
2 files changed, 39 insertions, 8 deletions
diff --git a/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder.rb b/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder.rb
index 41f94e79f91..fc0e4ab5a0d 100644
--- a/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder.rb
+++ b/lib/gitlab/analytics/cycle_analytics/aggregated/base_query_builder.rb
@@ -50,8 +50,7 @@ module Gitlab
def filter_author(query)
return query if params[:author_username].blank?
- user = User.by_username(params[:author_username]).first
-
+ user = find_user(params[:author_username])
return query.none if user.blank?
query.authored(user)
@@ -60,11 +59,7 @@ module Gitlab
def filter_milestone_ids(query)
return query if params[:milestone_title].blank?
- milestone = MilestonesFinder
- .new(group_ids: root_ancestor.self_and_descendant_ids, project_ids: root_ancestor.all_projects.select(:id), title: params[:milestone_title])
- .execute
- .first
-
+ milestone = find_milestone(params[:milestone_title])
return query.none if milestone.blank?
query.with_milestone_id(milestone.id)
@@ -115,6 +110,17 @@ module Gitlab
private
attr_reader :stage, :params, :root_ancestor, :stage_event_model
+
+ def find_milestone(title)
+ MilestonesFinder
+ .new(group_ids: root_ancestor.self_and_descendant_ids, project_ids: root_ancestor.all_projects.select(:id), title: title)
+ .execute
+ .first
+ end
+
+ def find_user(username)
+ User.by_username(username).first
+ end
end
# rubocop: enable CodeReuse/ActiveRecord
end
diff --git a/lib/gitlab/analytics/cycle_analytics/request_params.rb b/lib/gitlab/analytics/cycle_analytics/request_params.rb
index 2c4b0215307..cea25ba2db4 100644
--- a/lib/gitlab/analytics/cycle_analytics/request_params.rb
+++ b/lib/gitlab/analytics/cycle_analytics/request_params.rb
@@ -12,6 +12,24 @@ module Gitlab
MAX_RANGE_DAYS = 180.days.freeze
DEFAULT_DATE_RANGE = 29.days # 30 including Date.today
+ NEGATABLE_PARAMS = [
+ :assignee_username,
+ :author_username,
+ :epic_id,
+ :iteration_id,
+ :label_name,
+ :milestone_title,
+ :my_reaction_emoji,
+ :weight
+ ].freeze
+
+ LICENSED_PARAMS = [
+ :weight,
+ :epic_id,
+ :my_reaction_emoji,
+ :iteration_id
+ ].freeze
+
STRONG_PARAMS_DEFINITION = [
:created_before,
:created_after,
@@ -22,9 +40,11 @@ module Gitlab
:page,
:stage_id,
:end_event_filter,
+ *LICENSED_PARAMS,
label_name: [].freeze,
assignee_username: [].freeze,
- project_ids: [].freeze
+ project_ids: [].freeze,
+ not: NEGATABLE_PARAMS
].freeze
FINDER_PARAM_NAMES = [
@@ -46,6 +66,11 @@ module Gitlab
attribute :page
attribute :stage_id
attribute :end_event_filter
+ attribute :weight
+ attribute :epic_id
+ attribute :my_reaction_emoji
+ attribute :iteration_id
+ attribute :not, default: -> { {} }
FINDER_PARAM_NAMES.each do |param_name|
attribute param_name