diff options
Diffstat (limited to 'danger/specialization_labels')
-rw-r--r-- | danger/specialization_labels/Dangerfile | 17 |
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? |