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
diff options
context:
space:
mode:
authorJacob Vosmaer <jacob@gitlab.com>2019-03-21 20:11:09 +0300
committerJacob Vosmaer <jacob@gitlab.com>2019-03-21 20:11:09 +0300
commit5ca07c70236a8a9b3b2696b451d65be85d25b345 (patch)
tree467aaab1bfc7d4f1c55a1dfdbdb949891f5b373a
parentaac9da3b144957caca68b1798982b546584a9c59 (diff)
parent4dedfa1bc5375a9c5d8f49581c61b0b0e467804b (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--Dangerfile1
-rw-r--r--danger/milestones/Dangerfile23
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