You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ignite.apache.org by dp...@apache.org on 2019/04/05 12:26:35 UTC

[ignite-teamcity-bot] 01/01: IGNITE-11688: Default tracked branch name is now overridable in server config

This is an automated email from the ASF dual-hosted git repository.

dpavlov pushed a commit to branch ignite-11688
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git

commit 94959c541978499338a20ed2184ec5705d4c69eb
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Fri Apr 5 15:26:29 2019 +0300

    IGNITE-11688: Default tracked branch name is now overridable in server config
---
 .../apache/ignite/ci/github/pure/GitHubConnectionImpl.java  |  7 +++++--
 .../ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java |  6 +++---
 .../org/apache/ignite/ci/tcbot/conf/ITcServerConfig.java    |  5 +++++
 .../org/apache/ignite/ci/tcbot/conf/TcServerConfig.java     | 13 +++++++++++++
 .../org/apache/ignite/ci/tcbot/issue/IssueDetector.java     |  4 ++--
 .../ignite/ci/tcbot/visa/TcBotTriggerAndSignOffService.java |  8 ++++++--
 .../apache/ignite/ci/web/rest/parms/FullQueryParams.java    |  1 -
 7 files changed, 34 insertions(+), 10 deletions(-)

diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
index a7ff550..ddfce1c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/github/pure/GitHubConnectionImpl.java
@@ -141,7 +141,10 @@ class GitHubConnectionImpl implements IGitHubConnection {
 
     /** {@inheritDoc} */
     @Override public String gitApiUrl() {
-        return gitApiUrl;
+        if (gitApiUrl == null)
+            return null;
+
+        return gitApiUrl.endsWith("/") ? gitApiUrl : gitApiUrl + "/";
     }
 
     /** {@inheritDoc} */
@@ -150,7 +153,7 @@ class GitHubConnectionImpl implements IGitHubConnection {
         @Nullable AtomicReference<String> outLinkNext) {
         Preconditions.checkState(!isNullOrEmpty(gitApiUrl), "Git API URL is not configured for this server.");
 
-        String url = fullUrl != null ? fullUrl : gitApiUrl + "pulls?sort=updated&direction=desc";
+        String url = fullUrl != null ? fullUrl : gitApiUrl() + "pulls?sort=updated&direction=desc";
 
         HashMap<String, String> rspHeaders = new HashMap<>();
         if (outLinkNext != null) {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java
index 5648057..a261730 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/chain/TrackedBranchChainsProcessor.java
@@ -27,6 +27,7 @@ import org.apache.ignite.ci.analysis.mode.ProcessLogsMode;
 import org.apache.ignite.ci.conf.BranchTracked;
 import org.apache.ignite.ci.di.AutoProfiling;
 import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
+import org.apache.ignite.ci.tcbot.conf.TcServerConfig;
 import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnited;
 import org.apache.ignite.ci.teamcity.ignited.ITeamcityIgnitedProvider;
 import org.apache.ignite.ci.teamcity.ignited.SyncMode;
@@ -35,7 +36,6 @@ import org.apache.ignite.ci.user.ICredentialsProv;
 import org.apache.ignite.ci.web.model.current.ChainAtServerCurrentStatus;
 import org.apache.ignite.ci.web.model.current.TestFailuresSummary;
 import org.apache.ignite.ci.web.model.long_running.FullLRTestsSummary;
-import org.apache.ignite.ci.web.rest.parms.FullQueryParams;
 import org.jetbrains.annotations.NotNull;
 import org.jetbrains.annotations.Nullable;
 
@@ -68,7 +68,7 @@ public class TrackedBranchChainsProcessor {
         final TestFailuresSummary res = new TestFailuresSummary();
         final AtomicInteger runningUpdates = new AtomicInteger();
 
-        final String branchNn = isNullOrEmpty(branch) ? FullQueryParams.DEFAULT_TRACKED_BRANCH_NAME : branch;
+        final String branchNn = isNullOrEmpty(branch) ? TcServerConfig.DEFAULT_TRACKED_BRANCH_NAME : branch;
         res.setTrackedBranch(branchNn);
 
         final BranchTracked tracked = tcBotConfig.getTrackedBranches().getBranchMandatory(branchNn);
@@ -143,7 +143,7 @@ public class TrackedBranchChainsProcessor {
         ICredentialsProv creds) {
         FullLRTestsSummary summary = new FullLRTestsSummary();
 
-        final String branchNn = isNullOrEmpty(branch) ? FullQueryParams.DEFAULT_TRACKED_BRANCH_NAME : branch;
+        final String branchNn = isNullOrEmpty(branch) ? TcServerConfig.DEFAULT_TRACKED_BRANCH_NAME : branch;
         final BranchTracked tracked = tcBotConfig.getTrackedBranches().getBranchMandatory(branchNn);
 
         tracked.chains.stream()
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcServerConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcServerConfig.java
index 8f65ee8..7c5185f 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcServerConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/ITcServerConfig.java
@@ -35,4 +35,9 @@ public interface ITcServerConfig {
     @NotNull public String host();
 
     @NotNull public String logsDirectory();
+
+    /**
+     * @return
+     */
+    @NotNull public String defaultTrackedBranch();
 }
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/TcServerConfig.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/TcServerConfig.java
index 81ceea2..1c42a11 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/TcServerConfig.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/conf/TcServerConfig.java
@@ -27,6 +27,7 @@ import org.jetbrains.annotations.Nullable;
  * Teamcity connection configuration or reference to another config.
  */
 public class TcServerConfig implements ITcServerConfig {
+    public static final String DEFAULT_TRACKED_BRANCH_NAME = "master";
     private static final String DEFAULT_HOST = "https://ci.ignite.apache.org/";
 
     /** TC server name. */
@@ -44,6 +45,9 @@ public class TcServerConfig implements ITcServerConfig {
     /** Downloaded build logs relative path. */
     @Nullable private String logsDir;
 
+    /** Default tracked branch. */
+    @Nullable private String defaultTrackedBranch;
+
     public TcServerConfig() {
 
     }
@@ -101,7 +105,16 @@ public class TcServerConfig implements ITcServerConfig {
         return props != null
             ? props.getProperty(HelperConfig.HOST, DEFAULT_HOST)
             : DEFAULT_HOST;
+    }
+
+    /**
+     * @return tracked branch name to be used for this server for PRs check
+     */
+    @Override @NotNull public String defaultTrackedBranch() {
+        if (!Strings.isNullOrEmpty(defaultTrackedBranch))
+            return defaultTrackedBranch;
 
+        return DEFAULT_TRACKED_BRANCH_NAME;
     }
 
     /**
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
index 4828867..48d965c 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/issue/IssueDetector.java
@@ -47,6 +47,7 @@ import org.apache.ignite.ci.mail.EmailSender;
 import org.apache.ignite.ci.mail.SlackSender;
 import org.apache.ignite.ci.tcbot.chain.TrackedBranchChainsProcessor;
 import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
+import org.apache.ignite.ci.tcbot.conf.TcServerConfig;
 import org.apache.ignite.ci.tcbot.user.IUserStorage;
 import org.apache.ignite.ci.teamcity.ignited.IRunHistory;
 import org.apache.ignite.ci.teamcity.ignited.IStringCompactor;
@@ -61,7 +62,6 @@ import org.apache.ignite.ci.web.model.current.ChainAtServerCurrentStatus;
 import org.apache.ignite.ci.web.model.current.SuiteCurrentStatus;
 import org.apache.ignite.ci.web.model.current.TestFailure;
 import org.apache.ignite.ci.web.model.current.TestFailuresSummary;
-import org.apache.ignite.ci.web.rest.parms.FullQueryParams;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
@@ -159,7 +159,7 @@ public class IssueDetector {
             .forEach(issue -> {
                 List<String> addrs = new ArrayList<>();
 
-                if (slackCh != null && FullQueryParams.DEFAULT_TRACKED_BRANCH_NAME.equals(issue.trackedBranchName))
+                if (slackCh != null && TcServerConfig.DEFAULT_TRACKED_BRANCH_NAME.equals(issue.trackedBranchName))
                     addrs.add(SLACK + "#" + slackCh);
 
                 for (TcHelperUser next : userForPossibleNotifications) {
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 6ca04b3..658efed 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
@@ -51,6 +51,7 @@ import org.apache.ignite.ci.tcbot.chain.PrChainsProcessor;
 import org.apache.ignite.ci.tcbot.conf.IGitHubConfig;
 import org.apache.ignite.ci.tcbot.conf.IJiraServerConfig;
 import org.apache.ignite.ci.tcbot.conf.ITcBotConfig;
+import org.apache.ignite.ci.tcbot.conf.ITcServerConfig;
 import org.apache.ignite.ci.tcmodel.mute.MuteInfo;
 import org.apache.ignite.ci.tcmodel.result.Build;
 import org.apache.ignite.ci.teamcity.ignited.BuildRefCompacted;
@@ -81,7 +82,7 @@ import static org.apache.ignite.ci.observer.BuildsInfo.CANCELLED_STATUS;
 import static org.apache.ignite.ci.observer.BuildsInfo.FINISHED_STATUS;
 import static org.apache.ignite.ci.observer.BuildsInfo.RUNNING_STATUS;
 import static org.apache.ignite.ci.util.XmlUtil.xmlEscapeText;
-import static org.apache.ignite.ci.web.rest.parms.FullQueryParams.DEFAULT_TRACKED_BRANCH_NAME;
+import static org.apache.ignite.ci.tcbot.conf.TcServerConfig.DEFAULT_TRACKED_BRANCH_NAME;
 
 /**
  * TC Bot Visa Facade. Provides method for TC Bot Visa obtaining. Contains features for adding comment to the ticket
@@ -572,8 +573,11 @@ public class TcBotTriggerAndSignOffService {
     @NotNull public String findDefaultBranchBuildType(String srvId) {
         StringBuilder buildTypeId = new StringBuilder();
 
+        ITcServerConfig tcCfg = cfg.getTeamcityConfig(srvId);
+        String trBranch = tcCfg.defaultTrackedBranch();
+
         cfg.getTrackedBranches()
-            .get(DEFAULT_TRACKED_BRANCH_NAME)
+            .get(trBranch)
             .ifPresent(
                 b -> b.getChainsStream()
                     .filter(c -> Objects.equals(srvId, c.serverId))
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/parms/FullQueryParams.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/parms/FullQueryParams.java
index 323691b..11d0b56 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/parms/FullQueryParams.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/rest/parms/FullQueryParams.java
@@ -27,7 +27,6 @@ import org.jetbrains.annotations.Nullable;
  * Contains maximum combination of query parameters
  */
 public class FullQueryParams {
-    public static final String DEFAULT_TRACKED_BRANCH_NAME = "master";
 
     //see definitions in Index.html javascript
     public static final String HISTORY = "History";