in owners-autoassign/src/main/java/com/googlesource/gerrit/owners/common/GitRefListener.java [172:198]
private boolean isChangeSetReadyForReview(
Repository repository, ChangeNotes changeNotes, String metaObjectId)
throws MissingObjectException, IncorrectObjectTypeException, IOException {
if (changeNotes.getChange().isWorkInProgress()) {
return false;
}
if (changeNotes.getChangeMessages().stream()
.filter(message -> message.getKey().uuid().equals(metaObjectId))
.map(message -> message.getTag())
.filter(Predicates.notNull())
.anyMatch(tag -> tag.contains(ChangeMessagesUtil.TAG_SET_READY))) {
return true;
}
try (ChangeNotesRevWalk revWalk = ChangeNotesCommit.newRevWalk(repository)) {
ChangeNotesCommit metaCommit = revWalk.parseCommit(ObjectId.fromString(metaObjectId));
if (metaCommit.getParentCount() == 0) {
// The first commit cannot be a 'Set ready' operation
return false;
}
List<String> wipFooterLines = metaCommit.getFooterLines(FOOTER_WORK_IN_PROGRESS);
return wipFooterLines != null
&& !wipFooterLines.isEmpty()
&& Boolean.FALSE.toString().equalsIgnoreCase(wipFooterLines.get(0));
}
}