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 12:31:43 UTC

[sling-org-apache-sling-committer-cli] 14/44: 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 {