Remove CommitValidators.Policy

Almost all callers are just switching between a single policy, e.g. the
default of GERRIT for ChangeInserter/PatchSetInserter, and no
validation. The internals of CommitValidators.Factory#create just called
one of the for* factory methods depending on the enum value; it's just
as readable to do this at the source.

Within ChangeInserter/PatchSetInserter, it's just as easy to represent
do/don't validate with a single boolean value. The interaction with
RebaseChangeOp is slightly nonobvious: it used a null enum field value
to mean don't override PatchSetInserter's default. Thus we need to
explicitly set the default of the boolean value to true. (Or use
tri-state Boolean, but boolean is more consistent with the rest of the
fields in this class.)

It's worth noting that forGerritCommits is always called from within a
BatchUpdateOp, which means we can later change its parameters to not
pass a full Repository instance. By contrast forReceiveCommits is only
called from ReceiveCommits, outside of the BatchUpdate, so it always has
a full Repository available. Splitting the factory methods up in this
way allows us to pass different arguments to the different paths.

Change-Id: I833b739f2c4ab4a65ea80382b1c147dd6adc1892
This commit is contained in:
Dave Borowitz
2017-04-06 15:51:05 -04:00
parent 17e262e92b
commit 9bad11795a
14 changed files with 37 additions and 94 deletions

View File

