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/08/16 16:07:44 UTC
[ignite-teamcity-bot] branch master updated: Branch name from PR is
also used for ticket resolution in PRs list
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 de4a475 Branch name from PR is also used for ticket resolution in PRs list
de4a475 is described below
commit de4a475fcb38dac714af7beb4d7b96af037ed202
Author: Dmitriy Pavlov <dp...@apache.org>
AuthorDate: Fri Aug 16 19:07:17 2019 +0300
Branch name from PR is also used for ticket resolution in PRs list
---
.../tcbot/visa/TcBotTriggerAndSignOffService.java | 10 ++++++++--
.../tcbot/engine/pr/BranchTicketMatcher.java | 22 ++++++++++------------
2 files changed, 18 insertions(+), 14 deletions(-)
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 f51185e..4b77551 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
@@ -430,12 +430,18 @@ public class TcBotTriggerAndSignOffService {
if (user != null) {
c.prAuthor = user.login();
c.prAuthorAvatarUrl = user.avatarUrl();
- } else {
+ }
+ else {
c.prAuthor = "";
c.prAuthorAvatarUrl = "";
}
- Ticket ticket = ticketMatcher.resolveTicketIdForPrBasedContrib(tickets, pr, jiraCfg);
+ Ticket ticket = ticketMatcher.resolveTicketIdForPrBasedContrib(tickets, jiraCfg, pr.getTitle());
+
+ if (ticket == null || ticket.id == 0) {
+ if (pr.head() != null && pr.head().ref() != null)
+ ticket = ticketMatcher.resolveTicketIdForPrBasedContrib(tickets, jiraCfg, pr.head().ref());
+ }
c.jiraIssueId = ticket == null ? null : ticket.key;
c.jiraStatusName = ticket == null ? null : ticket.status();
diff --git a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/BranchTicketMatcher.java b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/BranchTicketMatcher.java
index 3a69f0e..adfad4e 100644
--- a/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/BranchTicketMatcher.java
+++ b/tcbot-engine/src/main/java/org/apache/ignite/tcbot/engine/pr/BranchTicketMatcher.java
@@ -86,27 +86,25 @@ public class BranchTicketMatcher {
/**
* @param tickets Tickets.
- * @param pr Pr.
* @param jiraCfg Jira config.
+ * @param prTitle
*/
- @Nullable public Ticket resolveTicketIdForPrBasedContrib(Collection<Ticket> tickets, PullRequest pr,
- IJiraServerConfig jiraCfg) {
+ @Nullable public Ticket resolveTicketIdForPrBasedContrib(Collection<Ticket> tickets,
+ IJiraServerConfig jiraCfg, String prTitle) {
String branchNumPrefix = jiraCfg.branchNumPrefix();
if (Strings.isNullOrEmpty(branchNumPrefix)) {
//an easy way, no special branch and ticket mappings specified, use project code.
String jiraPrefix = jiraCfg.projectCodeForVisa() + Ticket.PROJECT_DELIM;
- final String ticketKey = findFixPrefixedNumber(pr.getTitle(), jiraPrefix);
+ final String ticketKey = findFixPrefixedNumber(prTitle, jiraPrefix);
return tickets.stream()
- .filter(t -> Objects.equals(t.key, ticketKey))
- .findFirst()
- .orElseGet(()->new Ticket(ticketKey));
+ .filter(t -> Objects.equals(t.key, ticketKey))
+ .findFirst()
+ .orElseGet(() -> new Ticket(ticketKey));
}
- String prTitle = pr.getTitle();
-
String branchNum = findFixPrefixedNumber(prTitle, branchNumPrefix);
if (branchNum == null) // PR does not mention
@@ -200,7 +198,7 @@ public class BranchTicketMatcher {
while (endIdx < val.length() && Character.isDigit(val.charAt(endIdx)))
endIdx++;
- if (endIdx == beginIdx)
+ if (endIdx == beginIdx || endIdx - beginIdx <= 1) // protection from one digit resolution to IGNITE-2
return null;
return prefix + val.substring(beginIdx, endIdx);
@@ -263,9 +261,9 @@ public class BranchTicketMatcher {
ticketFromPr = jiraPrefixInPr;
}
else {
- if (Strings.isNullOrEmpty(jiraPrefixInPr)) {
+ if (Strings.isNullOrEmpty(jiraPrefixInPr))
ticketFromPr = null;
- } else {
+ else {
Ticket ticketMentions = findTicketMentions(srvCode, jiraPrefixInPr);
ticketFromPr = ticketMentions == null ? null : ticketMentions.key;