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.
      */

Reply via email to