32 lines
1.2 KiB
Ruby
32 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
|