summaryrefslogtreecommitdiff
path: root/danger/specialization_labels
diff options
context:
space:
mode:
Diffstat (limited to 'danger/specialization_labels')
-rw-r--r--danger/specialization_labels/Dangerfile17
1 files changed, 10 insertions, 7 deletions
diff --git a/danger/specialization_labels/Dangerfile b/danger/specialization_labels/Dangerfile
index e86d66f5fbc..24a759cddc8 100644
--- a/danger/specialization_labels/Dangerfile
+++ b/danger/specialization_labels/Dangerfile
@@ -6,21 +6,24 @@ SPECIALIZATIONS = {
database: 'database',
backend: 'backend',
frontend: 'frontend',
+ ux: 'UX',
docs: 'documentation',
qa: 'QA',
- tooling: 'tooling',
+ tooling: 'type::tooling',
ci_template: 'ci::templates',
feature_flag: 'feature flag'
}.freeze
labels_to_add = project_helper.changes_by_category.each_with_object([]) do |(category, _changes), memo|
label = SPECIALIZATIONS[category]
+ next unless label
+ next if gitlab.mr_labels.include?(label)
- memo << label if label && !gitlab.mr_labels.include?(label)
-end
+ # Don't override already-set scoped labels.
+ label_scope = label.split('::')[0...-1].join('::')
+ next if !label_scope.empty? && gitlab.mr_labels.any? { |mr_label| mr_label.start_with?(label_scope) }
-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(','))
+ memo << label
end
+
+project_helper.labels_to_add.concat(labels_to_add) if labels_to_add.any?