diff options
Diffstat (limited to 'danger/labels/Dangerfile')
-rw-r--r-- | danger/labels/Dangerfile | 40 |
1 files changed, 40 insertions, 0 deletions
diff --git a/danger/labels/Dangerfile b/danger/labels/Dangerfile new file mode 100644 index 000000000..9839b797c --- /dev/null +++ b/danger/labels/Dangerfile @@ -0,0 +1,40 @@ +def changelog_entry + @changelog_entry ||= + begin + file = git.added_files.find { |path| path =~ %r{\Achangelogs/unreleased/} } + + YAML.safe_load(File.read(file)) + rescue + # The changelog danger file will handle this + {} + end +end + +required_labels = [] + +GITALY_TEAM = %w[jacobvosmaer-gitlab johncai pokstad1 zj] + +if GITALY_TEAM.include?(gitlab.mr_author) && !gitlab.mr_labels.include?("Gitaly") + required_labels << "Gitaly" +end + +TYPE_TO_LABEL = { + 'added' => 'feature', + 'fixed' => 'bug', + 'changed' => 'backstage', + 'deprecated' => 'backstage', + 'security' => 'security', + 'removed' => 'backstage', + 'performance' => 'performance', + 'other' => 'backstage', +} + +required_labels << TYPE_TO_LABEL[changelog_entry["type"]] + +gitlab.api.update_merge_request( + gitlab.mr_json['project_id'], + gitlab.mr_json['iid'], + labels: (gitlab.mr_labels | required_labels).join(",") +) + +# vim: ft=ruby |