Compare commits

..

2 Commits

3 changed files with 40 additions and 18 deletions

View File

@ -352,11 +352,12 @@ public class MergeRequestsServiceImpl implements MergeRequestsService {
private void notifyAboutResolveConflict(MergeRequest oldMergeRequest, MergeRequest mergeRequest, Project project) { private void notifyAboutResolveConflict(MergeRequest oldMergeRequest, MergeRequest mergeRequest, Project project) {
final Long gitlabUserId = personInformation.getId(); final Long gitlabUserId = personInformation.getId();
if ( if (oldMergeRequest.isConflict() && !mergeRequest.isConflict()) {
oldMergeRequest.isConflict() // У старого MR был конфликт // проверяем даты коммитов, так как при пуше в target ветку MR у которого есть конфликт, конфликт на время пропадает. Судя по всему GitLab после пуша заново проверяет вероятность конфликта. Чаще всего конфликт никуда не девается.
&& !mergeRequest.isConflict() // А у нового нет if (oldMergeRequest.getDateLastCommit().equals(mergeRequest.getDateLastCommit())) {
&& gitlabUserId.equals(oldMergeRequest.getAuthor().getId()) // и MR создан пользователем бота mergeRequest.setConflict(true);
) { } else {
if (gitlabUserId.equals(oldMergeRequest.getAuthor().getId())) {
notifyService.send( notifyService.send(
ConflictResolveMrNotify.builder() ConflictResolveMrNotify.builder()
.mrId(oldMergeRequest.getId()) .mrId(oldMergeRequest.getId())
@ -368,6 +369,8 @@ public class MergeRequestsServiceImpl implements MergeRequestsService {
); );
} }
} }
}
}
protected void notifyAboutStatus(MergeRequest oldMergeRequest, MergeRequest newMergeRequest, Project project) { protected void notifyAboutStatus(MergeRequest oldMergeRequest, MergeRequest newMergeRequest, Project project) {
final MergeRequestState oldStatus = oldMergeRequest.getState(); final MergeRequestState oldStatus = oldMergeRequest.getState();

View File

@ -32,7 +32,7 @@ public class SchedulerService {
private final MergeRequestsService mergeRequestsService; private final MergeRequestsService mergeRequestsService;
private final DiscussionService discussionService; private final DiscussionService discussionService;
@Scheduled(cron = "0 0 */1 * * *") @Scheduled(cron = "${gitlab-bot.cron.scan.new-project}")
public void newProjects() { public void newProjects() {
log.info("Запуск процесса получение новых репозиториев c GitLab"); log.info("Запуск процесса получение новых репозиториев c GitLab");
if (!settingService.isFirstStart()) { if (!settingService.isFirstStart()) {
@ -46,7 +46,7 @@ public class SchedulerService {
log.info("Конец процесса получение новых репозиториев c GitLab"); log.info("Конец процесса получение новых репозиториев c GitLab");
} }
@Scheduled(cron = "0 */15 * * * *") @Scheduled(cron = "${gitlab-bot.cron.scan.new-merge-request}")
public void newMergeRequests() { public void newMergeRequests() {
log.info("Запуск процесса получение новых MR c GitLab"); log.info("Запуск процесса получение новых MR c GitLab");
if (!settingService.isFirstStart()) { if (!settingService.isFirstStart()) {
@ -55,7 +55,7 @@ public class SchedulerService {
log.info("Конец процесса получение новых MR c GitLab"); log.info("Конец процесса получение новых MR c GitLab");
} }
@Scheduled(cron = "0 */1 * * * *") @Scheduled(cron = "${gitlab-bot.cron.scan.general}")
public void newMergeRequest() { public void newMergeRequest() {
log.info("Запуск процесса обновления данных c GitLab"); log.info("Запуск процесса обновления данных c GitLab");
if (!settingService.isFirstStart()) { if (!settingService.isFirstStart()) {

View File

@ -37,6 +37,11 @@ telegram:
gitlab-bot: gitlab-bot:
version: 0.0.1-SNAPSHOT version: 0.0.1-SNAPSHOT
cron:
scan:
general: "0 */1 * * * *"
new-project: "0 0 */1 * * *"
new-merge-request: "0 */15 * * * *"
person: person:
telegram-id: ${TELEGRAM_PERSON_ID} telegram-id: ${TELEGRAM_PERSON_ID}
token: ${GITLAB_PERSONAL_TOKEN} token: ${GITLAB_PERSONAL_TOKEN}
@ -59,3 +64,17 @@ gitlab-bot:
new-note-url: "${GITLAB_URL}/api/v4/projects/{0,number,#}/merge_requests/{1,number,#}/discussions/{2}/notes?body={3}" 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,#}" 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}" discussion-url: "${GITLAB_URL}/api/v4/projects/{0,number,#}/merge_requests/{1,number,#}/discussions/{2}"
---
spring:
config:
activate:
on-profile: local
gitlab-bot:
version: 0.0.1-SNAPSHOT
cron:
scan:
general: "0 */1 * * * *"
new-project: "0 */1 * * * *"
new-merge-request: "0 */1 * * * *"