in tcbot-jira-ignited/src/main/java/org/apache/ignite/jiraignited/JiraTicketSync.java [96:148]
protected String actualizeJiraTickets(String srvCode, boolean fullResync) {
int srvIdMaskHigh = IJiraIgnited.serverIdToInt(srvCode);
IJiraIntegration jira = jiraIntegrationProvider.server(srvCode);
String reqFields = Arrays.stream(Fields.class.getDeclaredFields())
.map(Field::getName)
.collect(Collectors.joining(","));
IJiraServerConfig cfg = jira.config();
String projectCode = cfg.projectCodeForVisa();
String baseUrl = "search?jql=" + escape("project=" + projectCode + " order by updated DESC")
+ "&" +
"fields=" + reqFields +
"&maxResults=100";
String url = baseUrl;
logger.info("Requesting JIRA tickets using URL " + url + ("\n" + cfg.restApiUrl() + url));
Tickets tickets = jira.getTicketsPage(url);
Collection<Ticket> page = tickets.issuesNotNull();
if (F.isEmpty(page))
return "Something went wrong - no tickets found. Check jira availability: " +
"[project=" + projectCode + ", url=" + url + "]";
int ticketsSaved = jiraDao.saveChunk(srvIdMaskHigh, page, projectCode);
int ticketsProcessed = page.size();
if (ticketsSaved != 0 || fullResync) {
while (tickets.nextStart() > 0) {
url = baseUrl + "&startAt=" + tickets.nextStart();
logger.info("Requesting JIRA tickets using URL " + url + ("\n" + cfg.restApiUrl() + url));
tickets = jira.getTicketsPage(url);
page = tickets.issuesNotNull();
if (F.isEmpty(page))
break;
int savedNow = jiraDao.saveChunk(srvIdMaskHigh, page, projectCode);
ticketsSaved += savedNow;
ticketsProcessed += page.size();
if (savedNow == 0 && !fullResync)
break; // find not updated chunk and exit
}
}
return "Jira tickets saved " + ticketsSaved + " from " + ticketsProcessed + " checked for service " + srvCode;
}