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:
authorZeger-Jan van de Weg <git@zjvandeweg.nl>2019-03-19 16:57:38 +0300
committerZeger-Jan van de Weg <git@zjvandeweg.nl>2019-03-20 17:32:28 +0300
commit4dedfa1bc5375a9c5d8f49581c61b0b0e467804b (patch)
treefd63584553adb7be79a936b6a1b1bbb012d6bcaf
parentabccf3c2de9c66edefcf4e32757702142c0b2bc5 (diff)
Have GitalyBot apply the milestone if it can
GitalyBot gets the issues the merge request closes and will detect the first upcoming milestone and apply it. This can be overridden by the user, and GitalyBot will not try again. Another issue might be that if a MR slips, the milestone isn't updated.
-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