summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorTimothy Andrew <mail@timothyandrew.net>2016-09-08 15:03:38 +0530
committerTimothy Andrew <mail@timothyandrew.net>2016-09-08 15:03:38 +0530
commit9901c3df41d37e5d5650e28a5287a8ddf0aa754e (patch)
tree0f10ce6cfa414a45aeb3d260eb4f70b44cbe2774
parentf5b9837c19f48255237eca1e618fc632a45b58b5 (diff)
downloadgitlab-ce-9901c3df41d37e5d5650e28a5287a8ddf0aa754e.tar.gz
Add a JSON version of the `CycleAnalytics` page.
-rw-r--r--app/controllers/projects/cycle_analytics_controller.rb5
-rw-r--r--app/models/cycle_analytics.rb7
-rw-r--r--app/policies/project_policy.rb1
3 files changed, 13 insertions, 0 deletions
diff --git a/app/controllers/projects/cycle_analytics_controller.rb b/app/controllers/projects/cycle_analytics_controller.rb
index 68cc79fb166..9903fae6f7d 100644
--- a/app/controllers/projects/cycle_analytics_controller.rb
+++ b/app/controllers/projects/cycle_analytics_controller.rb
@@ -3,6 +3,11 @@ class Projects::CycleAnalyticsController < Projects::ApplicationController
def show
@cycle_analytics = CycleAnalytics.new(@project, from: parse_start_date)
+
+ respond_to do |format|
+ format.html
+ format.json { render json: @cycle_analytics }
+ end
end
private
diff --git a/app/models/cycle_analytics.rb b/app/models/cycle_analytics.rb
index a52b5aff559..9444f1f31a8 100644
--- a/app/models/cycle_analytics.rb
+++ b/app/models/cycle_analytics.rb
@@ -6,6 +6,13 @@ class CycleAnalytics
@from = from
end
+ def as_json(options = {})
+ {
+ issue: issue, plan: plan, code: code, test: test,
+ review: review, staging: staging, production: production
+ }
+ end
+
def issue
calculate_metric(Queries::issues(@project, created_after: @from),
-> (data_point) { data_point[:issue].created_at },
diff --git a/app/policies/project_policy.rb b/app/policies/project_policy.rb
index acf36d422d1..08feb2cbb0e 100644
--- a/app/policies/project_policy.rb
+++ b/app/policies/project_policy.rb
@@ -101,6 +101,7 @@ class ProjectPolicy < BasePolicy
can! :admin_pipeline
can! :admin_environment
can! :admin_deployment
+ can! :read_cycle_analytics
end
def public_access!