@@ -45,7 +45,6 @@ import com.google.gerrit.server.change.ChangeInserter;
import com.google.gerrit.server.change.ConsistencyChecker; import com.google.gerrit.server.change.ConsistencyChecker;
import com.google.gerrit.server.change.PatchSetInserter; import com.google.gerrit.server.change.PatchSetInserter;
import com.google.gerrit.server.config.AnonymousCowardName; import com.google.gerrit.server.config.AnonymousCowardName;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.notedb.ChangeNoteUtil; import com.google.gerrit.server.notedb.ChangeNoteUtil;
import com.google.gerrit.server.notedb.NoteDbChangeState.PrimaryStorage; import com.google.gerrit.server.notedb.NoteDbChangeState.PrimaryStorage;
import com.google.gerrit.server.project.ChangeControl; import com.google.gerrit.server.project.ChangeControl;
@@ -802,7 +801,7 @@ public class ConsistencyCheckerIT extends AbstractDaemonTest {
ins = ins =
changeInserterFactory changeInserterFactory
.create(id, commit, dest) .create(id, commit, dest)
.setValidatePolicy(CommitValidators.Policy.NONE) .setValidate(false)
.setNotify(NotifyHandling.NONE) .setNotify(NotifyHandling.NONE)
.setFireRevisionCreated(false) .setFireRevisionCreated(false)
.setSendMail(false); .setSendMail(false);
@@ -826,7 +825,7 @@ public class ConsistencyCheckerIT extends AbstractDaemonTest {
ins = ins =
patchSetInserterFactory patchSetInserterFactory
.create(ctl, nextPatchSetId(ctl), commit) .create(ctl, nextPatchSetId(ctl), commit)
.setValidatePolicy(CommitValidators.Policy.NONE) .setValidate(false)
.setFireRevisionCreated(false) .setFireRevisionCreated(false)
.setNotify(NotifyHandling.NONE); .setNotify(NotifyHandling.NONE);
bu.addOp(ctl.getId(), ins).execute(); bu.addOp(ctl.getId(), ins).execute();

View File

@@ -37,7 +37,6 @@ import com.google.gerrit.server.change.PostReviewers;
import com.google.gerrit.server.config.AllProjectsName; import com.google.gerrit.server.config.AllProjectsName;
import com.google.gerrit.server.git.MetaDataUpdate; import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gerrit.server.git.ProjectConfig; import com.google.gerrit.server.git.ProjectConfig;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.group.SystemGroupBackend; import com.google.gerrit.server.group.SystemGroupBackend;
import com.google.gerrit.server.project.ProjectCache; import com.google.gerrit.server.project.ProjectCache;
import com.google.gerrit.server.project.ProjectControl; import com.google.gerrit.server.project.ProjectControl;
@@ -147,7 +146,7 @@ public class ReviewProjectAccess extends ProjectAccessHandler<Change.Id> {
bu.insertChange( bu.insertChange(
changeInserterFactory changeInserterFactory
.create(changeId, commit, RefNames.REFS_CONFIG) .create(changeId, commit, RefNames.REFS_CONFIG)
.setValidatePolicy(CommitValidators.Policy.NONE) .setValidate(false)
.setUpdateRef(false)); // Created by commitToNewRef. .setUpdateRef(false)); // Created by commitToNewRef.
bu.execute(); bu.execute();
} catch (UpdateException | RestApiException e) { } catch (UpdateException | RestApiException e) {

View File

@@ -113,7 +113,7 @@ public class ChangeInserter implements InsertChangeOp {
private String patchSetDescription; private String patchSetDescription;
private boolean isPrivate; private boolean isPrivate;
private List<String> groups = Collections.emptyList(); private List<String> groups = Collections.emptyList();
private CommitValidators.Policy validatePolicy = CommitValidators.Policy.GERRIT; private boolean validate = true;
private NotifyHandling notify = NotifyHandling.ALL; private NotifyHandling notify = NotifyHandling.ALL;
private ListMultimap<RecipientType, Account.Id> accountsToNotify = ImmutableListMultimap.of(); private ListMultimap<RecipientType, Account.Id> accountsToNotify = ImmutableListMultimap.of();
private Set<Account.Id> reviewers; private Set<Account.Id> reviewers;
@@ -238,8 +238,8 @@ public class ChangeInserter implements InsertChangeOp {
return this; return this;
} }
public ChangeInserter setValidatePolicy(CommitValidators.Policy validate) { public ChangeInserter setValidate(boolean validate) {
this.validatePolicy = checkNotNull(validate); this.validate = validate;
return this; return this;
} }
@@ -512,7 +512,7 @@ public class ChangeInserter implements InsertChangeOp {
} }
private void validate(RepoContext ctx) throws IOException, ResourceConflictException { private void validate(RepoContext ctx) throws IOException, ResourceConflictException {
if (validatePolicy == CommitValidators.Policy.NONE) { if (!validate) {
return; return;
} }
@@ -529,7 +529,7 @@ public class ChangeInserter implements InsertChangeOp {
commitId, commitId,
ctx.getIdentifiedUser())) { ctx.getIdentifiedUser())) {
commitValidatorsFactory commitValidatorsFactory
.create(validatePolicy, refControl, new NoSshInfo(), ctx.getRepository()) .forGerritCommits(refControl, new NoSshInfo(), ctx.getRepository())
.validate(event); .validate(event);
} }
} catch (CommitValidationException e) { } catch (CommitValidationException e) {

View File

@@ -40,7 +40,6 @@ import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.IntegrationException; import com.google.gerrit.server.git.IntegrationException;
import com.google.gerrit.server.git.MergeIdenticalTreeException; import com.google.gerrit.server.git.MergeIdenticalTreeException;
import com.google.gerrit.server.git.MergeUtil; import com.google.gerrit.server.git.MergeUtil;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.project.ChangeControl; import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.InvalidChangeOperationException; import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.ProjectState; import com.google.gerrit.server.project.ProjectState;
@@ -291,11 +290,7 @@ public class CherryPickChange {
throws OrmException, IOException { throws OrmException, IOException {
Change.Id changeId = new Change.Id(seq.nextChangeId()); Change.Id changeId = new Change.Id(seq.nextChangeId());
ChangeInserter ins = ChangeInserter ins =
changeInserterFactory changeInserterFactory.create(changeId, cherryPickCommit, refName).setTopic(topic);
.create(changeId, cherryPickCommit, refName)
.setValidatePolicy(CommitValidators.Policy.GERRIT)
.setTopic(topic);
ins.setMessage(messageForDestinationChange(ins.getPatchSetId(), sourceBranch, sourceCommit)); ins.setMessage(messageForDestinationChange(ins.getPatchSetId(), sourceBranch, sourceCommit));
bu.insertChange(ins); bu.insertChange(ins);
return changeId; return changeId;

View File

@@ -44,7 +44,6 @@ import com.google.gerrit.server.CurrentUser;
import com.google.gerrit.server.GerritPersonIdent; import com.google.gerrit.server.GerritPersonIdent;
import com.google.gerrit.server.PatchSetUtil; import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.notedb.ChangeNotes; import com.google.gerrit.server.notedb.ChangeNotes;
import com.google.gerrit.server.notedb.PatchSetState; import com.google.gerrit.server.notedb.PatchSetState;
import com.google.gerrit.server.patch.PatchSetInfoFactory; import com.google.gerrit.server.patch.PatchSetInfoFactory;
@@ -516,7 +515,7 @@ public class ConsistencyChecker {
bu.addOp( bu.addOp(
ctl.getId(), ctl.getId(),
inserter inserter
.setValidatePolicy(CommitValidators.Policy.NONE) .setValidate(false)
.setFireRevisionCreated(false) .setFireRevisionCreated(false)
.setNotify(NotifyHandling.NONE) .setNotify(NotifyHandling.NONE)
.setAllowClosed(true) .setAllowClosed(true)

View File

@@ -53,7 +53,6 @@ import com.google.gerrit.server.config.AnonymousCowardName;
import com.google.gerrit.server.config.GerritServerConfig; import com.google.gerrit.server.config.GerritServerConfig;
import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.MergeUtil; import com.google.gerrit.server.git.MergeUtil;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.project.ChangeControl; import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.InvalidChangeOperationException; import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.ProjectControl; import com.google.gerrit.server.project.ProjectControl;
@@ -252,10 +251,7 @@ public class CreateChange implements RestModifyView<TopLevelResource, ChangeInpu
} }
Change.Id changeId = new Change.Id(seq.nextChangeId()); Change.Id changeId = new Change.Id(seq.nextChangeId());
ChangeInserter ins = ChangeInserter ins = changeInserterFactory.create(changeId, c, refName);
changeInserterFactory
.create(changeId, c, refName)
.setValidatePolicy(CommitValidators.Policy.GERRIT);
ins.setMessage(String.format("Uploaded patch set %s.", ins.getPatchSetId().get())); ins.setMessage(String.format("Uploaded patch set %s.", ins.getPatchSetId().get()));
String topic = input.topic; String topic = input.topic;
if (topic != null) { if (topic != null) {

View File

@@ -88,7 +88,7 @@ public class PatchSetInserter implements BatchUpdateOp {
// Fields exposed as setters. // Fields exposed as setters.
private String message; private String message;
private String description; private String description;
private CommitValidators.Policy validatePolicy = CommitValidators.Policy.GERRIT; private boolean validate = true;
private boolean checkAddPatchSetPermission = true; private boolean checkAddPatchSetPermission = true;
private boolean draft; private boolean draft;
private List<String> groups = Collections.emptyList(); private List<String> groups = Collections.emptyList();
@@ -146,8 +146,8 @@ public class PatchSetInserter implements BatchUpdateOp {
return this; return this;
} }
public PatchSetInserter setValidatePolicy(CommitValidators.Policy validate) { public PatchSetInserter setValidate(boolean validate) {
this.validatePolicy = checkNotNull(validate); this.validate = validate;
return this; return this;
} }
@@ -306,7 +306,7 @@ public class PatchSetInserter implements BatchUpdateOp {
if (checkAddPatchSetPermission && !origCtl.canAddPatchSet(ctx.getDb())) { if (checkAddPatchSetPermission && !origCtl.canAddPatchSet(ctx.getDb())) {
throw new AuthException("cannot add patch set"); throw new AuthException("cannot add patch set");
} }
if (validatePolicy == CommitValidators.Policy.NONE) { if (!validate) {
return; return;
} }
@@ -323,7 +323,7 @@ public class PatchSetInserter implements BatchUpdateOp {
commitId, commitId,
ctx.getIdentifiedUser())) { ctx.getIdentifiedUser())) {
commitValidatorsFactory commitValidatorsFactory
.create(validatePolicy, origCtl.getRefControl(), new NoSshInfo(), ctx.getRepository()) .forGerritCommits(origCtl.getRefControl(), new NoSshInfo(), ctx.getRepository())
.validate(event); .validate(event);
} catch (CommitValidationException e) { } catch (CommitValidationException e) {
throw new ResourceConflictException(e.getFullMessage()); throw new ResourceConflictException(e.getFullMessage());

View File

@@ -34,7 +34,6 @@ import com.google.gerrit.reviewdb.server.ReviewDb;
import com.google.gerrit.server.PatchSetUtil; import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.change.RebaseUtil.Base; import com.google.gerrit.server.change.RebaseUtil.Base;
import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.permissions.ChangePermission; import com.google.gerrit.server.permissions.ChangePermission;
import com.google.gerrit.server.permissions.PermissionBackendException; import com.google.gerrit.server.permissions.PermissionBackendException;
import com.google.gerrit.server.project.ChangeControl; import com.google.gerrit.server.project.ChangeControl;
@@ -111,8 +110,7 @@ public class Rebase
rebaseFactory rebaseFactory
.create(control, rsrc.getPatchSet(), findBaseRev(repo, rw, rsrc, input)) .create(control, rsrc.getPatchSet(), findBaseRev(repo, rw, rsrc, input))
.setForceContentMerge(true) .setForceContentMerge(true)
.setFireRevisionCreated(true) .setFireRevisionCreated(true));
.setValidatePolicy(CommitValidators.Policy.GERRIT));
bu.execute(); bu.execute();
} }
return json.create(OPTIONS).format(change.getProject(), change.getId()); return json.create(OPTIONS).format(change.getProject(), change.getId());

View File

@@ -25,7 +25,6 @@ import com.google.gerrit.reviewdb.client.RevId;
import com.google.gerrit.server.ChangeUtil; import com.google.gerrit.server.ChangeUtil;
import com.google.gerrit.server.change.RebaseUtil.Base; import com.google.gerrit.server.change.RebaseUtil.Base;
import com.google.gerrit.server.git.MergeUtil; import com.google.gerrit.server.git.MergeUtil;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.project.ChangeControl; import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.InvalidChangeOperationException; import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.project.NoSuchChangeException;
@@ -61,7 +60,7 @@ public class RebaseChangeOp implements BatchUpdateOp {
private ObjectId baseCommitId; private ObjectId baseCommitId;
private PersonIdent committerIdent; private PersonIdent committerIdent;
private boolean fireRevisionCreated = true; private boolean fireRevisionCreated = true;
private CommitValidators.Policy validate; private boolean validate = true;
private boolean checkAddPatchSetPermission = true; private boolean checkAddPatchSetPermission = true;
private boolean forceContentMerge; private boolean forceContentMerge;
private boolean copyApprovals = true; private boolean copyApprovals = true;
@@ -96,7 +95,7 @@ public class RebaseChangeOp implements BatchUpdateOp {
return this; return this;
} }
public RebaseChangeOp setValidatePolicy(CommitValidators.Policy validate) { public RebaseChangeOp setValidate(boolean validate) {
this.validate = validate; this.validate = validate;
return this; return this;
} }
@@ -170,7 +169,8 @@ public class RebaseChangeOp implements BatchUpdateOp {
.setNotify(NotifyHandling.NONE) .setNotify(NotifyHandling.NONE)
.setFireRevisionCreated(fireRevisionCreated) .setFireRevisionCreated(fireRevisionCreated)
.setCopyApprovals(copyApprovals) .setCopyApprovals(copyApprovals)
.setCheckAddPatchSetPermission(checkAddPatchSetPermission); .setCheckAddPatchSetPermission(checkAddPatchSetPermission)
.setValidate(validate);
if (postMessage) { if (postMessage) {
patchSetInserter.setMessage( patchSetInserter.setMessage(
"Patch Set " "Patch Set "
@@ -183,9 +183,6 @@ public class RebaseChangeOp implements BatchUpdateOp {
if (base != null) { if (base != null) {
patchSetInserter.setGroups(base.patchSet().getGroups()); patchSetInserter.setGroups(base.patchSet().getGroups());
} }
if (validate != null) {
patchSetInserter.setValidatePolicy(validate);
}
patchSetInserter.updateRepo(ctx); patchSetInserter.updateRepo(ctx);
} }

View File

@@ -40,7 +40,6 @@ import com.google.gerrit.server.PatchSetUtil;
import com.google.gerrit.server.Sequences; import com.google.gerrit.server.Sequences;
import com.google.gerrit.server.extensions.events.ChangeReverted; import com.google.gerrit.server.extensions.events.ChangeReverted;
import com.google.gerrit.server.git.GitRepositoryManager; import com.google.gerrit.server.git.GitRepositoryManager;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.mail.send.RevertedSender; import com.google.gerrit.server.mail.send.RevertedSender;
import com.google.gerrit.server.project.ChangeControl; import com.google.gerrit.server.project.ChangeControl;
import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.project.NoSuchChangeException;
@@ -200,7 +199,6 @@ public class Revert
ChangeInserter ins = ChangeInserter ins =
changeInserterFactory changeInserterFactory
.create(changeId, revertCommit, ctl.getChange().getDest().get()) .create(changeId, revertCommit, ctl.getChange().getDest().get())
.setValidatePolicy(CommitValidators.Policy.GERRIT)
.setTopic(changeToRevert.getTopic()); .setTopic(changeToRevert.getTopic());
ins.setMessage("Uploaded patch set 1."); ins.setMessage("Uploaded patch set 1.");

View File

@@ -2147,7 +2147,7 @@ public class ReceiveCommits {
.setTopic(magicBranch.topic) .setTopic(magicBranch.topic)
.setPrivate(magicBranch.isPrivate) .setPrivate(magicBranch.isPrivate)
// Changes already validated in validateNewCommits. // Changes already validated in validateNewCommits.
.setValidatePolicy(CommitValidators.Policy.NONE); .setValidate(false);
if (magicBranch.draft) { if (magicBranch.draft) {
ins.setDraft(magicBranch.draft); ins.setDraft(magicBranch.draft);
@@ -2765,19 +2765,17 @@ public class ReceiveCommits {
RevCommit c = rw.parseCommit(id); RevCommit c = rw.parseCommit(id);
rw.parseBody(c); rw.parseBody(c);
CommitValidators.Policy policy;
if (magicBranch != null
&& cmd.getRefName().equals(magicBranch.cmd.getRefName())
&& magicBranch.merged) {
policy = CommitValidators.Policy.MERGED;
} else {
policy = CommitValidators.Policy.RECEIVE_COMMITS;
}
try (CommitReceivedEvent receiveEvent = try (CommitReceivedEvent receiveEvent =
new CommitReceivedEvent(cmd, project, ctl.getRefName(), rw.getObjectReader(), c, user)) { new CommitReceivedEvent(cmd, project, ctl.getRefName(), rw.getObjectReader(), c, user)) {
messages.addAll( boolean isMerged =
commitValidatorsFactory.create(policy, ctl, sshInfo, repo).validate(receiveEvent)); magicBranch != null
&& cmd.getRefName().equals(magicBranch.cmd.getRefName())
&& magicBranch.merged;
CommitValidators validators =
isMerged
? commitValidatorsFactory.forMergedCommits(ctl)
: commitValidatorsFactory.forReceiveCommits(ctl, sshInfo, repo);
messages.addAll(validators.validate(receiveEvent));
} catch (CommitValidationException e) { } catch (CommitValidationException e) {
logDebug("Commit validation failed on {}", c.name()); logDebug("Commit validation failed on {}", c.name());
messages.addAll(e.getMessages()); messages.addAll(e.getMessages());

View File

@@ -29,7 +29,6 @@ import com.google.gerrit.server.git.IntegrationException;
import com.google.gerrit.server.git.MergeIdenticalTreeException; import com.google.gerrit.server.git.MergeIdenticalTreeException;
import com.google.gerrit.server.git.MergeTip; import com.google.gerrit.server.git.MergeTip;
import com.google.gerrit.server.git.RebaseSorter; import com.google.gerrit.server.git.RebaseSorter;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.project.InvalidChangeOperationException; import com.google.gerrit.server.project.InvalidChangeOperationException;
import com.google.gerrit.server.project.NoSuchChangeException; import com.google.gerrit.server.project.NoSuchChangeException;
import com.google.gerrit.server.update.ChangeContext; import com.google.gerrit.server.update.ChangeContext;
@@ -168,7 +167,7 @@ public class RebaseSubmitStrategy extends SubmitStrategy {
// Bypass approval copier since SubmitStrategyOp copy all approvals // Bypass approval copier since SubmitStrategyOp copy all approvals
// later anyway. // later anyway.
.setCopyApprovals(false) .setCopyApprovals(false)
.setValidatePolicy(CommitValidators.Policy.NONE) .setValidate(false)
.setCheckAddPatchSetPermission(false) .setCheckAddPatchSetPermission(false)
// RebaseAlways should set always modify commit message like // RebaseAlways should set always modify commit message like
// Cherry-Pick strategy. // Cherry-Pick strategy.

View File

@@ -66,20 +66,6 @@ import org.slf4j.LoggerFactory;
public class CommitValidators { public class CommitValidators {
private static final Logger log = LoggerFactory.getLogger(CommitValidators.class); private static final Logger log = LoggerFactory.getLogger(CommitValidators.class);
public enum Policy {
/** Use {@link Factory#forGerritCommits}. */
GERRIT,
/** Use {@link Factory#forReceiveCommits}. */
RECEIVE_COMMITS,
/** Use {@link Factory#forMergedCommits}. */
MERGED,
/** Do not validate commits. */
NONE
}
@Singleton @Singleton
public static class Factory { public static class Factory {
private final PersonIdent gerritIdent; private final PersonIdent gerritIdent;
@@ -103,23 +89,7 @@ public class CommitValidators {
cfg != null ? cfg.getString("gerrit", null, "installCommitMsgHookCommand") : null; cfg != null ? cfg.getString("gerrit", null, "installCommitMsgHookCommand") : null;
} }
public CommitValidators create( public CommitValidators forReceiveCommits(
Policy policy, RefControl refControl, SshInfo sshInfo, Repository repo) throws IOException {
switch (policy) {
case RECEIVE_COMMITS:
return forReceiveCommits(refControl, sshInfo, repo);
case GERRIT:
return forGerritCommits(refControl, sshInfo, repo);
case MERGED:
return forMergedCommits(refControl);
case NONE:
return none();
default:
throw new IllegalArgumentException("unspported policy: " + policy);
}
}
private CommitValidators forReceiveCommits(
RefControl refControl, SshInfo sshInfo, Repository repo) throws IOException { RefControl refControl, SshInfo sshInfo, Repository repo) throws IOException {
try (RevWalk rw = new RevWalk(repo)) { try (RevWalk rw = new RevWalk(repo)) {
NoteMap rejectCommits = BanCommit.loadRejectCommitsMap(repo, rw); NoteMap rejectCommits = BanCommit.loadRejectCommitsMap(repo, rw);
@@ -139,7 +109,7 @@ public class CommitValidators {
} }
} }
private CommitValidators forGerritCommits( public CommitValidators forGerritCommits(
RefControl refControl, SshInfo sshInfo, Repository repo) { RefControl refControl, SshInfo sshInfo, Repository repo) {
return new CommitValidators( return new CommitValidators(
ImmutableList.of( ImmutableList.of(
@@ -154,7 +124,7 @@ public class CommitValidators {
new BlockExternalIdUpdateListener(allUsers))); new BlockExternalIdUpdateListener(allUsers)));
} }
private CommitValidators forMergedCommits(RefControl refControl) { public CommitValidators forMergedCommits(RefControl refControl) {
// Generally only include validators that are based on permissions of the // Generally only include validators that are based on permissions of the
// user creating a change for a merged commit; generally exclude // user creating a change for a merged commit; generally exclude
// validators that would require amending the change in order to correct. // validators that would require amending the change in order to correct.
@@ -174,10 +144,6 @@ public class CommitValidators {
new AuthorUploaderValidator(refControl, canonicalWebUrl), new AuthorUploaderValidator(refControl, canonicalWebUrl),
new CommitterUploaderValidator(refControl, canonicalWebUrl))); new CommitterUploaderValidator(refControl, canonicalWebUrl)));
} }
private CommitValidators none() {
return new CommitValidators(ImmutableList.<CommitValidationListener>of());
}
} }
private final List<CommitValidationListener> validators; private final List<CommitValidationListener> validators;

View File

@@ -74,7 +74,6 @@ import com.google.gerrit.server.change.ChangeTriplet;
import com.google.gerrit.server.change.PatchSetInserter; import com.google.gerrit.server.change.PatchSetInserter;
import com.google.gerrit.server.config.AllUsersName; import com.google.gerrit.server.config.AllUsersName;
import com.google.gerrit.server.git.MetaDataUpdate; import com.google.gerrit.server.git.MetaDataUpdate;
import com.google.gerrit.server.git.validators.CommitValidators;
import com.google.gerrit.server.index.IndexConfig; import com.google.gerrit.server.index.IndexConfig;
import com.google.gerrit.server.index.QueryOptions; import com.google.gerrit.server.index.QueryOptions;
import com.google.gerrit.server.index.change.ChangeField; import com.google.gerrit.server.index.change.ChangeField;
@@ -1971,7 +1970,7 @@ public abstract class AbstractQueryChangesTest extends GerritServerTests {
ChangeInserter ins = ChangeInserter ins =
changeFactory changeFactory
.create(id, commit, branch) .create(id, commit, branch)
.setValidatePolicy(CommitValidators.Policy.NONE) .setValidate(false)
.setStatus(status) .setStatus(status)
.setTopic(topic); .setTopic(topic);
return ins; return ins;
@@ -2016,7 +2015,7 @@ public abstract class AbstractQueryChangesTest extends GerritServerTests {
.create(ctl, new PatchSet.Id(c.getId(), n), commit) .create(ctl, new PatchSet.Id(c.getId(), n), commit)
.setNotify(NotifyHandling.NONE) .setNotify(NotifyHandling.NONE)
.setFireRevisionCreated(false) .setFireRevisionCreated(false)
.setValidatePolicy(CommitValidators.Policy.NONE); .setValidate(false);
try (BatchUpdate bu = updateFactory.create(db, c.getProject(), user, TimeUtil.nowTs()); try (BatchUpdate bu = updateFactory.create(db, c.getProject(), user, TimeUtil.nowTs());
ObjectInserter oi = repo.getRepository().newObjectInserter()) { ObjectInserter oi = repo.getRepository().newObjectInserter()) {
bu.setRepository(repo.getRepository(), repo.getRevWalk(), oi); bu.setRepository(repo.getRepository(), repo.getRevWalk(), oi);