diff --git a/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java b/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java index 82cf7cd..fda32d1 100644 --- a/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java +++ b/release-tools/src/main/java/org/springframework/data/release/git/GitCommands.java @@ -36,6 +36,7 @@ import org.springframework.data.release.issues.Tickets; import org.springframework.data.release.model.ArtifactVersion; import org.springframework.data.release.model.ModuleIteration; import org.springframework.data.release.model.Project; +import org.springframework.data.release.model.Projects; import org.springframework.data.release.model.ReleaseTrains; import org.springframework.data.release.model.Train; import org.springframework.data.release.model.TrainIteration; @@ -89,24 +90,25 @@ class GitCommands extends TimedCommand { } @CliCommand("git changelog") - public String changelog(@CliOption(key = "", mandatory = true) TrainIteration iteration) throws Exception { + public String changelog(@CliOption(key = "", mandatory = true) TrainIteration iteration, + @CliOption(key = "module") String moduleName) { TrainIteration previousIteration = git.getPreviousIteration(iteration); - return ExecutionUtils.runAndReturn(executor, iteration, module -> { + if (StringUtils.hasText(moduleName)) { + ModuleIteration module = iteration.getModule(Projects.requiredByName(moduleName)); List ticketRefs = git.getTicketReferencesBetween(module.getProject(), previousIteration, iteration); - return Changelog.of(module, toTickets(module, ticketRefs)); + Changelog changelog = Changelog.of(module, toTickets(module, ticketRefs)); + return String.format("%s %s%n%s", module.getModule().getProject().getFullName(), ArtifactVersion.of(module), + changelog.toString(false, " ")); + } - }).stream() // - .map(changelog -> { - - ModuleIteration module = changelog.getModule(); - return String.format("%s %s%n%s", module.getModule().getProject().getFullName(), ArtifactVersion.of(module), - changelog.toString(false, " ")); - }) // + return ExecutionUtils + .runAndReturn(executor, iteration, module -> changelog(iteration, module.getModule().getProject().getName())) // + .stream() // .collect(Collectors.joining("\n")); } diff --git a/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java b/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java index a81cd8a..012c5c6 100644 --- a/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java +++ b/release-tools/src/main/java/org/springframework/data/release/issues/IssueTrackerCommands.java @@ -138,22 +138,29 @@ class IssueTrackerCommands extends TimedCommand { @CliCommand("tracker open-tickets") public String openTickets(@CliOption(key = "", mandatory = true) TrainIteration iteration, // - @CliOption(key = "module") String moduleName) { + @CliOption(key = "module") String moduleName, + @CliOption(key = "filter-release-tickets") Boolean filterReleaseTickets) { if (StringUtils.hasText(moduleName)) { Project project = Projects.requiredByName(moduleName); ModuleIteration module = iteration.getModule(project); - String tickets = getTrackerFor(module).getTicketsFor(module).stream().filter(it -> !it.isResolved()) - .collect(Tickets.toTicketsCollector()).toString(false); - return String.format("%s - %s%n%s%n", project.getFullName(), module.getFullVersionString(), tickets); + return getTrackerFor(module).getTicketsFor(module) // + .stream() // + .filter(it -> !it.isResolved() + && ((filterReleaseTickets == null || !filterReleaseTickets) || !it.isReleaseTicket())) // + .collect(Tickets.toTicketsCollector()) // + .toString(false); } return ExecutionUtils.runAndReturn(executor, iteration, - moduleIteration -> openTickets(iteration, moduleIteration.getModule().getProject().getName())).// - stream().collect(Collectors.joining("\n")); + moduleIteration -> openTickets(iteration, moduleIteration.getModule().getProject().getName(), + filterReleaseTickets)) + .stream() // + .filter(StringUtils::hasText) // + .collect(Collectors.joining("\n")); } @CliCommand("tracker close")