Feat: устранены конфликты с версией V.1.0.1
This commit is contained in:
parent
887f5a36f3
commit
ee1bebb5e0
@ -8,20 +8,20 @@ import lombok.EqualsAndHashCode;
|
||||
import lombok.Getter;
|
||||
import lombok.Setter;
|
||||
|
||||
import javax.persistence.CascadeType;
|
||||
import javax.persistence.CollectionTable;
|
||||
import javax.persistence.Column;
|
||||
import javax.persistence.ElementCollection;
|
||||
import javax.persistence.Entity;
|
||||
import javax.persistence.EnumType;
|
||||
import javax.persistence.Enumerated;
|
||||
import javax.persistence.FetchType;
|
||||
import javax.persistence.Id;
|
||||
import javax.persistence.JoinColumn;
|
||||
import javax.persistence.JoinTable;
|
||||
import javax.persistence.ManyToOne;
|
||||
import javax.persistence.OneToMany;
|
||||
import javax.persistence.Table;
|
||||
import jakarta.persistence.CascadeType;
|
||||
import jakarta.persistence.CollectionTable;
|
||||
import jakarta.persistence.Column;
|
||||
import jakarta.persistence.ElementCollection;
|
||||
import jakarta.persistence.Entity;
|
||||
import jakarta.persistence.EnumType;
|
||||
import jakarta.persistence.Enumerated;
|
||||
import jakarta.persistence.FetchType;
|
||||
import jakarta.persistence.Id;
|
||||
import jakarta.persistence.JoinColumn;
|
||||
import jakarta.persistence.JoinTable;
|
||||
import jakarta.persistence.ManyToOne;
|
||||
import jakarta.persistence.OneToMany;
|
||||
import jakarta.persistence.Table;
|
||||
import java.time.LocalDate;
|
||||
import java.time.LocalDateTime;
|
||||
import java.util.ArrayList;
|
||||
|
@ -59,7 +59,7 @@ public class IssueParser {
|
||||
}
|
||||
|
||||
public void parsingOldIssue(){
|
||||
log.debug("Старт обработаки старых Issue");
|
||||
log.debug("Старт обработаки старых Issues");
|
||||
final Set<IdAndStatusIssue> existIds = issueService.getAllId(OLD_STATUSES);
|
||||
|
||||
final List<Issue> newIssues = getOldIssues(existIds).stream()
|
||||
@ -73,7 +73,7 @@ public class IssueParser {
|
||||
personMapping(newIssues);
|
||||
issueService.updateAll(newIssues);
|
||||
}
|
||||
log.debug("Конец обработки старых Issue");
|
||||
log.debug("Конец обработки старых Issues");
|
||||
}
|
||||
|
||||
private List<IssueJson> getOldIssues(Set<IdAndStatusIssue> existIds) {
|
||||
@ -95,20 +95,20 @@ public class IssueParser {
|
||||
|
||||
|
||||
public void parsingNewIssue() {
|
||||
log.debug("Старт обработки новых Issue");
|
||||
log.debug("Старт обработки новых Issues");
|
||||
|
||||
/**
|
||||
* получаем через репозиторий список id всех проектов хранящихся в БД
|
||||
/*
|
||||
* получаем через репозиторий список id всех проектов хранящихся в нашей БД
|
||||
*/
|
||||
final Set<Long> projectIds = projectService.getAllIds();
|
||||
|
||||
/**
|
||||
/*
|
||||
* На основе id проекта, url для получения issues по id проекта и токена пользователя
|
||||
* выгружаем из GitLab список всех IssueJson. Получаем в многопоточном режиме.
|
||||
*/
|
||||
final List<IssueJson> issueJsons = getIssues(projectIds);
|
||||
|
||||
/**
|
||||
/*
|
||||
* Получаем id всех IssueJson загруженных из GitLab
|
||||
*/
|
||||
if (checkNotEmpty(issueJsons)) {
|
||||
@ -117,7 +117,7 @@ public class IssueParser {
|
||||
.collect(Collectors.toSet());
|
||||
|
||||
final ExistContainer<Issue, Long> existContainer = issueService.existsById(jsonIds);
|
||||
log.trace("Из {} полученных MR не найдены в хранилище {}", jsonIds.size(), existContainer.getIdNoFound().size());
|
||||
log.trace("Из {} полученных Issues не найдены в хранилище {}", jsonIds.size(), existContainer.getIdNoFound().size());
|
||||
if (!existContainer.isAllFound()) {
|
||||
final List<Issue> newIssues = issueJsons.stream()
|
||||
.filter(json -> existContainer.getIdNoFound().contains(json.getId()))
|
||||
@ -126,11 +126,11 @@ public class IssueParser {
|
||||
return issue;
|
||||
})
|
||||
.toList();
|
||||
log.trace("Пачка новых issues обработана и отправлена на сохранение. Количество: {} шт.", newIssues.size());
|
||||
log.trace("Пачка новых Issues обработана и отправлена на сохранение. Количество: {} шт.", newIssues.size());
|
||||
issueService.createAll(newIssues);
|
||||
}
|
||||
}
|
||||
log.debug("Конец обработки новых MR");
|
||||
log.debug("Конец обработки новых Issues");
|
||||
}
|
||||
|
||||
private List<IssueJson> getIssues(Set<Long> projectIds) {
|
||||
|
@ -2,7 +2,7 @@ package dev.struchkov.bot.gitlab.core.service.parser.forktask;
|
||||
|
||||
import dev.struchkov.bot.gitlab.core.utils.StringUtils;
|
||||
import dev.struchkov.bot.gitlab.sdk.domain.IssueJson;
|
||||
import dev.struchkov.haiti.utils.network.HttpParse;
|
||||
import dev.struchkov.bot.gitlab.core.utils.HttpParse;
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
@ -13,7 +13,7 @@ import java.util.List;
|
||||
import java.util.concurrent.RecursiveTask;
|
||||
|
||||
import static dev.struchkov.haiti.utils.Checker.checkNotEmpty;
|
||||
import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT;
|
||||
import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT;
|
||||
|
||||
/**
|
||||
* @author Dmitry Sheyko [24.01.2023]
|
||||
|
@ -2,7 +2,7 @@ package dev.struchkov.bot.gitlab.core.service.parser.forktask;
|
||||
|
||||
import dev.struchkov.bot.gitlab.core.utils.StringUtils;
|
||||
import dev.struchkov.bot.gitlab.sdk.domain.IssueJson;
|
||||
import dev.struchkov.haiti.utils.network.HttpParse;
|
||||
import dev.struchkov.bot.gitlab.core.utils.HttpParse;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.SneakyThrows;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
@ -11,7 +11,7 @@ import java.text.MessageFormat;
|
||||
import java.util.Optional;
|
||||
import java.util.concurrent.RecursiveTask;
|
||||
|
||||
import static dev.struchkov.haiti.utils.network.HttpParse.ACCEPT;
|
||||
import static dev.struchkov.bot.gitlab.core.utils.HttpParse.ACCEPT;
|
||||
|
||||
@Slf4j
|
||||
@RequiredArgsConstructor
|
||||
|
@ -39,7 +39,7 @@ public class SchedulerService {
|
||||
|
||||
@Scheduled(cron = "${gitlab-bot.cron.scan.new-project}")
|
||||
public void newProjects() {
|
||||
log.info("Запуск процесса получение новых репозиториев c GitLab");
|
||||
log.info("Запуск процесса получения новых репозиториев c GitLab");
|
||||
if (!settingService.isFirstStart()) {
|
||||
if (settingService.isOwnerProjectScan()) {
|
||||
projectParser.parseAllProjectOwner();
|
||||
@ -48,7 +48,7 @@ public class SchedulerService {
|
||||
projectParser.parseAllPrivateProject();
|
||||
}
|
||||
}
|
||||
log.info("Конец процесса получение новых репозиториев c GitLab");
|
||||
log.info("Конец процесса получения новых репозиториев c GitLab");
|
||||
}
|
||||
|
||||
|
||||
@ -56,11 +56,21 @@ public class SchedulerService {
|
||||
@Scheduled(cron = "0 */1 * * * *")
|
||||
@Scheduled(cron = "${gitlab-bot.cron.scan.new-merge-request}")
|
||||
public void newMergeRequests() {
|
||||
log.info("Запуск процесса получение новых MR c GitLab");
|
||||
log.info("Запуск процесса получения новых MR c GitLab");
|
||||
if (!settingService.isFirstStart()) {
|
||||
mergeRequestParser.parsingNewMergeRequest();
|
||||
}
|
||||
log.info("Конец процесса получение новых MR c GitLab");
|
||||
log.info("Конец процесса получения новых MR c GitLab");
|
||||
}
|
||||
|
||||
@Scheduled(cron = "0 */1 * * * *")
|
||||
@Scheduled(cron = "${gitlab-bot.cron.scan.new-merge-request}")
|
||||
public void newIssues() {
|
||||
log.info("Запуск процесса получения новых Issues c GitLab");
|
||||
if (!settingService.isFirstStart()) {
|
||||
issueParser.parsingNewIssue();
|
||||
}
|
||||
log.info("Конец процесса получения новых Issues c GitLab");
|
||||
}
|
||||
|
||||
@Scheduled(cron = "${gitlab-bot.cron.scan.general}")
|
||||
@ -75,7 +85,6 @@ public class SchedulerService {
|
||||
mergeRequestsService.cleanOld();
|
||||
discussionService.cleanOld();
|
||||
pipelineService.cleanOld();
|
||||
issueParser.parsingNewIssue();
|
||||
issueParser.parsingOldIssue();
|
||||
issueService.cleanOld();
|
||||
} else {
|
||||
|
@ -16,6 +16,13 @@ spring:
|
||||
jdbc:
|
||||
lob:
|
||||
non_contextual_creation: true
|
||||
# без данной настройк ипостоянно выбрасывается исключение:
|
||||
# org.springframework.dao.InvalidDataAccessApiUsageException: Multiple representations of the
|
||||
# same entity [dev.struchkov.bot.gitlab.context.domain.entity.Person#13445232] are being merged.
|
||||
# Detached: [dev.struchkov.bot.gitlab.context.domain.entity.Person@cd28ab];
|
||||
# Detached: [dev.struchkov.bot.gitlab.context.domain.entity.Person@cd28ab]
|
||||
event:
|
||||
merge.entity_copy_observer: allow
|
||||
|
||||
logging:
|
||||
level:
|
||||
@ -70,6 +77,8 @@ gitlab-bot:
|
||||
new-note-url: "${GITLAB_URL}/api/v4/projects/{0,number,#}/merge_requests/{1,number,#}/discussions/{2}/notes?body={3}"
|
||||
discussions-url: "${GITLAB_URL}/api/v4/projects/{0,number,#}/merge_requests/{1,number,#}/discussions?&page={2,number,#}&per_page={3,number,#}"
|
||||
discussion-url: "${GITLAB_URL}/api/v4/projects/{0,number,#}/merge_requests/{1,number,#}/discussions/{2}"
|
||||
issue-url: "${GITLAB_URL}/api/v4/projects/{0,number,#}/issues/{1,number,#}"
|
||||
open-issue-url: "${GITLAB_URL}/api/v4/projects/{0,number,#}/issues?state=opened&page={1, number, integer}&per_page={2, number, integer}"
|
||||
|
||||
---
|
||||
spring:
|
||||
@ -82,6 +91,4 @@ gitlab-bot:
|
||||
scan:
|
||||
general: "0 */1 * * * *"
|
||||
new-project: "0 */1 * * * *"
|
||||
new-merge-request: "0 */1 * * * *"
|
||||
issue-url: "${GITLAB_URL}/api/v4/projects/{0,number,#}/issues/{1,number,#}"
|
||||
open-issue-url: "${GITLAB_URL}/api/v4/projects/{0,number,#}/issues?state=opened&page={1, number, integer}&per_page={2, number, integer}"
|
||||
new-merge-request: "0 */1 * * * *"
|
@ -2,11 +2,11 @@ package dev.struchkov.bot.gitlab.telegram.service.notify;
|
||||
|
||||
import dev.struchkov.bot.gitlab.context.domain.notify.issue.*;
|
||||
import dev.struchkov.bot.gitlab.context.utils.Icons;
|
||||
import dev.struchkov.godfather.main.domain.BoxAnswer;
|
||||
import dev.struchkov.godfather.simple.domain.BoxAnswer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static dev.struchkov.bot.gitlab.context.utils.Icons.link;
|
||||
import static dev.struchkov.godfather.main.domain.BoxAnswer.boxAnswer;
|
||||
import static dev.struchkov.godfather.simple.domain.BoxAnswer.boxAnswer;
|
||||
|
||||
/**
|
||||
* @author Dmitry Sheyko 26.01.2021
|
||||
|
@ -2,11 +2,11 @@ package dev.struchkov.bot.gitlab.telegram.service.notify;
|
||||
|
||||
import dev.struchkov.bot.gitlab.context.domain.notify.issue.DescriptionIssueNotify;
|
||||
import dev.struchkov.bot.gitlab.context.utils.Icons;
|
||||
import dev.struchkov.godfather.main.domain.BoxAnswer;
|
||||
import dev.struchkov.godfather.simple.domain.BoxAnswer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static dev.struchkov.bot.gitlab.context.utils.Icons.link;
|
||||
import static dev.struchkov.godfather.main.domain.BoxAnswer.boxAnswer;
|
||||
import static dev.struchkov.godfather.simple.domain.BoxAnswer.boxAnswer;
|
||||
|
||||
/**
|
||||
* @author Dmitry Sheyko 26.01.2021
|
||||
|
@ -2,11 +2,11 @@ package dev.struchkov.bot.gitlab.telegram.service.notify;
|
||||
|
||||
import dev.struchkov.bot.gitlab.context.domain.notify.issue.DueDateIssueNotify;
|
||||
import dev.struchkov.bot.gitlab.context.utils.Icons;
|
||||
import dev.struchkov.godfather.main.domain.BoxAnswer;
|
||||
import dev.struchkov.godfather.simple.domain.BoxAnswer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static dev.struchkov.bot.gitlab.context.utils.Icons.link;
|
||||
import static dev.struchkov.godfather.main.domain.BoxAnswer.boxAnswer;
|
||||
import static dev.struchkov.godfather.simple.domain.BoxAnswer.boxAnswer;
|
||||
|
||||
/**
|
||||
* @author Dmitry Sheyko 26.01.2021
|
||||
|
@ -2,13 +2,13 @@ package dev.struchkov.bot.gitlab.telegram.service.notify;
|
||||
|
||||
import dev.struchkov.bot.gitlab.context.domain.notify.issue.NewIssueNotify;
|
||||
import dev.struchkov.bot.gitlab.context.utils.Icons;
|
||||
import dev.struchkov.godfather.main.domain.BoxAnswer;
|
||||
import dev.struchkov.godfather.simple.domain.BoxAnswer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import java.util.stream.Collectors;
|
||||
|
||||
import static dev.struchkov.bot.gitlab.context.utils.Icons.link;
|
||||
import static dev.struchkov.godfather.main.domain.BoxAnswer.boxAnswer;
|
||||
import static dev.struchkov.godfather.simple.domain.BoxAnswer.boxAnswer;
|
||||
import static dev.struchkov.haiti.utils.Strings.escapeMarkdown;
|
||||
|
||||
/**
|
||||
|
@ -2,11 +2,11 @@ package dev.struchkov.bot.gitlab.telegram.service.notify;
|
||||
|
||||
import dev.struchkov.bot.gitlab.context.domain.notify.issue.StatusIssueNotify;
|
||||
import dev.struchkov.bot.gitlab.context.utils.Icons;
|
||||
import dev.struchkov.godfather.main.domain.BoxAnswer;
|
||||
import dev.struchkov.godfather.simple.domain.BoxAnswer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static dev.struchkov.bot.gitlab.context.utils.Icons.link;
|
||||
import static dev.struchkov.godfather.main.domain.BoxAnswer.boxAnswer;
|
||||
import static dev.struchkov.godfather.simple.domain.BoxAnswer.boxAnswer;
|
||||
|
||||
/**
|
||||
* @author Dmitry Sheyko 26.01.2021
|
||||
|
@ -2,11 +2,11 @@ package dev.struchkov.bot.gitlab.telegram.service.notify;
|
||||
|
||||
import dev.struchkov.bot.gitlab.context.domain.notify.issue.TitleIssueNotify;
|
||||
import dev.struchkov.bot.gitlab.context.utils.Icons;
|
||||
import dev.struchkov.godfather.main.domain.BoxAnswer;
|
||||
import dev.struchkov.godfather.simple.domain.BoxAnswer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static dev.struchkov.bot.gitlab.context.utils.Icons.link;
|
||||
import static dev.struchkov.godfather.main.domain.BoxAnswer.boxAnswer;
|
||||
import static dev.struchkov.godfather.simple.domain.BoxAnswer.boxAnswer;
|
||||
|
||||
/**
|
||||
* @author Dmitry Sheyko 26.01.2021
|
||||
|
@ -2,11 +2,11 @@ package dev.struchkov.bot.gitlab.telegram.service.notify;
|
||||
|
||||
import dev.struchkov.bot.gitlab.context.domain.notify.issue.TypeIssueNotify;
|
||||
import dev.struchkov.bot.gitlab.context.utils.Icons;
|
||||
import dev.struchkov.godfather.main.domain.BoxAnswer;
|
||||
import dev.struchkov.godfather.simple.domain.BoxAnswer;
|
||||
import org.springframework.stereotype.Component;
|
||||
|
||||
import static dev.struchkov.bot.gitlab.context.utils.Icons.link;
|
||||
import static dev.struchkov.godfather.main.domain.BoxAnswer.boxAnswer;
|
||||
import static dev.struchkov.godfather.simple.domain.BoxAnswer.boxAnswer;
|
||||
|
||||
/**
|
||||
* @author Dmitry Sheyko 26.01.2021
|
||||
|
Loading…
Reference in New Issue
Block a user