in java/com/google/gerrit/plugins/codeowners/restapi/CheckCodeOwner.java [349:387]
private void validateInput(BranchResource branchResource)
throws BadRequestException, AuthException, IOException, ConfigInvalidException,
PermissionBackendException, ResourceNotFoundException {
if (branchResource.getRevision().isEmpty()) {
throw new ResourceNotFoundException(IdString.fromDecoded(branchResource.getName()));
}
if (email == null) {
throw new BadRequestException("email required");
}
if (path == null) {
throw new BadRequestException("path required");
}
if (user != null) {
try {
identifiedUser =
accountsCollection
.parse(TopLevelResource.INSTANCE, IdString.fromDecoded(user))
.getUser();
} catch (ResourceNotFoundException e) {
throw new BadRequestException(String.format("user %s not found", user), e);
}
}
if (change != null) {
Optional<ChangeNotes> changeNotes = changeFinder.findOne(change);
if (!changeNotes.isPresent()
|| !permissionBackend
.currentUser()
.change(changeNotes.get())
.test(ChangePermission.READ)) {
throw new BadRequestException(String.format("change %s not found", change));
}
if (!changeNotes.get().getChange().getDest().equals(branchResource.getBranchKey())) {
throw new BadRequestException(
"target branch of specified change must match branch from the request URL");
}
this.changeNotes = changeNotes.get();
}
}