diff --git a/java/com/google/gerrit/server/git/receive/BranchCommitValidator.java b/java/com/google/gerrit/server/git/receive/BranchCommitValidator.java index 24b6ab1ee2..64f54d6b79 100644 --- a/java/com/google/gerrit/server/git/receive/BranchCommitValidator.java +++ b/java/com/google/gerrit/server/git/receive/BranchCommitValidator.java @@ -110,7 +110,7 @@ public class BranchCommitValidator { for (CommitValidationMessage m : validators.validate(receiveEvent)) { messages.add( - new CommitValidationMessage(messageForCommit(commit, m.getMessage()), m.isError())); + new CommitValidationMessage(messageForCommit(commit, m.getMessage()), m.getType())); } } catch (CommitValidationException e) { logger.atFine().log("Commit validation failed on %s", commit.name()); @@ -118,7 +118,7 @@ public class BranchCommitValidator { // The non-error messages may contain background explanation for the // fatal error, so have to preserve all messages. messages.add( - new CommitValidationMessage(messageForCommit(commit, m.getMessage()), m.isError())); + new CommitValidationMessage(messageForCommit(commit, m.getMessage()), m.getType())); } cmd.setResult(REJECTED_OTHER_REASON, messageForCommit(commit, e.getMessage())); return false; diff --git a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java index 37fef1ea18..00fb226fd9 100644 --- a/java/com/google/gerrit/server/git/receive/ReceiveCommits.java +++ b/java/com/google/gerrit/server/git/receive/ReceiveCommits.java @@ -481,20 +481,26 @@ class ReceiveCommits { return project; } + private void addMessage(String message, ValidationMessage.Type type) { + messages.add(new CommitValidationMessage(message, type)); + } + private void addMessage(String message) { - messages.add(new CommitValidationMessage(message, false)); + messages.add(new CommitValidationMessage(message, ValidationMessage.Type.OTHER)); } private void addError(String error) { - messages.add(new CommitValidationMessage(error, true)); + addMessage(error, ValidationMessage.Type.ERROR); } void sendMessages() { for (ValidationMessage m : messages) { + String msg = m.getType().getPrefix() + m.getMessage(); + if (m.isError()) { - messageSender.sendError(m.getMessage()); + messageSender.sendError(msg); } else { - messageSender.sendMessage(m.getMessage()); + messageSender.sendMessage(msg); } } } @@ -2261,11 +2267,8 @@ class ReceiveCommits { rw.parseBody(c); messages.add( new CommitValidationMessage( - "ERROR: Implicit Merge of " - + c.abbreviate(7).name() - + " " - + c.getShortMessage(), - false)); + "Implicit Merge of " + c.abbreviate(7).name() + " " + c.getShortMessage(), + ValidationMessage.Type.ERROR)); } reject(magicBranch.cmd, "implicit merges detected"); } diff --git a/java/com/google/gerrit/server/git/validators/CommitValidationMessage.java b/java/com/google/gerrit/server/git/validators/CommitValidationMessage.java index a77848293e..941b66a167 100644 --- a/java/com/google/gerrit/server/git/validators/CommitValidationMessage.java +++ b/java/com/google/gerrit/server/git/validators/CommitValidationMessage.java @@ -15,6 +15,10 @@ package com.google.gerrit.server.git.validators; public class CommitValidationMessage extends ValidationMessage { + public CommitValidationMessage(String message, ValidationMessage.Type type) { + super(message, type); + } + public CommitValidationMessage(String message, boolean isError) { super(message, isError); } diff --git a/java/com/google/gerrit/server/git/validators/CommitValidators.java b/java/com/google/gerrit/server/git/validators/CommitValidators.java index a66e07fda6..fed2a59768 100644 --- a/java/com/google/gerrit/server/git/validators/CommitValidators.java +++ b/java/com/google/gerrit/server/git/validators/CommitValidators.java @@ -45,6 +45,7 @@ import com.google.gerrit.server.config.UrlFormatter; import com.google.gerrit.server.events.CommitReceivedEvent; import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.ValidationError; +import com.google.gerrit.server.git.validators.ValidationMessage.Type; import com.google.gerrit.server.permissions.PermissionBackend; import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gerrit.server.permissions.RefPermission; @@ -310,7 +311,7 @@ public class CommitValidators { private CommitValidationMessage getMissingChangeIdErrorMsg(String errMsg, RevCommit c) { StringBuilder sb = new StringBuilder(); - sb.append("ERROR: ").append(errMsg).append("\n"); + sb.append(errMsg).append("\n"); boolean hinted = false; if (c.getFullMessage().contains(CHANGE_ID_PREFIX)) { @@ -332,7 +333,7 @@ public class CommitValidators { .append("and then amend the commit:\n") .append(" git commit --amend\n"); } - return new CommitValidationMessage(sb.toString(), false); + return new CommitValidationMessage(sb.toString(), Type.ERROR); } private String getCommitMessageHookInstallationHint() { @@ -692,7 +693,10 @@ public class CommitValidators { .map( p -> new CommitValidationMessage( - p.message, p.status == ConsistencyProblemInfo.Status.ERROR)) + p.message, + p.status == ConsistencyProblemInfo.Status.ERROR + ? ValidationMessage.Type.ERROR + : ValidationMessage.Type.OTHER)) .collect(toList()); if (msgs.stream().anyMatch(ValidationMessage::isError)) { throw new CommitValidationException("invalid external IDs", msgs); @@ -753,7 +757,7 @@ public class CommitValidators { "invalid account configuration", errorMessages .stream() - .map(m -> new CommitValidationMessage(m, true)) + .map(m -> new CommitValidationMessage(m, Type.ERROR)) .collect(toList())); } } catch (IOException e) { @@ -836,7 +840,7 @@ public class CommitValidators { .append(urlFormatter.getSettingsUrl("EmailAddresses").get()) .append("\n\n"); } - return new CommitValidationMessage(sb.toString(), true); + return new CommitValidationMessage(sb.toString(), Type.ERROR); } /** @@ -857,6 +861,6 @@ public class CommitValidators { } private static void addError(String error, List messages) { - messages.add(new CommitValidationMessage(error, true)); + messages.add(new CommitValidationMessage(error, Type.ERROR)); } } diff --git a/java/com/google/gerrit/server/git/validators/ValidationMessage.java b/java/com/google/gerrit/server/git/validators/ValidationMessage.java index e1098aa099..2e912f6c25 100644 --- a/java/com/google/gerrit/server/git/validators/ValidationMessage.java +++ b/java/com/google/gerrit/server/git/validators/ValidationMessage.java @@ -15,19 +15,45 @@ package com.google.gerrit.server.git.validators; public class ValidationMessage { + public enum Type { + ERROR("ERROR: "), + WARNING("WARNING: "), + HINT("hint: "), + OTHER(""); + + private final String prefix; + + Type(String prefix) { + this.prefix = prefix; + } + + public String getPrefix() { + return prefix; + } + }; + private final String message; - private final boolean isError; + private final Type type; + + public ValidationMessage(String message, Type type) { + this.message = message; + this.type = type; + } public ValidationMessage(String message, boolean isError) { this.message = message; - this.isError = isError; + this.type = (isError ? Type.ERROR : Type.OTHER); } public String getMessage() { return message; } + public Type getType() { + return type; + } + public boolean isError() { - return isError; + return type == Type.ERROR; } }