in src/main/java/com/googlesource/gerrit/plugins/findowners/Checker.java [68:91]
Map<String, Integer> getVotes(ChangeData changeData) {
Map<String, Integer> map = new HashMap<>();
for (PatchSetApproval p : changeData.currentApprovals()) {
// Only collect non-zero Code-Review votes.
if (p.value() != 0 && p.label().equals("Code-Review")) {
// Reviewers may have no preferred email, skip them if the preferred email is not set.
Optional<String> preferredEmail =
accountCache.get(p.accountId()).map(a -> a.account().preferredEmail());
if (preferredEmail.isPresent()) {
map.put(preferredEmail.get(), Integer.valueOf(p.value()));
}
}
}
// Give CL author a default minVoteLevel vote.
// The preferred email of the author may not be set. Pushing changes only requires an email in
// the external IDs, but the preferred email may still be null (also emails may have been
// deleted after creating the change). Skip the author if it doesn't have a preferred email.
Optional<String> author =
accountCache.get(changeData.change().getOwner()).map(a -> a.account().preferredEmail());
if (author.isPresent() && (!map.containsKey(author.get()) || map.get(author.get()) == 0)) {
map.put(author.get(), minVoteLevel);
}
return map;
}