public List parseRemotes()

in src/main/java/com/googlesource/gerrit/plugins/replication/pull/SourceConfigParser.java [38:70]


  public List<RemoteConfiguration> parseRemotes(Config config) throws ConfigInvalidException {

    if (config.getSections().isEmpty()) {
      logger.atWarning().log("Replication config does not exist or it's empty; not replicating");
      return Collections.emptyList();
    }

    ImmutableList.Builder<RemoteConfiguration> sourceConfigs = ImmutableList.builder();
    for (RemoteConfig c : allFetchRemotes(config)) {
      if (c.getURIs().isEmpty()) {
        continue;
      }

      // fetch source has to be specified.
      if (c.getFetchRefSpecs().isEmpty()) {
        throw new ConfigInvalidException(
            String.format("You must specify a valid refSpec for this remote"));
      }

      SourceConfiguration sourceConfig = new SourceConfiguration(c, config);

      if (!sourceConfig.isSingleProjectMatch()) {
        for (URIish u : c.getURIs()) {
          if (u.getPath() == null || !u.getPath().contains("${name}")) {
            throw new ConfigInvalidException(
                String.format("remote.%s.url \"%s\" lacks ${name} placeholder", c.getName(), u));
          }
        }
      }
      sourceConfigs.add(sourceConfig);
    }
    return sourceConfigs.build();
  }