gitlab-org--gitlab-foss/app/graphql/resolvers/project_pipeline_statistics...

33 lines
1.2 KiB
Ruby

# frozen_string_literal: true
module Resolvers
class ProjectPipelineStatisticsResolver < BaseResolver
include Gitlab::Graphql::Authorize::AuthorizeResource
type Types::Ci::AnalyticsType, null: true
authorizes_object!
authorize :read_ci_cd_analytics
def resolve
weekly_stats = Gitlab::Ci::Charts::WeekChart.new(object)
monthly_stats = Gitlab::Ci::Charts::MonthChart.new(object)
yearly_stats = Gitlab::Ci::Charts::YearChart.new(object)
pipeline_times = Gitlab::Ci::Charts::PipelineTime.new(object)
{
week_pipelines_labels: weekly_stats.labels,
week_pipelines_totals: weekly_stats.total,
week_pipelines_successful: weekly_stats.success,
month_pipelines_labels: monthly_stats.labels,
month_pipelines_totals: monthly_stats.total,
month_pipelines_successful: monthly_stats.success,
year_pipelines_labels: yearly_stats.labels,
year_pipelines_totals: yearly_stats.total,
year_pipelines_successful: yearly_stats.success,
pipeline_times_labels: pipeline_times.labels,
pipeline_times_values: pipeline_times.pipeline_times
}
end
end
end