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:
Diffstat (limited to 'danger/specialization_labels/Dangerfile')
-rw-r--r--danger/specialization_labels/Dangerfile26
1 files changed, 26 insertions, 0 deletions
diff --git a/danger/specialization_labels/Dangerfile b/danger/specialization_labels/Dangerfile
new file mode 100644
index 00000000000..919f7313b49
--- /dev/null
+++ b/danger/specialization_labels/Dangerfile
@@ -0,0 +1,26 @@
+# frozen_string_literal: true
+
+gitlab_danger = GitlabDanger.new(helper.gitlab_helper)
+
+return unless gitlab_danger.ci?
+
+SPECIALIZATIONS = {
+ database: 'database',
+ backend: 'backend',
+ frontend: 'frontend',
+ docs: 'documentation',
+ qa: 'QA',
+ engineering_productivity: 'Engineering Productivity'
+}.freeze
+
+labels_to_add = helper.changes_by_category.each_with_object([]) do |(category, _changes), memo|
+ label = SPECIALIZATIONS[category]
+
+ memo << label if label && !gitlab.mr_labels.include?(label)
+end
+
+if labels_to_add.any?
+ gitlab.api.update_merge_request(gitlab.mr_json['project_id'],
+ gitlab.mr_json['iid'],
+ add_labels: labels_to_add.join(','))
+end