From 9437b7be9f66efc4f8b2cc70a6c7b474ba20e93c Mon Sep 17 00:00:00 2001 From: David Pursehouse Date: Mon, 5 Nov 2012 23:48:58 +0900 Subject: [PATCH] Move commit message length checks to validation plugin Checks of the commit message's length are removed from the ReceiveCommits class. These checks are now done in the commit message length validation plugin, which is added as a core plugin. Change-Id: Ia0858b11e475c48f50ec63fbe0076239edf8f64b --- Documentation/config-validation.txt | 3 ++ gerrit-package-plugins/pom.xml | 6 +++ .../gerrit/server/git/ReceiveCommits.java | 38 ------------------- 3 files changed, 9 insertions(+), 38 deletions(-) diff --git a/Documentation/config-validation.txt b/Documentation/config-validation.txt index 2e8f52c2bb..ab5d04a967 100644 --- a/Documentation/config-validation.txt +++ b/Documentation/config-validation.txt @@ -11,6 +11,9 @@ client. To make use of this feature, a plugin must implement the `CommitValidationListener` interface. +Out of the box, Gerrit includes a plugin that checks the length of the +subject and body lines of commit messages on uploaded commits. + GERRIT ------ diff --git a/gerrit-package-plugins/pom.xml b/gerrit-package-plugins/pom.xml index a653ee6bd2..aed755845a 100644 --- a/gerrit-package-plugins/pom.xml +++ b/gerrit-package-plugins/pom.xml @@ -52,6 +52,12 @@ limitations under the License. 1.0-SNAPSHOT provided + + com.googlesource.gerrit.plugins.validators + commit-message-length-validator + 1.0-SNAPSHOT + provided + diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java index 3bcc704b34..781202edb1 100644 --- a/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java +++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/ReceiveCommits.java @@ -89,7 +89,6 @@ import com.google.inject.assistedinject.Assisted; import org.eclipse.jgit.errors.IncorrectObjectTypeException; import org.eclipse.jgit.errors.MissingObjectException; -import org.eclipse.jgit.lib.AbbreviatedObjectId; import org.eclipse.jgit.lib.BatchRefUpdate; import org.eclipse.jgit.lib.Config; import org.eclipse.jgit.lib.Constants; @@ -1341,7 +1340,6 @@ public class ReceiveCommits { CheckedFuture insertChange() throws IOException { rp.getRevWalk().parseBody(commit); - warnMalformedMessage(commit); final Thread caller = Thread.currentThread(); ListenableFuture future = changeUpdateExector.submit( @@ -1632,7 +1630,6 @@ public class ReceiveCommits { CheckedFuture insertPatchSet() throws IOException { rp.getRevWalk().parseBody(newCommit); - warnMalformedMessage(newCommit); final Thread caller = Thread.currentThread(); ListenableFuture future = changeUpdateExector.submit( @@ -1904,41 +1901,6 @@ public class ReceiveCommits { return true; } - private void warnMalformedMessage(RevCommit c) { - ObjectReader reader = rp.getRevWalk().getObjectReader(); - if (65 < c.getShortMessage().length()) { - AbbreviatedObjectId id; - try { - id = reader.abbreviate(c); - } catch (IOException err) { - id = c.abbreviate(6); - } - addMessage("(W) " + id.name() // - + ": commit subject >65 characters; use shorter first paragraph"); - } - - int longLineCnt = 0, nonEmptyCnt = 0; - for (String line : c.getFullMessage().split("\n")) { - if (!line.trim().isEmpty()) { - nonEmptyCnt++; - } - if (70 < line.length()) { - longLineCnt++; - } - } - - if (0 < longLineCnt && 33 < longLineCnt * 100 / nonEmptyCnt) { - AbbreviatedObjectId id; - try { - id = reader.abbreviate(c); - } catch (IOException err) { - id = c.abbreviate(6); - } - addMessage("(W) " + id.name() // - + ": commit message lines >70 characters; manually wrap lines"); - } - } - private void autoCloseChanges(final ReceiveCommand cmd) { final RevWalk rw = rp.getRevWalk(); try {