Merge branch 'stable-2.7'
* stable-2.7: Fix: failed to validate Change-Id of some new patch-sets pushed by 'refs/changes' Conflicts: gerrit-server/src/main/java/com/google/gerrit/server/ChangeUtil.java gerrit-server/src/main/java/com/google/gerrit/server/git/validators/CommitValidators.java Change-Id: I89ffdf132ad320215b00d0628c07797157a1b925
This commit is contained in:
@@ -43,6 +43,7 @@ import com.google.gerrit.server.project.NoSuchChangeException;
|
|||||||
import com.google.gerrit.server.project.NoSuchProjectException;
|
import com.google.gerrit.server.project.NoSuchProjectException;
|
||||||
import com.google.gerrit.server.project.RefControl;
|
import com.google.gerrit.server.project.RefControl;
|
||||||
import com.google.gerrit.server.util.IdGenerator;
|
import com.google.gerrit.server.util.IdGenerator;
|
||||||
|
import com.google.gerrit.server.util.MagicBranch;
|
||||||
import com.google.gwtorm.server.OrmConcurrencyException;
|
import com.google.gwtorm.server.OrmConcurrencyException;
|
||||||
import com.google.gwtorm.server.OrmException;
|
import com.google.gwtorm.server.OrmException;
|
||||||
|
|
||||||
@@ -252,11 +253,14 @@ public class ChangeUtil {
|
|||||||
changeInserterFactory.create(refControl, change, revertCommit);
|
changeInserterFactory.create(refControl, change, revertCommit);
|
||||||
PatchSet ps = ins.getPatchSet();
|
PatchSet ps = ins.getPatchSet();
|
||||||
|
|
||||||
|
String ref = refControl.getRefName();
|
||||||
|
final String cmdRef =
|
||||||
|
MagicBranch.NEW_PUBLISH_CHANGE
|
||||||
|
+ ref.substring(ref.lastIndexOf('/') + 1);
|
||||||
CommitReceivedEvent commitReceivedEvent =
|
CommitReceivedEvent commitReceivedEvent =
|
||||||
new CommitReceivedEvent(new ReceiveCommand(ObjectId.zeroId(),
|
new CommitReceivedEvent(new ReceiveCommand(ObjectId.zeroId(),
|
||||||
revertCommit.getId(), ps.getRefName()), refControl
|
revertCommit.getId(), cmdRef), refControl.getProjectControl()
|
||||||
.getProjectControl().getProject(), refControl.getRefName(),
|
.getProject(), refControl.getRefName(), revertCommit, user);
|
||||||
revertCommit, user);
|
|
||||||
|
|
||||||
try {
|
try {
|
||||||
commitValidators.validateForGerritCommits(commitReceivedEvent);
|
commitValidators.validateForGerritCommits(commitReceivedEvent);
|
||||||
|
|||||||
@@ -240,9 +240,12 @@ public class PatchSetInserter {
|
|||||||
private void validate() throws InvalidChangeOperationException {
|
private void validate() throws InvalidChangeOperationException {
|
||||||
CommitValidators cv = commitValidatorsFactory.create(refControl, sshInfo, git);
|
CommitValidators cv = commitValidatorsFactory.create(refControl, sshInfo, git);
|
||||||
|
|
||||||
|
String refName = patchSet.getRefName();
|
||||||
CommitReceivedEvent event = new CommitReceivedEvent(
|
CommitReceivedEvent event = new CommitReceivedEvent(
|
||||||
new ReceiveCommand(ObjectId.zeroId(), commit.getId(),
|
new ReceiveCommand(
|
||||||
patchSet.getRefName()),
|
ObjectId.zeroId(),
|
||||||
|
commit.getId(),
|
||||||
|
refName.substring(0, refName.lastIndexOf('/') + 1) + "new"),
|
||||||
refControl.getProjectControl().getProject(), refControl.getRefName(),
|
refControl.getProjectControl().getProject(), refControl.getRefName(),
|
||||||
commit, user);
|
commit, user);
|
||||||
|
|
||||||
|
|||||||
@@ -151,7 +151,7 @@ public class ReceiveCommits {
|
|||||||
private static final Logger log =
|
private static final Logger log =
|
||||||
LoggerFactory.getLogger(ReceiveCommits.class);
|
LoggerFactory.getLogger(ReceiveCommits.class);
|
||||||
|
|
||||||
private static final Pattern NEW_PATCHSET =
|
public static final Pattern NEW_PATCHSET =
|
||||||
Pattern.compile("^refs/changes/(?:[0-9][0-9]/)?([1-9][0-9]*)(?:/new)?$");
|
Pattern.compile("^refs/changes/(?:[0-9][0-9]/)?([1-9][0-9]*)(?:/new)?$");
|
||||||
|
|
||||||
private static final FooterKey CHANGE_ID = new FooterKey("Change-Id");
|
private static final FooterKey CHANGE_ID = new FooterKey("Change-Id");
|
||||||
|
|||||||
@@ -24,6 +24,7 @@ import com.google.gerrit.server.config.GerritServerConfig;
|
|||||||
import com.google.gerrit.server.events.CommitReceivedEvent;
|
import com.google.gerrit.server.events.CommitReceivedEvent;
|
||||||
import com.google.gerrit.server.git.GitRepositoryManager;
|
import com.google.gerrit.server.git.GitRepositoryManager;
|
||||||
import com.google.gerrit.server.git.ProjectConfig;
|
import com.google.gerrit.server.git.ProjectConfig;
|
||||||
|
import com.google.gerrit.server.git.ReceiveCommits;
|
||||||
import com.google.gerrit.server.git.ValidationError;
|
import com.google.gerrit.server.git.ValidationError;
|
||||||
import com.google.gerrit.server.project.ProjectControl;
|
import com.google.gerrit.server.project.ProjectControl;
|
||||||
import com.google.gerrit.server.project.RefControl;
|
import com.google.gerrit.server.project.RefControl;
|
||||||
@@ -50,7 +51,6 @@ import java.net.URL;
|
|||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.LinkedList;
|
import java.util.LinkedList;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
import java.util.regex.Pattern;
|
|
||||||
|
|
||||||
import javax.annotation.Nullable;
|
import javax.annotation.Nullable;
|
||||||
|
|
||||||
@@ -60,9 +60,6 @@ public class CommitValidators {
|
|||||||
|
|
||||||
private static final FooterKey CHANGE_ID = new FooterKey("Change-Id");
|
private static final FooterKey CHANGE_ID = new FooterKey("Change-Id");
|
||||||
|
|
||||||
private static final Pattern NEW_PATCHSET = Pattern
|
|
||||||
.compile("^refs/changes/(?:[0-9][0-9])?(/[1-9][0-9]*){1,2}(?:/new)?$");
|
|
||||||
|
|
||||||
private static final String GIT_HOOKS_COMMIT_MSG =
|
private static final String GIT_HOOKS_COMMIT_MSG =
|
||||||
"`git rev-parse --git-dir`/hooks/commit-msg";
|
"`git rev-parse --git-dir`/hooks/commit-msg";
|
||||||
|
|
||||||
@@ -109,7 +106,8 @@ public class CommitValidators {
|
|||||||
validators.add(new CommitterUploaderValidator(refControl, canonicalWebUrl));
|
validators.add(new CommitterUploaderValidator(refControl, canonicalWebUrl));
|
||||||
validators.add(new SignedOffByValidator(refControl, canonicalWebUrl));
|
validators.add(new SignedOffByValidator(refControl, canonicalWebUrl));
|
||||||
if (MagicBranch.isMagicBranch(receiveEvent.command.getRefName())
|
if (MagicBranch.isMagicBranch(receiveEvent.command.getRefName())
|
||||||
|| NEW_PATCHSET.matcher(receiveEvent.command.getRefName()).matches()) {
|
|| ReceiveCommits.NEW_PATCHSET.matcher(
|
||||||
|
receiveEvent.command.getRefName()).matches()) {
|
||||||
validators.add(new ChangeIdValidator(refControl, canonicalWebUrl,
|
validators.add(new ChangeIdValidator(refControl, canonicalWebUrl,
|
||||||
installCommitMsgHookCommand, sshInfo));
|
installCommitMsgHookCommand, sshInfo));
|
||||||
}
|
}
|
||||||
@@ -143,7 +141,8 @@ public class CommitValidators {
|
|||||||
validators.add(new AuthorUploaderValidator(refControl, canonicalWebUrl));
|
validators.add(new AuthorUploaderValidator(refControl, canonicalWebUrl));
|
||||||
validators.add(new SignedOffByValidator(refControl, canonicalWebUrl));
|
validators.add(new SignedOffByValidator(refControl, canonicalWebUrl));
|
||||||
if (MagicBranch.isMagicBranch(receiveEvent.command.getRefName())
|
if (MagicBranch.isMagicBranch(receiveEvent.command.getRefName())
|
||||||
|| NEW_PATCHSET.matcher(receiveEvent.command.getRefName()).matches()) {
|
|| ReceiveCommits.NEW_PATCHSET.matcher(
|
||||||
|
receiveEvent.command.getRefName()).matches()) {
|
||||||
validators.add(new ChangeIdValidator(refControl, canonicalWebUrl,
|
validators.add(new ChangeIdValidator(refControl, canonicalWebUrl,
|
||||||
installCommitMsgHookCommand, sshInfo));
|
installCommitMsgHookCommand, sshInfo));
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user