Merge "Clarify error message about FORGE_SERVER permission."
diff --git a/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidators.java b/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidators.java
index 4b96578..17303f8 100644
--- a/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidators.java
+++ b/gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidators.java
@@ -610,9 +610,15 @@
&& author.getName().equals(gerritIdent.getName())
&& author.getEmailAddress().equals(gerritIdent.getEmailAddress())) {
try {
+ // Stop authors from amending the merge commits that Gerrit itself creates.
perm.check(RefPermission.FORGE_SERVER);
} catch (AuthException denied) {
- throw new CommitValidationException("do not amend merges not made by you");
+ throw new CommitValidationException(
+ String.format(
+ "pushing merge commit %s by %s requires '%s' permission",
+ receiveEvent.commit.getId(),
+ gerritIdent.getEmailAddress(),
+ RefPermission.FORGE_SERVER.name()));
} catch (PermissionBackendException e) {
log.error("cannot check FORGE_SERVER", e);
throw new CommitValidationException("internal auth error");