in src/main/java/com/googlesource/gerrit/plugins/replication/ReplicationQueue.java [177:200]
private void pushReference(
Destination cfg,
Project.NameKey project,
String urlMatch,
String refName,
ReplicationState state,
boolean now) {
boolean withoutState = state == null;
if (withoutState) {
state = new ReplicationState(new GitUpdateProcessing(dispatcher.get()));
}
if (cfg.wouldPushProject(project) && cfg.wouldPushRef(refName)) {
for (URIish uri : cfg.getURIs(project, urlMatch)) {
replicationTasksStorage.create(
ReplicateRefUpdate.create(project.get(), refName, uri, cfg.getRemoteConfigName()));
cfg.schedule(project, refName, uri, state, now);
}
} else {
repLog.atFine().log("Skipping ref %s on project %s", refName, project.get());
}
if (withoutState) {
state.markAllPushTasksScheduled();
}
}