Исправил проблему ложного уведомления о решении конфликта

This commit is contained in:
Struchkov Mark 2023-03-05 20:38:40 +03:00
parent 3703a1973c
commit 0e4939b351
Signed by: upagge
GPG Key ID: D3018BE7BA428CA6

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();