This is an automated email from the ASF dual-hosted git repository. dpavlov pushed a commit to branch ignite-11760 in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
commit dc808a881822e804c3e010516b2364bb2bf14bd0 Author: Dmitriy Pavlov <dpav...@apache.org> AuthorDate: Tue Apr 16 20:38:47 2019 +0300 IGNITE-11760 Escaping Suite name if contains vertical line --- .../org/apache/ignite/ci/observer/BuildsInfo.java | 2 +- .../ignite/ci/tcbot/chain/PrChainsProcessor.java | 2 +- .../tcbot/visa/TcBotTriggerAndSignOffService.java | 29 ++++++++++++++++------ .../apache/ignite/ci/tcbot/visa/VisaStatus.java | 2 +- .../ci/teamcity/ignited/ITeamcityIgnited.java | 2 +- 5 files changed, 25 insertions(+), 12 deletions(-) diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java index 9c1165d..82ef057 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/observer/BuildsInfo.java @@ -53,7 +53,7 @@ public class BuildsInfo { /** Server id. */ public final String srvId; - /** Build type id. */ + /** Build type id, for which build/observation/visa was ordered. */ public String buildTypeId; /** Branch name. */ diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java index 51f5266..bae99e1 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/PrChainsProcessor.java @@ -171,7 +171,7 @@ public class PrChainsProcessor { } /** - * @param buildTypeId Suite name. + * @param buildTypeId Build type ID, for which visa was ordered. * @param branchForTc Branch for TeamCity. * @param srvId Server id. * @param prov Credentials. diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java index 1a5215f..2051015 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java @@ -725,7 +725,7 @@ public class TcBotTriggerAndSignOffService { * * @param srvId TC Server ID to take information about token from. * @param prov Credentials. - * @param buildTypeId Suite name. + * @param buildTypeId Build type ID, for which visa was ordered. * @param branchForTc Branch for TeamCity. * @param ticket JIRA ticket full name. E.g. IGNITE-5555 * @return {@link Visa} instance. @@ -791,18 +791,20 @@ public class TcBotTriggerAndSignOffService { /** * @param suites Suite Current Status. * @param webUrl Build URL. + * @param buildTypeId Build type ID, for which visa was ordered. + * @param tcIgnited TC service. * @return Comment, which should be sent to the JIRA ticket. */ private String generateJiraComment(List<SuiteCurrentStatus> suites, String webUrl, String buildTypeId, ITeamcityIgnited tcIgnited) { BuildTypeRefCompacted bt = tcIgnited.getBuildTypeRef(buildTypeId); - String suiteName = (bt != null ? bt.name(compactor) : buildTypeId); + String suiteNameUsedForVisa = (bt != null ? bt.name(compactor) : buildTypeId); StringBuilder res = new StringBuilder(); for (SuiteCurrentStatus suite : suites) { - res.append("{color:#d04437}").append(suite.name).append("{color}"); + res.append("{color:#d04437}").append(jiraEscText(suite.name)).append("{color}"); res.append(" [[tests ").append(suite.failedTests); if (suite.result != null && !suite.result.isEmpty()) @@ -814,9 +816,9 @@ public class TcBotTriggerAndSignOffService { res.append("* "); if (failure.suiteName != null && failure.testName != null) - res.append(failure.suiteName).append(": ").append(failure.testName); + res.append(failure.suiteName).append(": ").append(jiraEscText(failure.testName)); else - res.append(failure.name); + res.append(jiraEscText(failure.name)); FailureSummary recent = failure.histBaseBranch.recent; @@ -838,17 +840,28 @@ public class TcBotTriggerAndSignOffService { } if (res.length() > 0) { - res.insert(0, "{panel:title=" + suiteName + ": Possible Blockers|" + + res.insert(0, "{panel:title=" + jiraEscText(suiteNameUsedForVisa) + ": Possible Blockers|" + "borderStyle=dashed|borderColor=#ccc|titleBGColor=#F7D6C1}\\n") .append("{panel}"); } else { - res.append("{panel:title=").append(suiteName).append(": No blockers found!|") + res.append("{panel:title=").append(jiraEscText(suiteNameUsedForVisa)).append(": No blockers found!|") .append("borderStyle=dashed|borderColor=#ccc|titleBGColor=#D6F7C1}{panel}"); } - res.append("\\n").append("[TeamCity *").append(suiteName).append("* Results|").append(webUrl).append(']'); + res.append("\\n").append("[TeamCity *").append(jiraEscText(suiteNameUsedForVisa)).append("* Results|").append(webUrl).append(']'); return xmlEscapeText(res.toString()); } + + /** + * Escapes text for JIRA. + * @param txt Txt. + */ + private String jiraEscText(String txt) { + if(Strings.isNullOrEmpty(txt)) + return ""; + + return txt.replaceAll("\\|", "/"); + } } diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/VisaStatus.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/VisaStatus.java index 5a3cb2d..7347894 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/VisaStatus.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/VisaStatus.java @@ -44,7 +44,7 @@ public class VisaStatus { /** */ @Nullable public String cancelUrl; - /** */ + /** Build type ID, for which visa was ordered. */ @Nullable public String buildTypeId; /** */ diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java index 77301e0..ae43d4a 100644 --- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java +++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/teamcity/ignited/ITeamcityIgnited.java @@ -145,7 +145,7 @@ public interface ITeamcityIgnited { /** * Returns IDs of N. most recent builds in build history. * - * @param btId Bt id. + * @param btId Build type ID. * @param branchForTc Branch for tc. * @param cnt Count. */