use of com.google.gerrit.server.git.validators.CommitValidationMessage in project gerrit by GerritCodeReview.
the class SubmitRequirementExpressionsValidator method onCommitReceived.
@Override
public List<CommitValidationMessage> onCommitReceived(CommitReceivedEvent event) throws CommitValidationException {
try {
if (!event.refName.equals(RefNames.REFS_CONFIG) || !isFileChanged(event, ProjectConfig.PROJECT_CONFIG)) {
// validate the submit requirements in it
return ImmutableList.of();
}
ProjectConfig projectConfig = getProjectConfig(event);
ImmutableList<CommitValidationMessage> validationMessages = validateSubmitRequirementExpressions(projectConfig.getSubmitRequirementSections().values());
if (!validationMessages.isEmpty()) {
throw new CommitValidationException(String.format("invalid submit requirement expressions in %s (revision = %s)", ProjectConfig.PROJECT_CONFIG, projectConfig.getRevision()), validationMessages);
}
return ImmutableList.of();
} catch (IOException | DiffNotAvailableException | ConfigInvalidException e) {
throw new CommitValidationException(String.format("failed to validate submit requirement expressions in %s for revision %s in ref %s" + " of project %s", ProjectConfig.PROJECT_CONFIG, event.commit.getName(), RefNames.REFS_CONFIG, event.project.getNameKey()), e);
}
}
use of com.google.gerrit.server.git.validators.CommitValidationMessage in project gerrit by GerritCodeReview.
the class CancellationIT method handleWrappedRequestCancelledExceptionForPush.
@Test
public void handleWrappedRequestCancelledExceptionForPush() throws Exception {
CommitValidationListener commitValidationListener = new CommitValidationListener() {
@Override
public List<CommitValidationMessage> onCommitReceived(CommitReceivedEvent receiveEvent) throws CommitValidationException {
// Simulate an exceeded deadline by throwing RequestCancelledException.
throw new RuntimeException(new RequestCancelledException(RequestStateProvider.Reason.SERVER_DEADLINE_EXCEEDED, "deadline = 10m"));
}
};
try (Registration registration = extensionRegistry.newRegistration().add(commitValidationListener)) {
PushOneCommit push = pushFactory.create(admin.newIdent(), testRepo);
PushOneCommit.Result r = push.to("refs/heads/master");
r.assertErrorStatus("Server Deadline Exceeded (deadline = 10m)");
}
}
use of com.google.gerrit.server.git.validators.CommitValidationMessage in project gerrit by GerritCodeReview.
the class CancellationIT method handleClientDeadlineExceededForPush.
@Test
public void handleClientDeadlineExceededForPush() throws Exception {
CommitValidationListener commitValidationListener = new CommitValidationListener() {
@Override
public List<CommitValidationMessage> onCommitReceived(CommitReceivedEvent receiveEvent) throws CommitValidationException {
// Simulate an exceeded deadline by throwing RequestCancelledException.
throw new RequestCancelledException(RequestStateProvider.Reason.CLIENT_PROVIDED_DEADLINE_EXCEEDED, /* cancellationMessage= */
null);
}
};
try (Registration registration = extensionRegistry.newRegistration().add(commitValidationListener)) {
PushOneCommit push = pushFactory.create(admin.newIdent(), testRepo);
PushOneCommit.Result r = push.to("refs/heads/master");
r.assertErrorStatus("Client Provided Deadline Exceeded");
}
}
use of com.google.gerrit.server.git.validators.CommitValidationMessage in project gerrit by GerritCodeReview.
the class CancellationIT method handleRequestCancellationWithMessageForPush.
@Test
public void handleRequestCancellationWithMessageForPush() throws Exception {
CommitValidationListener commitValidationListener = new CommitValidationListener() {
@Override
public List<CommitValidationMessage> onCommitReceived(CommitReceivedEvent receiveEvent) throws CommitValidationException {
// Simulate an exceeded deadline by throwing RequestCancelledException.
throw new RequestCancelledException(RequestStateProvider.Reason.SERVER_DEADLINE_EXCEEDED, "deadline = 10m");
}
};
try (Registration registration = extensionRegistry.newRegistration().add(commitValidationListener)) {
PushOneCommit push = pushFactory.create(admin.newIdent(), testRepo);
PushOneCommit.Result r = push.to("refs/heads/master");
r.assertErrorStatus("Server Deadline Exceeded (deadline = 10m)");
}
}
Aggregations