Skip to content
Snippets Groups Projects
cycle_analytics.rb 910 B
Newer Older
  • Learn to ignore specific revisions
  • class CycleAnalytics
    
      STAGES = %i[issue plan code test review staging production].freeze
    
    
      def initialize(project, options)
    
        @project = project
    
    James Lopez's avatar
    James Lopez committed
        @summary ||= ::Gitlab::CycleAnalytics::StageSummary.new(@project,
                                                                from: @options[:from],
                                                                current_user: @options[:current_user]).data
    
      def stats
        @stats ||= stats_per_stage
      end
    
      def no_stats?
    
    James Lopez's avatar
    James Lopez committed
        stats.all? { |hash| hash[:value].nil? }
    
    James Lopez's avatar
    James Lopez committed
      end
    
    
      def permissions(user:)
        Gitlab::CycleAnalytics::Permissions.get(user: user, project: @project)
    
      def [](stage_name)
        Gitlab::CycleAnalytics::Stage[stage_name].new(project: @project, options: @options)
    
      private
    
      def stats_per_stage
        STAGES.map do |stage_name|
    
          self[stage_name].as_json