From 949cc081af7c7d7fbd718b20f53cc167a3870fb6 Mon Sep 17 00:00:00 2001 From: Marcin Grzejszczak Date: Wed, 19 Apr 2017 11:11:35 +0200 Subject: [PATCH] Fixed milestone closing without this change when tag was equal to e.g. 1.2.3.RELEASE and milestone 1.2.3 the latter wasn't closed. with this change we also check the numeric equality of version and tag --- .../release/internal/git/MilestoneCloser.java | 7 ++++++- .../internal/git/MilestoneCloserTests.java | 21 +++++++++++++++++++ 2 files changed, 27 insertions(+), 1 deletion(-) diff --git a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/git/MilestoneCloser.java b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/git/MilestoneCloser.java index 0eb71019..0a76bce8 100644 --- a/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/git/MilestoneCloser.java +++ b/spring-cloud-release-tools-core/src/main/java/org/springframework/cloud/release/internal/git/MilestoneCloser.java @@ -49,7 +49,8 @@ class MilestoneCloser { for (Milestone milestone : milestones) { Milestone.Smart smartMilestone = new Milestone.Smart(milestone); try { - if (tagVersion.equals(milestoneTitle(smartMilestone))) { + String title = milestoneTitle(smartMilestone); + if (tagVersion.equals(title) || numericVersion(tagVersion).equals(title)) { log.info("Found a matching milestone - closing it"); smartMilestone.close(); matchingMilestone = true; @@ -65,6 +66,10 @@ class MilestoneCloser { } } + private String numericVersion(String version) { + return version.substring(0, version.lastIndexOf(".")); + } + String milestoneTitle(Milestone.Smart milestone) throws IOException { return milestone.title(); } diff --git a/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/git/MilestoneCloserTests.java b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/git/MilestoneCloserTests.java index 9d6b9014..438c6265 100644 --- a/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/git/MilestoneCloserTests.java +++ b/spring-cloud-release-tools-core/src/test/java/org/springframework/cloud/release/internal/git/MilestoneCloserTests.java @@ -48,6 +48,27 @@ public class MilestoneCloserTests { repo.milestones().create("0.2.0.BUILD-SNAPSHOT"); closer.closeMilestone(sleuthProject()); + + then(this.capture.toString()).doesNotContain("No matching milestone was found"); + } + + @Test + public void should_close_milestone_when_the_milestone_contains_numeric_version_only() throws IOException { + MilestoneCloser closer = new MilestoneCloser(this.github, withToken()) { + @Override String org() { + return repo.coordinates().user(); + } + + @Override String milestoneTitle(Milestone.Smart milestone) + throws IOException { + return "0.2.0"; + } + }; + repo.milestones().create("0.2.0"); + + closer.closeMilestone(sleuthProject()); + + then(this.capture.toString()).doesNotContain("No matching milestone was found"); } private ProjectVersion sleuthProject() {