in java/com/google/gerrit/plugins/checks/api/UpdateChecker.java [72:125]
public Response<CheckerInfo> apply(CheckerResource resource, CheckerInput input)
throws RestApiException, PermissionBackendException, NoSuchCheckerException, IOException,
ConfigInvalidException, StorageException {
permissionBackend.currentUser().check(permission);
CheckerUuid checkerUuid = resource.getChecker().getUuid();
CheckerUpdate.Builder checkerUpdateBuilder = CheckerUpdate.builder();
// Callers shouldn't really be providing UUID. If they do, the only legal UUID is exactly the
// current UUID.
if (input.uuid != null && !input.uuid.equals(checkerUuid.get())) {
throw new BadRequestException("uuid cannot be updated");
}
if (input.name != null) {
String newName = CheckerName.clean(input.name);
if (newName.isEmpty()) {
throw new BadRequestException("name cannot be unset");
}
checkerUpdateBuilder.setName(newName);
}
if (input.description != null) {
checkerUpdateBuilder.setDescription(input.description.trim());
}
if (input.url != null) {
checkerUpdateBuilder.setUrl(UrlValidator.clean(input.url));
}
Project.NameKey repository;
if (input.repository != null) {
repository = resolveRepository(input.repository);
checkerUpdateBuilder.setRepository(repository);
} else {
repository = resource.getChecker().getRepository();
}
if (input.status != null) {
checkerUpdateBuilder.setStatus(input.status);
}
if (input.blocking != null) {
checkerUpdateBuilder.setBlockingConditions(ImmutableSortedSet.copyOf(input.blocking));
}
if (input.query != null) {
checkerUpdateBuilder.setQuery(validateQuery(checkerUuid, repository, input.query));
}
Checker updatedChecker =
checkersUpdate.get().updateChecker(checkerUuid, checkerUpdateBuilder.build());
return Response.ok(checkerJson.format(updatedChecker));
}