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/02/18 13:16:36 UTC
[ignite-teamcity-bot] branch master updated: IGNITE-11105 Fix for
PR-less contributions in case JIRA tickets/branches mapping is used
This is an automated email from the ASF dual-hosted git repository.
dpavlov pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/ignite-teamcity-bot.git
The following commit(s) were added to refs/heads/master by this push:
new 846ae2b IGNITE-11105 Fix for PR-less contributions in case JIRA tickets/branches mapping is used
846ae2b is described below
commit 846ae2b3bfd26c145b7f80ae1277d895794708a7
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Mon Feb 18 16:15:47 2019 +0300
IGNITE-11105 Fix for PR-less contributions in case JIRA tickets/branches mapping is used
---
.../ci/tcbot/visa/ContributionCheckStatus.java | 2 +-
.../ignite/ci/tcbot/visa/ContributionToCheck.java | 6 ++-
.../tcbot/visa/TcBotTriggerAndSignOffService.java | 47 +++++++++++++++++-----
.../org/apache/ignite/ci/web/model/Version.java | 2 +-
ignite-tc-helper-web/src/main/webapp/js/prs-1.1.js | 16 ++++++--
5 files changed, 55 insertions(+), 18 deletions(-)
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionCheckStatus.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionCheckStatus.java
index ba7e027..078a4f9 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionCheckStatus.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionCheckStatus.java
@@ -21,7 +21,7 @@ import java.util.List;
/**
* Status of contribution check details returned from server. UI model for displaying detailed {@link
- * ContributionToCheck} status.
+ * ContributionToCheck} status in relation to particular Run Configuration.
*/
@SuppressWarnings("PublicField") public class ContributionCheckStatus {
/** Queued builds. */
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionToCheck.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionToCheck.java
index 6238b23..2009c20 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionToCheck.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/tcbot/visa/ContributionToCheck.java
@@ -21,7 +21,11 @@ package org.apache.ignite.ci.tcbot.visa;
* Full version is placed in {@link ContributionCheckStatus}.
*/
@SuppressWarnings("PublicField") public class ContributionToCheck {
- /** Pr number. Positive value implies PR number, negative value is for JIRA ticket for PR-less contributions. */
+ /**
+ * Pr number.
+ * Negative value imples branch number (with appropriate prefix from GH config), value from
+ * {@link #tcBranchName}.
+ */
public Integer prNumber;
/** Pr title. */
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 34f35a8..ddba3fd 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
@@ -41,13 +41,14 @@ import org.apache.ignite.ci.github.GitHubUser;
import org.apache.ignite.ci.github.PullRequest;
import org.apache.ignite.ci.github.ignited.IGitHubConnIgnited;
import org.apache.ignite.ci.github.ignited.IGitHubConnIgnitedProvider;
-import org.apache.ignite.ci.jira.pure.Ticket;
import org.apache.ignite.ci.jira.ignited.IJiraIgnited;
import org.apache.ignite.ci.jira.ignited.IJiraIgnitedProvider;
+import org.apache.ignite.ci.jira.pure.Ticket;
import org.apache.ignite.ci.observer.BuildObserver;
import org.apache.ignite.ci.observer.BuildsInfo;
import org.apache.ignite.ci.tcbot.ITcBotBgAuth;
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.tcmodel.mute.MuteInfo;
@@ -358,6 +359,9 @@ public class TcBotTriggerAndSignOffService {
List<Ticket> paTickets = tickets.stream().filter(Ticket::isActiveContribution).collect(Collectors.toList());
+ IJiraServerConfig jiraCfg = jiraIntegration.config();
+ IGitHubConfig ghCfg = gitHubConnIgnited.config();
+
List<ContributionToCheck> contribsList = requests.stream().map(pr -> {
ContributionToCheck check = new ContributionToCheck();
check.prNumber = pr.getNumber();
@@ -375,8 +379,6 @@ public class TcBotTriggerAndSignOffService {
check.prAuthorAvatarUrl = "";
}
- IJiraServerConfig jiraCfg = jiraIntegration.config();
-
check.jiraIssueId = ticketMatcher.resolveTicketIdForPrBasedContrib(tickets, pr, jiraCfg);
if (!Strings.isNullOrEmpty(check.jiraIssueId))
@@ -389,10 +391,10 @@ public class TcBotTriggerAndSignOffService {
paTickets.forEach(ticket -> {
String branch = ticketMatcher.resolveTcBranchForPrLess(ticket,
- jiraIntegration.config(),
- gitHubConnIgnited.config());
+ jiraCfg,
+ ghCfg);
- if (branch == null)
+ if (Strings.isNullOrEmpty(branch))
return; // nothing to do if branch was not resolved
String defBtForMaster = findDefaultBranchBuildType(tcIgn.serverId());
@@ -406,7 +408,17 @@ public class TcBotTriggerAndSignOffService {
contribution.jiraIssueUrl = jiraIntegration.generateTicketUrl( ticket.key);
contribution.tcBranchName = branch;
- contribution.prNumber = -ticket.keyWithoutProject(jiraIntegration.config().projectCodeForVisa());
+ if(branch.startsWith(ghCfg.gitBranchPrefix())) {
+ String branchTc = branch.substring(ghCfg.gitBranchPrefix().length());
+
+ try {
+ contribution.prNumber = - Integer.valueOf(branchTc);
+ }
+ catch (NumberFormatException e) {
+ logger.error("PR less contribution has invalid branch name", e);
+ }
+ }
+
contribution.prTitle = ticket.fields.summary;
contribution.prHtmlUrl = "";
contribution.prTimeUpdate = ""; //todo ticket updateTime
@@ -420,8 +432,17 @@ public class TcBotTriggerAndSignOffService {
return contribsList;
}
- @Nonnull private List<BuildRefCompacted> findBuildsForPr(String suiteId, String prId,
- IGitHubConnIgnited ghConn, ITeamcityIgnited srv) {
+ /**
+ * @param suiteId Suite id.
+ * @param prId Pr id from {@link ContributionToCheck#prNumber}. Negative value imples branch number for PR-less.
+ * @param ghConn Gh connection.
+ * @param srv TC Server connection.
+ */
+ @Nonnull
+ private List<BuildRefCompacted> findBuildsForPr(String suiteId,
+ String prId,
+ IGitHubConnIgnited ghConn,
+ ITeamcityIgnited srv) {
List<BuildRefCompacted> buildHist = srv.getAllBuildsCompacted(suiteId, branchForTcDefault(prId, ghConn));
@@ -455,6 +476,10 @@ public class TcBotTriggerAndSignOffService {
return Collections.emptyList();
}
+ /**
+ * @param prId Pr id from {@link ContributionToCheck#prNumber}. Negative value imples branch number to be used for PR-less contributions.
+ * @param srv Github integration.
+ */
private String branchForTcDefault(String prId, IGitHubConnIgnited srv) {
Integer prNum = Integer.valueOf(prId);
if (prNum < 0)
@@ -474,7 +499,7 @@ public class TcBotTriggerAndSignOffService {
/**
* @param srvId Server id.
* @param prov Prov.
- * @param prId Pr id.
+ * @param prId Pr id from {@link ContributionToCheck#prNumber}. Negative value imples branch number (with appropriate prefix from GH config).
*/
public Set<ContributionCheckStatus> contributionStatuses(String srvId, ICredentialsProv prov,
String prId) {
@@ -540,7 +565,7 @@ public class TcBotTriggerAndSignOffService {
* @param srvId Server id.
* @param suiteId Suite id.
* @param builds Build references.
- * @param ghConn
+ * @param ghConn GitHub integration.
*/
public ContributionCheckStatus contributionStatus(String srvId, String suiteId, List<BuildRefCompacted> builds,
ITeamcityIgnited teamcity, IGitHubConnIgnited ghConn, String prId) {
diff --git a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
index 7b7e934..e892e0e 100644
--- a/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
+++ b/ignite-tc-helper-web/src/main/java/org/apache/ignite/ci/web/model/Version.java
@@ -28,7 +28,7 @@ package org.apache.ignite.ci.web.model;
public static final String GITHUB_REF = "https://github.com/apache/ignite-teamcity-bot";
/** TC Bot Version. */
- public static final String VERSION = "20190214";
+ public static final String VERSION = "20190218";
/** Java version, where Web App is running. */
public String javaVer;
diff --git a/ignite-tc-helper-web/src/main/webapp/js/prs-1.1.js b/ignite-tc-helper-web/src/main/webapp/js/prs-1.1.js
index 1bb3c0f..d9e14e2 100644
--- a/ignite-tc-helper-web/src/main/webapp/js/prs-1.1.js
+++ b/ignite-tc-helper-web/src/main/webapp/js/prs-1.1.js
@@ -323,10 +323,10 @@ function formatContributionDetails(row, srvId) {
let select = $("#selectChain_" + prId);
- select.change(function() {
- let pr = prs.get(prId),
- selectedOption = $("#selectChain_" + prId + " option:selected").text(),
- buildIsCompleted = select.val() === 'true';
+ select.change(function () {
+ let pr = prs.get(prId);
+ let selectedOption = $("#selectChain_" + prId + " option:selected").text();
+ let buildIsCompleted = select.val() === 'true';
showContributionStatus(pr.get(selectedOption), prId, row, srvId, selectedOption, buildIsCompleted);
});
@@ -364,6 +364,14 @@ function repaintLater(srvId) {
}, 3000);
}
+/**
+ *
+ * @param status contribution status related to selected run-configuration.
+ * @param prId
+ * @param row
+ * @param srvId
+ * @param suiteIdSelected
+ */
function showContributionStatus(status, prId, row, srvId, suiteIdSelected) {
let tdForPr = $('#showResultFor' + prId);