You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ra...@apache.org on 2019/05/09 12:39:26 UTC
[sling-org-apache-sling-committer-cli] branch master updated:
SLING-8391 - Add support for execution modes
This is an automated email from the ASF dual-hosted git repository.
radu pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-committer-cli.git
The following commit(s) were added to refs/heads/master by this push:
new bfebf3a SLING-8391 - Add support for execution modes
bfebf3a is described below
commit bfebf3abaf07cedbc241846dab781b23caf4bddd
Author: Radu Cotescu <ra...@apache.org>
AuthorDate: Thu May 9 14:38:56 2019 +0200
SLING-8391 - Add support for execution modes
* implemented execution modes for `release create-jira-new-version`
---
.../cli/impl/release/CreateJiraVersionCommand.java | 58 ++++++++++++++++------
1 file changed, 44 insertions(+), 14 deletions(-)
diff --git a/src/main/java/org/apache/sling/cli/impl/release/CreateJiraVersionCommand.java b/src/main/java/org/apache/sling/cli/impl/release/CreateJiraVersionCommand.java
index 647cf6d..a15c8a9 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/CreateJiraVersionCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/CreateJiraVersionCommand.java
@@ -21,6 +21,8 @@ import java.util.List;
import org.apache.sling.cli.impl.Command;
import org.apache.sling.cli.impl.ExecutionContext;
+import org.apache.sling.cli.impl.InputOption;
+import org.apache.sling.cli.impl.UserInput;
import org.apache.sling.cli.impl.jira.Issue;
import org.apache.sling.cli.impl.jira.Version;
import org.apache.sling.cli.impl.jira.VersionClient;
@@ -52,24 +54,52 @@ public class CreateJiraVersionCommand implements Command {
StagingRepository repo = repoFinder.find(Integer.parseInt(context.getTarget()));
for (Release release : Release.fromString(repo.getDescription()) ) {
Version version = versionClient.find(release);
- logger.info("Found version {}", version);
+ logger.info("Found {}.", version);
Version successorVersion = versionClient.findSuccessorVersion(release);
- logger.info("Found successor version {}", successorVersion);
+ boolean createNextRelease = false;
if ( successorVersion == null ) {
Release next = release.next();
- logger.info("Would create version {}", next.getName());
- versionClient.create(next.getName());
- logger.info("Created version {}", next.getName());
- successorVersion = versionClient.findSuccessorVersion(release);
+ if (context.getMode() == ExecutionContext.Mode.DRY_RUN) {
+ logger.info("Version {} would be created.", next.getName());
+ } else if (context.getMode() == ExecutionContext.Mode.INTERACTIVE) {
+ InputOption answer = UserInput.yesNo(String.format("Should version %s be created?", next.getName()),
+ InputOption.YES);
+ createNextRelease = (answer == InputOption.YES);
+ } else if (context.getMode() == ExecutionContext.Mode.AUTO) {
+ createNextRelease = true;
+ }
+ if (createNextRelease) {
+ versionClient.create(next.getName());
+ logger.info("Created version {}", next.getName());
+ successorVersion = versionClient.findSuccessorVersion(release);
+ }
+ } else {
+ logger.info("Found successor {}.", successorVersion);
}
-
- List<Issue> unresolvedIssues = versionClient.findUnresolvedIssues(release);
- if ( !unresolvedIssues.isEmpty() ) {
- logger.info("Will move {} unresolved issues from version {} to version {} :",
- unresolvedIssues.isEmpty(), version.getName(), successorVersion.getName());
- unresolvedIssues.stream()
- .forEach( i -> logger.info("- {} : {}", i.getKey(), i.getSummary()));
- versionClient.moveIssuesToNewVersion(version, successorVersion, unresolvedIssues);
+ if (successorVersion != null) {
+ List<Issue> unresolvedIssues = versionClient.findUnresolvedIssues(release);
+ if (!unresolvedIssues.isEmpty()) {
+ boolean moveIssues = false;
+ if (context.getMode() == ExecutionContext.Mode.DRY_RUN) {
+ logger.info("{} unresolved issues would be moved from version {} to version {} :",
+ unresolvedIssues.size(), version.getName(), successorVersion.getName());
+ } else if (context.getMode() == ExecutionContext.Mode.INTERACTIVE) {
+ InputOption answer = UserInput.yesNo(String.format("Should the %s unresolved issue(s) from version %s be " +
+ "moved " +
+ "to version %s?", unresolvedIssues.size(), version.getName(), successorVersion.getName()),
+ InputOption.YES);
+ moveIssues = (answer == InputOption.YES);
+ } else if (context.getMode() == ExecutionContext.Mode.AUTO) {
+ moveIssues = true;
+ }
+ if (moveIssues) {
+ logger.info("Moving the following issues from {} to {}.", version.getName(), successorVersion.getName());
+ unresolvedIssues
+ .forEach(i -> logger.info("- {} : {}", i.getKey(), i.getSummary()));
+ versionClient.moveIssuesToNewVersion(version, successorVersion, unresolvedIssues);
+ logger.info("Done.");
+ }
+ }
}
}
} catch (IOException e) {