in src/main/java/com/googlesource/gerrit/plugins/reviewers/Reviewers.java [85:126]
private void onEvent(ChangeEvent event) {
ChangeInfo c = event.getChange();
/* Never add reviewers automatically to private changes. */
if (Boolean.TRUE.equals(c.isPrivate)) {
return;
}
if (config.ignoreWip() && Boolean.TRUE.equals(c.workInProgress)) {
return;
}
Project.NameKey projectName = Project.nameKey(c.project);
List<ReviewerFilter> filters = getFilters(projectName);
if (filters.isEmpty()) {
return;
}
AccountInfo uploader = event.getWho();
int changeNumber = c._number;
try {
Set<String> reviewers = filterUtil.findReviewers(changeNumber, filters);
Set<String> ccs = filterUtil.findCcs(changeNumber, filters);
if (reviewers.isEmpty() && ccs.isEmpty()) {
return;
}
/* Remove all reviewer identifiers (account-ids, group-ids) from ccs that are present in reviewers.
* Further filtering of individual accounts is done in AddReviewers after the ids have been resolved into Accounts. */
ccs.removeAll(reviewers);
final AddReviewers addReviewers =
addReviewersFactory.create(
c,
resolver.resolve(reviewers, projectName, changeNumber, uploader),
resolver.resolve(ccs, projectName, changeNumber, uploader));
workQueue.submit(addReviewers);
} catch (QueryParseException e) {
logger.atWarning().log(
"Could not add default reviewers for change %d of project %s, filter is invalid: %s",
changeNumber, projectName.get(), e.getMessage());
} catch (StorageException x) {
logger.atSevere().withCause(x).log("%s", x.getMessage());
}
}