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!