in src/main/java/com/googlesource/gerrit/plugins/automerger/DownstreamCreator.java [652:688]
private void updateDownstreamMerge(
String newParentRevision,
String upstreamSubject,
Integer sourceNum,
boolean doMerge,
Integer upstreamChangeNumber,
String downstreamBranch)
throws RestApiException, InvalidQueryParameterException {
MergeInput mergeInput = new MergeInput();
mergeInput.source = newParentRevision;
MergePatchSetInput mergePatchSetInput = new MergePatchSetInput();
mergePatchSetInput.subject =
getSubjectForDownstreamMerge(upstreamSubject, newParentRevision, false);
if (!doMerge) {
mergeInput.strategy = "ours";
mergePatchSetInput.subject =
getSubjectForDownstreamMerge(upstreamSubject, newParentRevision, true);
log.debug("Skipping merge for {} on {}", newParentRevision, sourceNum);
}
mergePatchSetInput.merge = mergeInput;
mergePatchSetInput.baseChange =
getBaseChangeId(
getChangeParents(upstreamChangeNumber, newParentRevision), downstreamBranch);
ChangeApi originalChange = gApi.changes().id(sourceNum);
if (originalChange.info().status == ChangeStatus.ABANDONED) {
RestoreInput restoreInput = new RestoreInput();
restoreInput.message = "Restoring change due to upstream automerge.";
originalChange.restore(restoreInput);
}
originalChange.createMergePatchSet(mergePatchSetInput);
}