Always return the output from ref-update hook Change I5905c44c7 moved the invocation of the ref-update hook out of the ReceiveCommits implementation and into CommitValidators. Since then, the output of the ref-update hook is not sent back to the git client except in the case of an error or rejection. Update the handling of the ref-update hook in the plugin so that its output is returned back to the caller as a commit validation message which is then sent to the client. Change-Id: I88af8a3c690cc226214208c3c93f552f054ccae0 Reported-By: Robert Niemi <robert.den.klurige@googlemail.com>
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java index 8f8ea57..b95c2a3 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/CommitReceived.java
@@ -17,6 +17,7 @@ import static com.google.gerrit.reviewdb.client.RefNames.REFS_CHANGES; import static org.eclipse.jgit.lib.Constants.R_HEADS; +import com.google.common.collect.ImmutableList; import com.google.gerrit.server.IdentifiedUser; import com.google.gerrit.server.events.CommitReceivedEvent; import com.google.gerrit.server.git.validators.CommitValidationException; @@ -70,8 +71,14 @@ args.add("--newrev", receiveEvent.commit.name()); HookResult result = hook.run(args); - if (result != null && result.getExitValue() != 0) { - throw new CommitValidationException(result.toString().trim()); + if (result != null) { + String output = result.toString(); + if (result.getExitValue() != 0) { + throw new CommitValidationException(output); + } + if (!output.isEmpty()) { + return ImmutableList.of(new CommitValidationMessage(output, false)); + } } return Collections.emptyList();
diff --git a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookResult.java b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookResult.java index c9711db..36dab41 100644 --- a/src/main/java/com/googlesource/gerrit/plugins/hooks/HookResult.java +++ b/src/main/java/com/googlesource/gerrit/plugins/hooks/HookResult.java
@@ -57,6 +57,6 @@ sb.append(executionError); } - return sb.toString(); + return sb.toString().trim(); } }