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 2026/08/20 19:28:40 UTC

(sling-org-apache-sling-committer-cli) branch feature/SLING-13314-ssh-commit-signing created (now 7d3da85)

This is an automated email from the ASF dual-hosted git repository.

royteeuwen pushed a change to branch feature/SLING-13314-ssh-commit-signing
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-committer-cli.git


      at 7d3da85  SLING-13314 - do not sign the commits the CLI creates

This branch includes the following new commits:

     new 7d3da85  SLING-13314 - do not sign the commits the CLI creates

The 1 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.



(sling-org-apache-sling-committer-cli) 01/01: SLING-13314 - do not sign the commits the CLI creates

Posted by ro...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

royteeuwen pushed a commit to branch feature/SLING-13314-ssh-commit-signing
in repository https://gitbox.apache.org/repos/asf/sling-org-apache-sling-committer-cli.git

commit 7d3da850eb56f3ddee0ab69779838972bab84dda
Author: Roy Teeuwen <ro...@apache.org>
AuthorDate: Thu Aug 20 21:22:33 2026 +0200

    SLING-13314 - do not sign the commits the CLI creates
    
    JGit reads commit.gpgsign from the ambient git config, but only jgit core is on the
    classpath and it registers no SignerFactory, so any committer who signs their commits
    hit UnsupportedSigningFormatException in all five places the tool commits.
    
    The container holds no key material and every commit the tool has ever made is
    unsigned, so ask for that explicitly rather than inheriting whatever the host config
    says. The resulting commit object is unchanged.
---
 .../java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommand.java | 3 +++
 .../java/org/apache/sling/cli/impl/jbake/JBakeContentUpdaterTest.java  | 2 +-
 src/test/java/org/apache/sling/cli/impl/release/SiteRepository.java    | 1 +
 .../org/apache/sling/cli/impl/release/UpdateLocalSiteCommandTest.java  | 1 +
 .../java/org/apache/sling/cli/impl/release/UpdateLocalSiteGitTest.java | 1 +
 5 files changed, 7 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommand.java b/src/main/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommand.java
index 13ae7fc..0b5ce65 100644
--- a/src/main/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommand.java
+++ b/src/main/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommand.java
@@ -323,6 +323,9 @@ public class UpdateLocalSiteCommand extends AbstractReleaseCommand {
                     .setMessage(message)
                     .setAuthor(author.getName(), author.getEmail())
                     .setCommitter(author.getName(), author.getEmail())
+                    // never sign: the container holds no key material, and JGit fails outright rather
+                    // than skipping when the ambient git config asks for a signature it cannot produce
+                    .setSign(false)
                     .call();
             git.push()
                     .setCredentialsProvider(new UsernamePasswordCredentialsProvider(
diff --git a/src/test/java/org/apache/sling/cli/impl/jbake/JBakeContentUpdaterTest.java b/src/test/java/org/apache/sling/cli/impl/jbake/JBakeContentUpdaterTest.java
index 01c8e20..505baef 100644
--- a/src/test/java/org/apache/sling/cli/impl/jbake/JBakeContentUpdaterTest.java
+++ b/src/test/java/org/apache/sling/cli/impl/jbake/JBakeContentUpdaterTest.java
@@ -260,7 +260,7 @@ public class JBakeContentUpdaterTest {
                     .addFilepattern("news.md")
                     .call();
 
-            git.commit().setMessage("Initial commit").call();
+            git.commit().setMessage("Initial commit").setSign(false).call();
 
             Path releasesPath = Paths.get(new File(tmp.getRoot(), "releases.md").toURI());
             updater.updateReleases(releasesPath, releaseName, releaseVersion, releaseDate);
diff --git a/src/test/java/org/apache/sling/cli/impl/release/SiteRepository.java b/src/test/java/org/apache/sling/cli/impl/release/SiteRepository.java
index af9e648..1fe554a 100644
--- a/src/test/java/org/apache/sling/cli/impl/release/SiteRepository.java
+++ b/src/test/java/org/apache/sling/cli/impl/release/SiteRepository.java
@@ -76,6 +76,7 @@ class SiteRepository extends ExternalResource {
                     .setMessage("seed the site")
                     .setAuthor("Seed", "seed@example.org")
                     .setCommitter("Seed", "seed@example.org")
+                    .setSign(false)
                     .call();
             git.remoteAdd()
                     .setName("origin")
diff --git a/src/test/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommandTest.java b/src/test/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommandTest.java
index 320ebca..f198e0c 100644
--- a/src/test/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommandTest.java
+++ b/src/test/java/org/apache/sling/cli/impl/release/UpdateLocalSiteCommandTest.java
@@ -249,6 +249,7 @@ public class UpdateLocalSiteCommandTest {
                     .setMessage("their work")
                     .setAuthor("Them", "them@example.org")
                     .setCommitter("Them", "them@example.org")
+                    .setSign(false)
                     .call();
         }
         Files.writeString(site.releases(), "and uncommitted on top\n", StandardCharsets.UTF_8);
diff --git a/src/test/java/org/apache/sling/cli/impl/release/UpdateLocalSiteGitTest.java b/src/test/java/org/apache/sling/cli/impl/release/UpdateLocalSiteGitTest.java
index e9f1e03..ff26db7 100644
--- a/src/test/java/org/apache/sling/cli/impl/release/UpdateLocalSiteGitTest.java
+++ b/src/test/java/org/apache/sling/cli/impl/release/UpdateLocalSiteGitTest.java
@@ -80,6 +80,7 @@ public class UpdateLocalSiteGitTest {
                     .setMessage("seed")
                     .setAuthor("Seed", "seed@example.org")
                     .setCommitter("Seed", "seed@example.org")
+                    .setSign(false)
                     .call();
             git.remoteAdd()
                     .setName("origin")