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-05-19 18:44:42 +0300
committerGitLab Bot <gitlab-bot@gitlab.com>2021-05-19 18:44:42 +0300
commit4555e1b21c365ed8303ffb7a3325d773c9b8bf31 (patch)
tree5423a1c7516cffe36384133ade12572cf709398d /app/helpers/dev_ops_report_helper.rb
parente570267f2f6b326480d284e0164a6464ba4081bc (diff)
Add latest changes from gitlab-org/gitlab@13-12-stable-eev13.12.0-rc42
Diffstat (limited to 'app/helpers/dev_ops_report_helper.rb')
-rw-r--r--app/helpers/dev_ops_report_helper.rb74
1 files changed, 68 insertions, 6 deletions
diff --git a/app/helpers/dev_ops_report_helper.rb b/app/helpers/dev_ops_report_helper.rb
index ab7e56fc1a2..c2200a4c3da 100644
--- a/app/helpers/dev_ops_report_helper.rb
+++ b/app/helpers/dev_ops_report_helper.rb
@@ -1,18 +1,80 @@
# frozen_string_literal: true
module DevOpsReportHelper
+ def devops_score_metrics(metric)
+ return {} if metric.blank?
+
+ {
+ averageScore: average_score_data(metric),
+ cards: devops_score_card_data(metric),
+ createdAt: metric.created_at.strftime('%Y-%m-%d %H:%M')
+ }
+ end
+
+ private
+
+ def format_score(score)
+ precision = score < 1 ? 2 : 1
+ number_with_precision(score, precision: precision)
+ end
+
def score_level(score)
if score < 33.33
- 'low'
+ {
+ label: s_('DevopsReport|Low'),
+ variant: 'muted'
+ }
elsif score < 66.66
- 'average'
+ {
+ label: s_('DevopsReport|Moderate'),
+ variant: 'neutral'
+ }
else
- 'high'
+ {
+ label: s_('DevopsReport|High'),
+ variant: 'success'
+ }
end
end
- def format_score(score)
- precision = score < 1 ? 2 : 1
- number_with_precision(score, precision: precision)
+ def average_score_level(score)
+ if score < 33.33
+ {
+ label: s_('DevopsReport|Low'),
+ variant: 'danger',
+ icon: 'status-failed'
+ }
+ elsif score < 66.66
+ {
+ label: s_('DevopsReport|Moderate'),
+ variant: 'warning',
+ icon: 'status-alert'
+ }
+ else
+ {
+ label: s_('DevopsReport|High'),
+ variant: 'success',
+ icon: 'status_success_solid'
+ }
+ end
+ end
+
+ def average_score_data(metric)
+ {
+ value: format_score(metric.average_percentage_score),
+ scoreLevel: average_score_level(metric.average_percentage_score)
+ }
+ end
+
+ def devops_score_card_data(metric)
+ metric.cards.map do |card|
+ {
+ title: "#{card.title} #{card.description}",
+ usage: format_score(card.instance_score),
+ leadInstance: format_score(card.leader_score),
+ score: format_score(card.percentage_score),
+ scoreLevel: score_level(card.percentage_score)
+ }
+ end
end
end