From 0e4939b351080d7dbb10e74dfe2463f0194fedf1 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Sun, 5 Mar 2023 20:38:40 +0300 Subject: [PATCH] =?UTF-8?q?=D0=98=D1=81=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D0=BF=D1=80=D0=BE=D0=B1=D0=BB=D0=B5=D0=BC=D1=83=20?= =?UTF-8?q?=D0=BB=D0=BE=D0=B6=D0=BD=D0=BE=D0=B3=D0=BE=20=D1=83=D0=B2=D0=B5?= =?UTF-8?q?=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD=D0=B8=D1=8F=20=D0=BE=20?= =?UTF-8?q?=D1=80=D0=B5=D1=88=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=BA=D0=BE=D0=BD?= =?UTF-8?q?=D1=84=D0=BB=D0=B8=D0=BA=D1=82=D0=B0?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../impl/MergeRequestsServiceImpl.java | 31 ++++++++++--------- 1 file changed, 17 insertions(+), 14 deletions(-) diff --git a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/impl/MergeRequestsServiceImpl.java b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/impl/MergeRequestsServiceImpl.java index 81274f1..173603b 100644 --- a/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/impl/MergeRequestsServiceImpl.java +++ b/bot-core/src/main/java/dev/struchkov/bot/gitlab/core/service/impl/MergeRequestsServiceImpl.java @@ -352,20 +352,23 @@ public class MergeRequestsServiceImpl implements MergeRequestsService { private void notifyAboutResolveConflict(MergeRequest oldMergeRequest, MergeRequest mergeRequest, Project project) { final Long gitlabUserId = personInformation.getId(); - if ( - oldMergeRequest.isConflict() // У старого MR был конфликт - && !mergeRequest.isConflict() // А у нового нет - && gitlabUserId.equals(oldMergeRequest.getAuthor().getId()) // и MR создан пользователем бота - ) { - notifyService.send( - ConflictResolveMrNotify.builder() - .mrId(oldMergeRequest.getId()) - .sourceBranch(oldMergeRequest.getSourceBranch()) - .name(mergeRequest.getTitle()) - .url(mergeRequest.getWebUrl()) - .projectKey(project.getName()) - .build() - ); + if (oldMergeRequest.isConflict() && !mergeRequest.isConflict()) { + // проверяем даты коммитов, так как при пуше в target ветку MR у которого есть конфликт, конфликт на время пропадает. Судя по всему GitLab после пуша заново проверяет вероятность конфликта. Чаще всего конфликт никуда не девается. + if (oldMergeRequest.getDateLastCommit().equals(mergeRequest.getDateLastCommit())) { + mergeRequest.setConflict(true); + } else { + if (gitlabUserId.equals(oldMergeRequest.getAuthor().getId())) { + notifyService.send( + ConflictResolveMrNotify.builder() + .mrId(oldMergeRequest.getId()) + .sourceBranch(oldMergeRequest.getSourceBranch()) + .name(mergeRequest.getTitle()) + .url(mergeRequest.getWebUrl()) + .projectKey(project.getName()) + .build() + ); + } + } } }