in src/main/java/com/criteo/gerrit/plugins/automerge/AtomicityHelper.java [84:117]
public boolean hasDependentReview(String project, int number) throws Exception {
RevisionResource r = getRevisionResource(project, number);
RelatedChangesInfo related = getRelated.apply(r).value();
log.debug(String.format("Checking for related changes on review %d", number));
String checkedCommitSha1 = r.getPatchSet().commitId().name();
int firstParentIndex = 0;
int i = 0;
for (RelatedChangeAndCommitInfo c : related.changes) {
if (checkedCommitSha1.equals(c.commit.commit)) {
firstParentIndex = i + 1;
log.debug(
String.format(
"First parent index on review %d is %d on commit %s",
number, firstParentIndex, c.commit.commit));
break;
}
i++;
}
boolean hasNonMergedParent = false;
for (RelatedChangeAndCommitInfo c :
related.changes.subList(firstParentIndex, related.changes.size())) {
if (!ChangeStatus.MERGED.toString().equals(c.status)) {
log.info(
String.format(
"Found non merged parent commit on review %d: %s", number, c.commit.commit));
hasNonMergedParent = true;
break;
}
}
return hasNonMergedParent;
}