in commit-status-publisher-server/src/main/java/jetbrains/buildServer/swarm/SwarmClientManager.java [71:99]
public final SwarmClient getSwarmClient(@NotNull SBuildType buildType, @NotNull VcsRootInstance root) {
if (!PERFORCE_VCS_NAME.equals(root.getVcsName())) {
return null;
}
Set<Map<String, String>> ourFeatures = new HashSet<Map<String, String>>();
for (SBuildFeatureDescriptor buildFeature : buildType.getResolvedSettings().getBuildFeatures()) {
Map<String, String> parameters = buildFeature.getParameters();
if (CommitStatusPublisherFeature.TYPE.equals(buildFeature.getType()) &&
SwarmPublisherSettings.ID.equals(parameters.get(PUBLISHER_ID_PARAM)) &&
buildType.isEnabled(buildFeature.getId())) {
ourFeatures.add(parameters);
}
}
for (Map<String, String> parameters : ourFeatures) {
String vcsRootId = parameters.get(VCS_ROOT_ID_PARAM);
// Either strict match of the VCS Root ID according to build feature settings
// or there is only one build feature configured - match case "any VCS Root"
if (root.getExternalId().equals(vcsRootId) || (vcsRootId == null && ourFeatures.size() == 1)) {
return getSwarmClient(parameters);
}
}
return null;
}