@Override public boolean tryToExtractBuildDetails(BuildInfo buildInfo, Map<String, Object> request) { if (buildInfo == null || request == null) { return false; } Map<String, Object> copyRequest = new HashMap<>(); List<String> buildInfoUrlParts; String buildInfoUrl = buildInfo.getUrl(); if (buildInfoUrl != null) { buildInfoUrlParts = parseBuildInfoUrl(buildInfoUrl); if (buildInfoUrlParts.size() == 3) { copyRequest.put("buildInfoUrl", buildInfoUrl); copyRequest.put("buildHost", buildInfoUrlParts.get(0)); copyRequest.put("job", buildInfoUrlParts.get(1)); copyRequest.put("buildNumber", buildInfoUrlParts.get(2)); extractCommitHash(buildInfo, copyRequest); request.putAll(copyRequest); return true; } } return false; }
default void extractCommitHash(BuildInfo buildInfo, Map<String, Object> request) { // buildInfo.scm contains a list of maps. Each map contains these keys: name, sha1, branch. // If the list contains more than one entry, prefer the first one that is not master and is not develop. String commitHash = null; if (buildInfo.getScm() != null && buildInfo.getScm().size() >= 2) { commitHash = buildInfo .getScm() .stream() .filter(it -> !"master".equals(it.getBranch()) && !"develop".equals(it.getBranch())) .findFirst() .map(SourceControl::getSha1) .orElse(null); } if (StringUtils.isEmpty(commitHash) && buildInfo.getScm() != null && !buildInfo.getScm().isEmpty()) { commitHash = buildInfo.getScm().get(0).getSha1(); } if (commitHash != null) { request.put("commitHash", commitHash); } } }
@Override public boolean tryToExtractBuildDetails(BuildInfo buildInfo, Map<String, Object> request) { if (buildInfo == null || request == null) { return false; } if (buildInfo.getUrl() != null && buildInfo.getName() != null && buildInfo.getNumber() > 0) { Map<String, Object> copyRequest = new HashMap<>(); copyRequest.put("buildInfoUrl", buildInfo.getUrl()); copyRequest.put("job", buildInfo.getName()); copyRequest.put("buildNumber", buildInfo.getNumber()); extractBuildHost(buildInfo.getUrl(), copyRequest); extractCommitHash(buildInfo, copyRequest); request.putAll(copyRequest); return true; } return false; }