Исправление уведомления об обновлении MR

This commit is contained in:
Struchkov Mark 2023-01-17 00:36:07 +03:00
parent 03b8675c78
commit f2bd5247ae
Signed by: upagge
GPG Key ID: D3018BE7BA428CA6

View File

@ -156,28 +156,26 @@ public class MergeRequestsServiceImpl implements MergeRequestsService {
mergeRequest.setUserAssignee(assigneeChanged.getNewStatus(oldMergeRequest.isUserAssignee())); mergeRequest.setUserAssignee(assigneeChanged.getNewStatus(oldMergeRequest.isUserAssignee()));
mergeRequest.setUserReviewer(reviewerChanged.getNewStatus(oldMergeRequest.isUserReviewer())); mergeRequest.setUserReviewer(reviewerChanged.getNewStatus(oldMergeRequest.isUserReviewer()));
final boolean isChangedMr = !oldMergeRequest.getUpdatedDate().equals(mergeRequest.getUpdatedDate()) final boolean isChangedMr = !oldMergeRequest.getUpdatedDate().equals(mergeRequest.getUpdatedDate()) || oldMergeRequest.isConflict() != mergeRequest.isConflict();
|| oldMergeRequest.isConflict() != mergeRequest.isConflict();
final boolean isChangedLinkedEntity = reviewerChanged.isChanged() || assigneeChanged.isChanged(); final boolean isChangedLinkedEntity = reviewerChanged.isChanged() || assigneeChanged.isChanged();
if (isChangedMr || isChangedLinkedEntity) { if (isChangedMr || isChangedLinkedEntity) {
final MergeRequest savedMergeRequest = repository.save(mergeRequest);
if (oldMergeRequest.isNotification()) { if (oldMergeRequest.isNotification()) {
final Project project = projectService.getByIdOrThrow(mergeRequest.getProjectId()); final Project project = projectService.getByIdOrThrow(mergeRequest.getProjectId());
if (isChangedMr) { if (isChangedMr) {
notifyAboutStatus(oldMergeRequest, savedMergeRequest, project); notifyAboutStatus(oldMergeRequest, mergeRequest, project);
notifyAboutConflict(oldMergeRequest, savedMergeRequest, project); notifyAboutConflict(oldMergeRequest, mergeRequest, project);
notifyAboutUpdate(oldMergeRequest, savedMergeRequest, project); notifyAboutUpdate(oldMergeRequest, mergeRequest, project);
} }
if (isChangedLinkedEntity) { if (isChangedLinkedEntity) {
notifyReviewer(reviewerChanged, savedMergeRequest, project); notifyReviewer(reviewerChanged, mergeRequest, project);
notifyAssignee(assigneeChanged, savedMergeRequest, project); notifyAssignee(assigneeChanged, mergeRequest, project);
} }
} }
return savedMergeRequest; return repository.save(mergeRequest);
} }
return oldMergeRequest; return oldMergeRequest;
@ -261,8 +259,8 @@ public class MergeRequestsServiceImpl implements MergeRequestsService {
if ( if (
!botUserGitlabId.equals(mergeRequest.getAuthor().getId()) // Автор MR не пользователь приложения !botUserGitlabId.equals(mergeRequest.getAuthor().getId()) // Автор MR не пользователь приложения
&& !oldMergeRequest.getDateLastCommit().equals(mergeRequest.getDateLastCommit()) // Изменилась дата последнего коммита && !oldMergeRequest.getDateLastCommit().equals(mergeRequest.getDateLastCommit()) // Изменилась дата последнего коммита
&& !mergeRequest.isConflict() // MR не находится в состоянии конфликта && !mergeRequest.isConflict() // MR не находится в состоянии конфликта
) { ) {
long allTask = 0; long allTask = 0;
@ -304,8 +302,8 @@ public class MergeRequestsServiceImpl implements MergeRequestsService {
final Long gitlabUserId = personInformation.getId(); final Long gitlabUserId = personInformation.getId();
if ( if (
!oldMergeRequest.isConflict() // У старого MR не было конфликта !oldMergeRequest.isConflict() // У старого MR не было конфликта
&& mergeRequest.isConflict() // А у нового есть && mergeRequest.isConflict() // А у нового есть
&& gitlabUserId.equals(oldMergeRequest.getAuthor().getId()) // и MR создан пользователем бота && gitlabUserId.equals(oldMergeRequest.getAuthor().getId()) // и MR создан пользователем бота
) { ) {
notifyService.send( notifyService.send(
ConflictPrNotify.builder() ConflictPrNotify.builder()
@ -324,7 +322,7 @@ public class MergeRequestsServiceImpl implements MergeRequestsService {
final Long gitlabUserId = personInformation.getId(); final Long gitlabUserId = personInformation.getId();
if ( if (
!oldStatus.equals(newStatus) // статус изменился !oldStatus.equals(newStatus) // статус изменился
&& gitlabUserId.equals(oldMergeRequest.getAuthor().getId()) // создатель MR является пользователем бота && gitlabUserId.equals(oldMergeRequest.getAuthor().getId()) // создатель MR является пользователем бота
) { ) {
notifyService.send( notifyService.send(
StatusPrNotify.builder() StatusPrNotify.builder()