diff options
author | Jacob Vosmaer <jacob@gitlab.com> | 2019-03-21 20:11:09 +0300 |
---|---|---|
committer | Jacob Vosmaer <jacob@gitlab.com> | 2019-03-21 20:11:09 +0300 |
commit | 5ca07c70236a8a9b3b2696b451d65be85d25b345 (patch) | |
tree | 467aaab1bfc7d4f1c55a1dfdbdb949891f5b373a | |
parent | aac9da3b144957caca68b1798982b546584a9c59 (diff) | |
parent | 4dedfa1bc5375a9c5d8f49581c61b0b0e467804b (diff) |
Merge branch 'zj-gitalybot-applies-milestone' into 'master'
Have GitalyBot apply the milestone if it can
Closes #1557
See merge request gitlab-org/gitaly!1140
-rw-r--r-- | Dangerfile | 1 | ||||
-rw-r--r-- | danger/milestones/Dangerfile | 23 |
2 files changed, 24 insertions, 0 deletions
diff --git a/Dangerfile b/Dangerfile index a06699f6c..66a936028 100644 --- a/Dangerfile +++ b/Dangerfile @@ -2,5 +2,6 @@ danger.import_dangerfile(path: 'danger/changelog') danger.import_dangerfile(path: 'danger/govendor_proto_check') danger.import_dangerfile(path: 'danger/labels') danger.import_dangerfile(path: 'danger/merge_request') +danger.import_dangerfile(path: 'danger/milestones') # vim: ft=ruby diff --git a/danger/milestones/Dangerfile b/danger/milestones/Dangerfile new file mode 100644 index 000000000..e967b27cf --- /dev/null +++ b/danger/milestones/Dangerfile @@ -0,0 +1,23 @@ +unless gitlab.mr_json["milestone"] + issues = gitlab.api.merge_request_closes_issues(gitlab.mr_json['project_id'], gitlab.mr_json['iid']) + + milestone_id = issues + .map { |i| i.milestone } + .compact + .reject { |m| m.state == "closed" } + .sort_by { |m| m.due_date } + .first + &.id + + if milestone_id + gitlab.api.update_merge_request( + gitlab.mr_json['project_id'], + gitlab.mr_json['iid'], + milestone_id: milestone_id + ) + else + warn "No milestone was set, nor could it be detected from the issues this merge request closes." + end +end + +# vim: ft=ruby |