Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorGitLab Bot <gitlab-bot@gitlab.com>2021-10-20 11:43:02 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-10-20 11:43:02 +0300
commitd9ab72d6080f594d0b3cae15f14b3ef2c6c638cb (patch)
tree2341ef426af70ad1e289c38036737e04b0aa5007 /lib/gitlab/ci/badge
parentd6e514dd13db8947884cd58fe2a9c2a063400a9b (diff)
Add latest changes from gitlab-org/gitlab@14-4-stable-eev14.4.0-rc42
Diffstat (limited to 'lib/gitlab/ci/badge')
-rw-r--r--lib/gitlab/ci/badge/coverage/report.rb5
-rw-r--r--lib/gitlab/ci/badge/coverage/template.rb40
2 files changed, 40 insertions, 5 deletions
diff --git a/lib/gitlab/ci/badge/coverage/report.rb b/lib/gitlab/ci/badge/coverage/report.rb
index 28863a0703b..78b51dbdaf0 100644
--- a/lib/gitlab/ci/badge/coverage/report.rb
+++ b/lib/gitlab/ci/badge/coverage/report.rb
@@ -15,7 +15,10 @@ module Gitlab::Ci
@job = opts[:job]
@customization = {
key_width: opts[:key_width].to_i,
- key_text: opts[:key_text]
+ key_text: opts[:key_text],
+ min_good: opts[:min_good].to_i,
+ min_acceptable: opts[:min_acceptable].to_i,
+ min_medium: opts[:min_medium].to_i
}
end
diff --git a/lib/gitlab/ci/badge/coverage/template.rb b/lib/gitlab/ci/badge/coverage/template.rb
index 96702420e9d..f12b4f2dbfb 100644
--- a/lib/gitlab/ci/badge/coverage/template.rb
+++ b/lib/gitlab/ci/badge/coverage/template.rb
@@ -16,12 +16,20 @@ module Gitlab::Ci
low: '#e05d44',
unknown: '#9f9f9f'
}.freeze
+ COVERAGE_MAX = 100
+ COVERAGE_MIN = 0
+ MIN_GOOD_DEFAULT = 95
+ MIN_ACCEPTABLE_DEFAULT = 90
+ MIN_MEDIUM_DEFAULT = 75
def initialize(badge)
@entity = badge.entity
@status = badge.status
@key_text = badge.customization.dig(:key_text)
@key_width = badge.customization.dig(:key_width)
+ @min_good = badge.customization.dig(:min_good)
+ @min_acceptable = badge.customization.dig(:min_acceptable)
+ @min_medium = badge.customization.dig(:min_medium)
end
def value_text
@@ -32,12 +40,36 @@ module Gitlab::Ci
@status ? 54 : 58
end
+ def min_good_value
+ if @min_good && @min_good.between?(3, COVERAGE_MAX)
+ @min_good
+ else
+ MIN_GOOD_DEFAULT
+ end
+ end
+
+ def min_acceptable_value
+ if @min_acceptable && @min_acceptable.between?(2, min_good_value - 1)
+ @min_acceptable
+ else
+ [MIN_ACCEPTABLE_DEFAULT, (min_good_value - 1)].min
+ end
+ end
+
+ def min_medium_value
+ if @min_medium && @min_medium.between?(1, min_acceptable_value - 1)
+ @min_medium
+ else
+ [MIN_MEDIUM_DEFAULT, (min_acceptable_value - 1)].min
+ end
+ end
+
def value_color
case @status
- when 95..100 then STATUS_COLOR[:good]
- when 90..95 then STATUS_COLOR[:acceptable]
- when 75..90 then STATUS_COLOR[:medium]
- when 0..75 then STATUS_COLOR[:low]
+ when min_good_value..COVERAGE_MAX then STATUS_COLOR[:good]
+ when min_acceptable_value..min_good_value then STATUS_COLOR[:acceptable]
+ when min_medium_value..min_acceptable_value then STATUS_COLOR[:medium]
+ when COVERAGE_MIN..min_medium_value then STATUS_COLOR[:low]
else
STATUS_COLOR[:unknown]
end