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

gitlab.com/gitlab-org/gitaly.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
path: root/danger
diff options
context:
space:
mode:
Diffstat (limited to 'danger')
-rw-r--r--danger/labels/Dangerfile16
1 files changed, 14 insertions, 2 deletions
diff --git a/danger/labels/Dangerfile b/danger/labels/Dangerfile
index cd27a323b..6770b718c 100644
--- a/danger/labels/Dangerfile
+++ b/danger/labels/Dangerfile
@@ -5,7 +5,7 @@ def changelog_entry
YAML.safe_load(File.read(file))
rescue
- # The changelog danger file will handle this
+ # The change log danger file will handle this
{}
end
end
@@ -30,12 +30,24 @@ TYPE_TO_LABEL = {
nil => []
}
+INHERIRABLE_LABELS = TYPE_TO_LABEL.values.flatten + %w[Deliverable]
+
+def inherited_labels
+ gitlab.api
+ .merge_request_closes_issues( gitlab.mr_json['project_id'], gitlab.mr_json['iid'])
+ .flat_map { |i| i.labels }
+ .compact
+ .uniq
+ .select { |label| INHERIRABLE_LABELS.include?(label) }
+end
+
required_labels.concat(TYPE_TO_LABEL[changelog_entry["type"]])
+mr_labels = gitlab.mr_labels | required_labels |inherited_labels
gitlab.api.update_merge_request(
gitlab.mr_json['project_id'],
gitlab.mr_json['iid'],
- labels: (gitlab.mr_labels | required_labels).join(",")
+ labels: mr_labels.join(",")
)
# vim: ft=ruby