in ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java [800:859]
public Visa notifyJira(
String srvCodeOrAlias,
ITcBotUserCreds prov,
String buildTypeId,
String branchForTc,
String ticket,
@Nullable String baseBranchForTc) {
ITeamcityIgnited tcIgnited = tcIgnitedProv.server(srvCodeOrAlias, prov);
IJiraIgnited jira = jiraIgnProv.server(srvCodeOrAlias);
List<Integer> builds = tcIgnited.getLastNBuildsFromHistory(buildTypeId, branchForTc, 1);
if (builds.isEmpty())
return new Visa("JIRA wasn't commented - no finished builds to analyze.");
Integer buildId = builds.get(0);
FatBuildCompacted fatBuild = tcIgnited.getFatBuild(buildId);
Build build = fatBuild.toBuild(compactor);
build.webUrl = tcIgnited.host() + "viewLog.html?buildId=" + build.getId() + "&buildTypeId=" + build.buildTypeId;
int blockers;
JiraCommentResponse res;
try {
String baseBranch = Strings.isNullOrEmpty(baseBranchForTc) ? prChainsProcessor.dfltBaseTcBranch(srvCodeOrAlias) : baseBranchForTc;
List<ShortSuiteUi> suitesStatuses = prChainsProcessor.getBlockersSuitesStatuses(buildTypeId, build.branchName, srvCodeOrAlias, prov,
SyncMode.RELOAD_QUEUED,
baseBranch);
List<ShortSuiteNewTestsUi> newTestsStatuses = prChainsProcessor.getNewTestsSuitesStatuses(buildTypeId, build.branchName, srvCodeOrAlias, prov,
SyncMode.RELOAD_QUEUED,
baseBranch);
if (suitesStatuses == null)
return new Visa("JIRA wasn't commented - no finished builds to analyze." +
" Check builds availabiliy for branch: " + build.branchName + "/" + baseBranch);
blockers = suitesStatuses.stream().mapToInt(ShortSuiteUi::totalBlockers).sum();
String comment = generateJiraComment(suitesStatuses, newTestsStatuses, build.webUrl, buildTypeId, tcIgnited, blockers, build.branchName, baseBranch);
res = objMapper.readValue(jira.postJiraComment(ticket, comment), JiraCommentResponse.class);
}
catch (Exception e) {
String errMsg = "Exception happened during commenting JIRA ticket " +
"[build=" + build.getId() + ", errMsg=" + e.getMessage() + ']';
logger.error(errMsg);
return new Visa("JIRA wasn't commented - " + errMsg);
}
return new Visa(Visa.JIRA_COMMENTED, res, blockers);
}