You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@sling.apache.org by ro...@apache.org on 2019/04/24 10:48:24 UTC
[sling-org-apache-sling-committer-cli] 14/42: SLING-8311 -
Investigate creating a Sling CLI tool for development task automation
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 <ra...@apache.org>
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\" <de...@sling.apache.org>\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 {