This is an automated email from the ASF dual-hosted git repository. rombert pushed a commit to branch feature/SLING-8337 in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-committer-cli.git
commit 7a4c927f8b9396ece2ca91b09b5454f0c3af430d Author: Radu Cotescu <[email protected]> AuthorDate: Wed Mar 27 15:42:54 2019 +0100 SLING-8311 - Investigate creating a Sling CLI tool for development task automation * improved email templates to contain the full name of the current user --- .../org/apache/sling/cli/impl/people/MembersFinder.java | 14 ++++++++++++++ .../sling/cli/impl/release/PrepareVoteEmailCommand.java | 13 +++++++++++-- .../apache/sling/cli/impl/release/TallyVotesCommand.java | 7 +------ 3 files changed, 26 insertions(+), 8 deletions(-) diff --git a/src/main/java/org/apache/sling/cli/impl/people/MembersFinder.java b/src/main/java/org/apache/sling/cli/impl/people/MembersFinder.java index 10cba19..a27bf6c 100644 --- a/src/main/java/org/apache/sling/cli/impl/people/MembersFinder.java +++ b/src/main/java/org/apache/sling/cli/impl/people/MembersFinder.java @@ -107,4 +107,18 @@ public class MembersFinder { return null; } + public Member getCurrentMember() { + final String currentUserId; + if (System.getProperty("asf.username") != null) { + currentUserId = System.getProperty("asf.username"); + } else { + currentUserId = System.getenv("ASF_USERNAME"); + } + if (currentUserId == null) { + throw new IllegalStateException(String.format("Expected to find the current user defined either through the %s system " + + "property or through the %s environment variable.", "asf.username", "ASF_USERNAME")); + } + return getMemberById(currentUserId); + } + } diff --git a/src/main/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommand.java b/src/main/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommand.java index 9819107..21b72f8 100644 --- a/src/main/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommand.java +++ b/src/main/java/org/apache/sling/cli/impl/release/PrepareVoteEmailCommand.java @@ -23,6 +23,7 @@ import org.apache.sling.cli.impl.jira.Version; import org.apache.sling.cli.impl.jira.VersionFinder; import org.apache.sling.cli.impl.nexus.StagingRepository; import org.apache.sling.cli.impl.nexus.StagingRepositoryFinder; +import org.apache.sling.cli.impl.people.MembersFinder; import org.osgi.service.component.annotations.Component; import org.osgi.service.component.annotations.Reference; import org.slf4j.Logger; @@ -34,6 +35,9 @@ import org.slf4j.LoggerFactory; Command.PROPERTY_NAME_SUMMARY + "=Prepares an email vote for the specified release." }) public class PrepareVoteEmailCommand implements Command { + @Reference + private MembersFinder membersFinder; + // TODO - replace with file template private static final String EMAIL_TEMPLATE ="To: \"Sling Developers List\" <[email protected]>\n" + "Subject: [VOTE] Release ##RELEASE_NAME##\n" + @@ -58,7 +62,11 @@ public class PrepareVoteEmailCommand implements Command { " [ ] 0 Don't care\n" + " [ ] -1 Don't release, because ...\n" + "\n" + - "This majority vote is open for at least 72 hours.\n"; + "This majority vote is open for at least 72 hours.\n" + + "\n" + + "Regards,\n" + + "##USER_NAME##\n" + + "\n"; private final Logger logger = LoggerFactory.getLogger(getClass()); @@ -80,7 +88,8 @@ public class PrepareVoteEmailCommand implements Command { .replace("##RELEASE_NAME##", release.getFullName()) .replace("##RELEASE_ID##", String.valueOf(repoId)) .replace("##VERSION_ID##", String.valueOf(version.getId())) - .replace("##FIXED_ISSUES_COUNT##", String.valueOf(version.getIssuesFixedCount())); + .replace("##FIXED_ISSUES_COUNT##", String.valueOf(version.getIssuesFixedCount())) + .replace("##USER_NAME##", membersFinder.getCurrentMember().getName()); logger.info(emailContents); diff --git a/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java b/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java index 74cdd23..90244eb 100644 --- a/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java +++ b/src/main/java/org/apache/sling/cli/impl/release/TallyVotesCommand.java @@ -95,15 +95,10 @@ public class TallyVotesCommand implements Command { } } } - String currentUserId = System.getProperty("asf.username"); - if (currentUserId == null) { - currentUserId = System.getenv("ASF_USERNAME"); - } - Member currentUser = membersFinder.getMemberById(currentUserId); String email = EMAIL_TEMPLATE .replace("##RELEASE_NAME##", release.getFullName()) .replace("##BINDING_VOTERS##", String.join(", ", bindingVoters)) - .replace("##USER_NAME##", currentUser == null ? "" : currentUser.getName()); + .replace("##USER_NAME##", membersFinder.getCurrentMember().getName()); if (nonBindingVoters.isEmpty()) { email = email.replace("##NON_BINDING_VOTERS##", "none"); } else {
