Module: Gitlab::Analytics::CycleAnalytics::DefaultStages
- Defined in:
- lib/gitlab/analytics/cycle_analytics/default_stages.rb
Class Method Summary collapse
- .all ⇒ Object
- .find_by_name(name) ⇒ Object
- .find_by_name!(name) ⇒ Object
- .names ⇒ Object
- .params_for_code_stage ⇒ Object
- .params_for_issue_stage ⇒ Object
- .params_for_plan_stage ⇒ Object
- .params_for_review_stage ⇒ Object
- .params_for_staging_stage ⇒ Object
- .params_for_test_stage ⇒ Object
- .symbolized_stage_names ⇒ Object
Class Method Details
.all ⇒ Object
14 15 16 17 18 19 20 21 22 23 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 14 def self.all [ params_for_issue_stage, params_for_plan_stage, params_for_code_stage, params_for_test_stage, params_for_review_stage, params_for_staging_stage ] end |
.find_by_name(name) ⇒ Object
29 30 31 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 29 def self.find_by_name(name) all.find { |raw_stage| raw_stage[:name].to_s.eql?(name.to_s) } end |
.find_by_name!(name) ⇒ Object
25 26 27 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 25 def self.find_by_name!(name) find_by_name(name) || raise("Default stage '#{name}' not found") end |
.names ⇒ Object
33 34 35 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 33 def self.names all.map { |stage| stage[:name] } end |
.params_for_code_stage ⇒ Object
61 62 63 64 65 66 67 68 69 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 61 def self.params_for_code_stage { name: 'code', custom: false, relative_position: 3, start_event_identifier: :code_stage_start, end_event_identifier: :merge_request_created } end |
.params_for_issue_stage ⇒ Object
41 42 43 44 45 46 47 48 49 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 41 def self.params_for_issue_stage { name: 'issue', custom: false, # this stage won't be customizable, we provide it as it is relative_position: 1, # when opening the CycleAnalytics page in CE, this stage will be the first item start_event_identifier: :issue_created, # IssueCreated class is used as start event end_event_identifier: :issue_stage_end # IssueStageEnd class is used as end event } end |
.params_for_plan_stage ⇒ Object
51 52 53 54 55 56 57 58 59 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 51 def self.params_for_plan_stage { name: 'plan', custom: false, relative_position: 2, start_event_identifier: :plan_stage_start, end_event_identifier: :issue_first_mentioned_in_commit } end |
.params_for_review_stage ⇒ Object
81 82 83 84 85 86 87 88 89 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 81 def self.params_for_review_stage { name: 'review', custom: false, relative_position: 5, start_event_identifier: :merge_request_created, end_event_identifier: :merge_request_merged } end |
.params_for_staging_stage ⇒ Object
91 92 93 94 95 96 97 98 99 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 91 def self.params_for_staging_stage { name: 'staging', custom: false, relative_position: 6, start_event_identifier: :merge_request_merged, end_event_identifier: :merge_request_first_deployed_to_production } end |
.params_for_test_stage ⇒ Object
71 72 73 74 75 76 77 78 79 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 71 def self.params_for_test_stage { name: 'test', custom: false, relative_position: 4, start_event_identifier: :merge_request_last_build_started, end_event_identifier: :merge_request_last_build_finished } end |
.symbolized_stage_names ⇒ Object
37 38 39 |
# File 'lib/gitlab/analytics/cycle_analytics/default_stages.rb', line 37 def self.symbolized_stage_names names.map(&:to_sym) end |