diff --git a/spotless-changelog-lib/src/main/java/com/diffplug/spotless/changelog/GitActions.java b/spotless-changelog-lib/src/main/java/com/diffplug/spotless/changelog/GitActions.java index 4166b9a..ec40aad 100644 --- a/spotless-changelog-lib/src/main/java/com/diffplug/spotless/changelog/GitActions.java +++ b/spotless-changelog-lib/src/main/java/com/diffplug/spotless/changelog/GitActions.java @@ -1,5 +1,5 @@ /* - * Copyright (C) 2019-2023 DiffPlug + * Copyright (C) 2019-2024 DiffPlug * * Licensed under the Apache License, Version 2.0 (the "License"); * you may not use this file except in compliance with the License. @@ -116,6 +116,21 @@ public void tagBranchPush() throws GitAPIException { push(cfg.branch, RemoteRefUpdate.Status.OK); } + public void runAfterPush() { + if (cfg.runAfterPush == null) { + return; + } + try (var runner = new ProcessRunner()) { + var result = runner.shell(formatTagMessage(cfg.runAfterPush)); + System.out.write(result.stdOut()); + System.out.flush(); + System.err.write(result.stdErr()); + System.err.flush(); + } catch (IOException | InterruptedException e) { + throw new RuntimeException("runAfterPush failed: " + formatTagMessage(cfg.runAfterPush), e); + } + } + private String formatCommitMessage(final String commitMessage) { return commitMessage.replace(GitCfg.COMMIT_MESSAGE_VERSION, model.versions().next()); } diff --git a/spotless-changelog-plugin-gradle/src/main/java/com/diffplug/spotless/changelog/gradle/ChangelogPlugin.java b/spotless-changelog-plugin-gradle/src/main/java/com/diffplug/spotless/changelog/gradle/ChangelogPlugin.java index 451f0f3..618cbc6 100644 --- a/spotless-changelog-plugin-gradle/src/main/java/com/diffplug/spotless/changelog/gradle/ChangelogPlugin.java +++ b/spotless-changelog-plugin-gradle/src/main/java/com/diffplug/spotless/changelog/gradle/ChangelogPlugin.java @@ -247,17 +247,7 @@ public void push() throws IOException, GitAPIException { GitActions git = data.gitCfg.withChangelog(data.changelogFile, data.model()); git.addAndCommit(); git.tagBranchPush(); - if (data.gitCfg.runAfterPush != null) { - try (var runner = new ProcessRunner()) { - var result = runner.shell(data.gitCfg.runAfterPush); - System.out.write(result.stdOut()); - System.out.flush(); - System.err.write(result.stdErr()); - System.err.flush(); - } catch (IOException | InterruptedException e) { - throw new GradleException("runAfterPush failed: " + data.gitCfg.runAfterPush, e); - } - } + git.runAfterPush(); } } }