summaryrefslogtreecommitdiff
path: root/lib
diff options
context:
space:
mode:
authorJames Lopez <james@jameslopez.es>2016-11-21 17:15:25 +0100
committerJames Lopez <james@jameslopez.es>2017-01-17 11:32:54 +0100
commita998276223510ceee67f686dfc3ef536c0252c5a (patch)
treedbc30d5ef3b26fcad6c856c7741d8d32cccf7b23 /lib
parent3268e3779166c7ddf47ecc0d78397cd75cf2f0e8 (diff)
downloadgitlab-ce-a998276223510ceee67f686dfc3ef536c0252c5a.tar.gz
added analytics stage serializer and moved some info to the stage classes from the controller
Diffstat (limited to 'lib')
-rw-r--r--lib/gitlab/cycle_analytics/base_stage.rb2
-rw-r--r--lib/gitlab/cycle_analytics/code_stage.rb6
-rw-r--r--lib/gitlab/cycle_analytics/issue_stage.rb6
-rw-r--r--lib/gitlab/cycle_analytics/plan_stage.rb6
-rw-r--r--lib/gitlab/cycle_analytics/production_stage.rb6
-rw-r--r--lib/gitlab/cycle_analytics/review_stage.rb6
-rw-r--r--lib/gitlab/cycle_analytics/staging_stage.rb6
-rw-r--r--lib/gitlab/cycle_analytics/test_stage.rb6
8 files changed, 44 insertions, 0 deletions
diff --git a/lib/gitlab/cycle_analytics/base_stage.rb b/lib/gitlab/cycle_analytics/base_stage.rb
index 70f1e1018c9..49d1e6304a9 100644
--- a/lib/gitlab/cycle_analytics/base_stage.rb
+++ b/lib/gitlab/cycle_analytics/base_stage.rb
@@ -1,6 +1,8 @@
module Gitlab
module CycleAnalytics
class BaseStage
+ attr_reader :stage, :description
+
def initialize(project:, options:, stage: stage)
@project = project
@options = options
diff --git a/lib/gitlab/cycle_analytics/code_stage.rb b/lib/gitlab/cycle_analytics/code_stage.rb
index 9d28393ce53..f72989c9a72 100644
--- a/lib/gitlab/cycle_analytics/code_stage.rb
+++ b/lib/gitlab/cycle_analytics/code_stage.rb
@@ -1,6 +1,12 @@
module Gitlab
module CycleAnalytics
class CodeStage < BaseStage
+ def initialize(*args)
+ super(*args)
+
+ @description = "Time until first merge request"
+ end
+
def median
@fetcher.calculate_metric(:code,
Issue::Metrics.arel_table[:first_mentioned_in_commit_at],
diff --git a/lib/gitlab/cycle_analytics/issue_stage.rb b/lib/gitlab/cycle_analytics/issue_stage.rb
index 6793cc77976..a2ada238cd2 100644
--- a/lib/gitlab/cycle_analytics/issue_stage.rb
+++ b/lib/gitlab/cycle_analytics/issue_stage.rb
@@ -1,6 +1,12 @@
module Gitlab
module CycleAnalytics
class IssueStage < BaseStage
+ def initialize(*args)
+ super(*args)
+
+ @description = "Time before an issue gets scheduled"
+ end
+
def median
@fetcher.calculate_metric(:issue,
Issue.arel_table[:created_at],
diff --git a/lib/gitlab/cycle_analytics/plan_stage.rb b/lib/gitlab/cycle_analytics/plan_stage.rb
index 772237087c0..c836068c4ef 100644
--- a/lib/gitlab/cycle_analytics/plan_stage.rb
+++ b/lib/gitlab/cycle_analytics/plan_stage.rb
@@ -1,6 +1,12 @@
module Gitlab
module CycleAnalytics
class PlanStage < BaseStage
+ def initialize(*args)
+ super(*args)
+
+ @description = "Time before an issue starts implementation"
+ end
+
def median
@fetcher.calculate_metric(:plan,
[Issue::Metrics.arel_table[:first_associated_with_milestone_at],
diff --git a/lib/gitlab/cycle_analytics/production_stage.rb b/lib/gitlab/cycle_analytics/production_stage.rb
index 2fb087a8cac..d46d37e1acc 100644
--- a/lib/gitlab/cycle_analytics/production_stage.rb
+++ b/lib/gitlab/cycle_analytics/production_stage.rb
@@ -1,6 +1,12 @@
module Gitlab
module CycleAnalytics
class ProductionStage < BaseStage
+ def initialize(*args)
+ super(*args)
+
+ @description = "From issue creation until deploy to production"
+ end
+
def median
@fetcher.calculate_metric(:production,
Issue.arel_table[:created_at],
diff --git a/lib/gitlab/cycle_analytics/review_stage.rb b/lib/gitlab/cycle_analytics/review_stage.rb
index ec9f07319e8..4159ba5d70d 100644
--- a/lib/gitlab/cycle_analytics/review_stage.rb
+++ b/lib/gitlab/cycle_analytics/review_stage.rb
@@ -1,6 +1,12 @@
module Gitlab
module CycleAnalytics
class ReviewStage < BaseStage
+ def initialize(*args)
+ super(*args)
+
+ @description = "Time between merge request creation and merge/close"
+ end
+
def median
@fetcher.calculate_metric(:review,
MergeRequest.arel_table[:created_at],
diff --git a/lib/gitlab/cycle_analytics/staging_stage.rb b/lib/gitlab/cycle_analytics/staging_stage.rb
index 9c67a2aa6fe..cb4398f15ac 100644
--- a/lib/gitlab/cycle_analytics/staging_stage.rb
+++ b/lib/gitlab/cycle_analytics/staging_stage.rb
@@ -1,6 +1,12 @@
module Gitlab
module CycleAnalytics
class StagingStage < BaseStage
+ def initialize(*args)
+ super(*args)
+
+ @description = "From merge request merge until deploy to production"
+ end
+
def median
@fetcher.calculate_metric(:staging,
MergeRequest::Metrics.arel_table[:merged_at],
diff --git a/lib/gitlab/cycle_analytics/test_stage.rb b/lib/gitlab/cycle_analytics/test_stage.rb
index 6bedfdbba61..3ab93bebd87 100644
--- a/lib/gitlab/cycle_analytics/test_stage.rb
+++ b/lib/gitlab/cycle_analytics/test_stage.rb
@@ -1,6 +1,12 @@
module Gitlab
module CycleAnalytics
class TestStage < BaseStage
+ def initialize(*args)
+ super(*args)
+
+ @description = "Total test time for all commits/merges"
+ end
+
def median
@fetcher.calculate_metric(:test,
MergeRequest::Metrics.arel_table[:latest_build_started_at],