in owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java [142:166]
private void handleGitReferenceUpdated(Event event) throws NoSuchProjectException {
String projectName = event.getProjectName();
Repository repository;
try {
NameKey projectNameKey = Project.NameKey.parse(projectName);
boolean autoAssignWip = cfg.autoAssignWip(projectNameKey);
repository = repositoryManager.openRepository(projectNameKey);
try {
String refName = event.getRefName();
Change.Id changeId = Change.Id.fromRef(refName);
if (changeId != null) {
ChangeNotes changeNotes = notesFactory.createChecked(projectNameKey, changeId);
if ((!RefNames.isNoteDbMetaRef(refName)
&& isChangeToBeProcessed(changeNotes.getChange(), autoAssignWip))
|| isChangeSetReadyForReview(repository, changeNotes, event.getNewObjectId())) {
processEvent(projectNameKey, repository, event, changeId);
}
}
} finally {
repository.close();
}
} catch (IOException e) {
logger.warn("Couldn't open repository: {}", projectName, e);
}
}