56de781a2c
This reverts commit e00fb2bdc2090e9cabeb1eb35a2672a882cc96e9. # Conflicts: # .rubocop.yml # .rubocop_todo.yml # lib/gitlab/ci/config/entry/global.rb # lib/gitlab/ci/config/entry/jobs.rb # spec/lib/gitlab/ci/config/entry/factory_spec.rb # spec/lib/gitlab/ci/config/entry/global_spec.rb # spec/lib/gitlab/ci/config/entry/job_spec.rb # spec/lib/gitlab/ci/status/build/factory_spec.rb # spec/lib/gitlab/incoming_email_spec.rb
53 lines
1 KiB
Ruby
53 lines
1 KiB
Ruby
module Gitlab
|
|
module Badge
|
|
module Coverage
|
|
##
|
|
# Test coverage report badge
|
|
#
|
|
class Report < Badge::Base
|
|
attr_reader :project, :ref, :job
|
|
|
|
def initialize(project, ref, job = nil)
|
|
@project = project
|
|
@ref = ref
|
|
@job = job
|
|
|
|
@pipeline = @project.pipelines.latest_successful_for(@ref)
|
|
end
|
|
|
|
def entity
|
|
'coverage'
|
|
end
|
|
|
|
def status
|
|
@coverage ||= raw_coverage
|
|
return unless @coverage
|
|
|
|
@coverage.to_i
|
|
end
|
|
|
|
def metadata
|
|
@metadata ||= Coverage::Metadata.new(self)
|
|
end
|
|
|
|
def template
|
|
@template ||= Coverage::Template.new(self)
|
|
end
|
|
|
|
private
|
|
|
|
def raw_coverage
|
|
return unless @pipeline
|
|
|
|
if @job.blank?
|
|
@pipeline.coverage
|
|
else
|
|
@pipeline.builds
|
|
.find_by(name: @job)
|
|
.try(:coverage)
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|
|
end
|