diff --git a/bot-app/src/main/resources/application.yaml b/bot-app/src/main/resources/application.yaml
index f65c6a5..e652edb 100644
--- a/bot-app/src/main/resources/application.yaml
+++ b/bot-app/src/main/resources/application.yaml
@@ -22,7 +22,7 @@ telegram-config:
bot-username: ${TELEGRAM_BOT_USERNAME}
bot-token: ${TELEGRAM_BOT_TOKEN}
gitlab-bot:
- version: 0.0.4 Beta
+ version: 0.0.5 Beta
person:
telegram-id: ${TELEGRAM_PERSON_ID}
token: ${GITLAB_PERSONAL_TOKEN}
diff --git a/bot-app/src/main/resources/liquibase/v.1.0.0/2021-01-14-create-tables.xml b/bot-app/src/main/resources/liquibase/v.1.0.0/2021-01-14-create-tables.xml
index dcdd9bf..73153e9 100644
--- a/bot-app/src/main/resources/liquibase/v.1.0.0/2021-01-14-create-tables.xml
+++ b/bot-app/src/main/resources/liquibase/v.1.0.0/2021-01-14-create-tables.xml
@@ -126,6 +126,7 @@
+
diff --git a/bot-app/src/main/resources/messages_ru.properties b/bot-app/src/main/resources/messages_ru.properties
index 1b10a95..1f67911 100644
--- a/bot-app/src/main/resources/messages_ru.properties
+++ b/bot-app/src/main/resources/messages_ru.properties
@@ -22,7 +22,7 @@ notify.pr.forgotten={0} *Напоминание о просмотре PullReques
notify.pr.conflict={0} *Внимание! Конфликт в MergeRequest | {4}*{1}[{2}]({3})
notify.pr.smart={0} *Напоминание о MergeRequest | {6}*{3}[{1}]({2}){3}{4} изменил свое решение на {5}
notify.pr.state={0} *Изменился статус MergeRequest | {7}*{1}[{2}]({3}){1}{4} {5} {6}
-notify.pr.update={0} *Обновление MergeRequest | {6}*{3}[{1}]({2}){3}{4}: {5}
+notify.pr.update={0} *Обновление MergeRequest | {6}*{3}[{1}]({2}){3}Все задачи: {8}/{7}\nВаши задачи: {10}/{9}{3}{4}: {5}
notify.task.close={0} *Закрыта* [задача]({1}){2}*{3}*: {4}
notify.task.new={0} *Назначена новая* [задача]({1}){2}*{3}*: {4}
notify.project.new={0} *Новый Проект*{1}[{2}]({3}){1}{4}{5}: {6}
diff --git a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/entity/Discussion.java b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/entity/Discussion.java
index 08d899c..ce41736 100644
--- a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/entity/Discussion.java
+++ b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/entity/Discussion.java
@@ -37,6 +37,9 @@ public class Discussion implements BasicEntity {
@JoinColumn(name = "responsible_id")
private Person responsible;
+ @Column(name = "resolved")
+ private Boolean resolved;
+
@ManyToOne()
@JoinTable(
name = "discussion_merge_request",
@@ -60,4 +63,8 @@ public class Discussion implements BasicEntity {
this.notes = notes;
}
+ public Note getFirstNote() {
+ return this.notes.get(0);
+ }
+
}
diff --git a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/notify/pullrequest/UpdatePrNotify.java b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/notify/pullrequest/UpdatePrNotify.java
index 87563fb..7b65e5d 100644
--- a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/notify/pullrequest/UpdatePrNotify.java
+++ b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/domain/notify/pullrequest/UpdatePrNotify.java
@@ -9,23 +9,35 @@ import org.sadtech.bot.gitlab.context.utils.Smile;
public class UpdatePrNotify extends PrNotify {
private final String author;
+ private final Long allTasks;
+ private final Long allResolvedTasks;
+ private final Long personTasks;
+ private final Long personResolvedTasks;
@Builder
private UpdatePrNotify(
String name,
String url,
String author,
- String projectKey
+ String projectKey,
+ Long allTasks,
+ Long allResolvedTasks,
+ Long personTasks,
+ Long personResolvedTasks
) {
super(projectKey, name, url);
this.author = author;
+ this.allTasks = allTasks;
+ this.allResolvedTasks = allResolvedTasks;
+ this.personTasks = personTasks;
+ this.personResolvedTasks = personResolvedTasks;
}
@Override
public String generateMessage(AppSettingService settingService) {
return settingService.getMessage(
"notify.pr.update",
- Smile.UPDATE.getValue(), title, url, Smile.HR.getValue(), Smile.AUTHOR.getValue(), author, projectName
+ Smile.UPDATE.getValue(), title, url, Smile.HR.getValue(), Smile.AUTHOR.getValue(), author, projectName, allTasks, allResolvedTasks, personTasks, personResolvedTasks
);
}
diff --git a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/repository/DiscussionRepository.java b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/repository/DiscussionRepository.java
index 4c83096..b971341 100644
--- a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/repository/DiscussionRepository.java
+++ b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/repository/DiscussionRepository.java
@@ -1,8 +1,11 @@
package org.sadtech.bot.gitlab.context.repository;
+import lombok.NonNull;
import org.sadtech.bot.gitlab.context.domain.entity.Discussion;
import org.sadtech.haiti.context.repository.SimpleManagerRepository;
+import java.util.List;
+
/**
* // TODO: 11.02.2021 Добавить описание.
*
@@ -10,4 +13,6 @@ import org.sadtech.haiti.context.repository.SimpleManagerRepository;
*/
public interface DiscussionRepository extends SimpleManagerRepository {
+ List findAllByMergeRequestId(@NonNull Long mergeRequestId);
+
}
diff --git a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/service/AppSettingService.java b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/service/AppSettingService.java
index 4adcdb2..ccf649f 100644
--- a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/service/AppSettingService.java
+++ b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/service/AppSettingService.java
@@ -16,7 +16,7 @@ public interface AppSettingService {
String getMessage(@NonNull String label);
- String getMessage(@NonNull String label, String... params);
+ String getMessage(@NonNull String label, Object... params);
void setLocale(@NonNull AppLocale appLocale);
diff --git a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/service/DiscussionService.java b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/service/DiscussionService.java
index aaa0e67..5475238 100644
--- a/bot-context/src/main/java/org/sadtech/bot/gitlab/context/service/DiscussionService.java
+++ b/bot-context/src/main/java/org/sadtech/bot/gitlab/context/service/DiscussionService.java
@@ -4,6 +4,8 @@ import lombok.NonNull;
import org.sadtech.bot.gitlab.context.domain.entity.Discussion;
import org.sadtech.haiti.context.service.SimpleManagerService;
+import java.util.List;
+
/**
* // TODO: 11.02.2021 Добавить описание.
*
@@ -13,4 +15,6 @@ public interface DiscussionService extends SimpleManagerService getAllByMergeRequestId(@NonNull Long mergeRequestId);
+
}
diff --git a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/AppSettingServiceImpl.java b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/AppSettingServiceImpl.java
index 5c76c12..d0150e8 100644
--- a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/AppSettingServiceImpl.java
+++ b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/AppSettingServiceImpl.java
@@ -54,7 +54,7 @@ public class AppSettingServiceImpl implements AppSettingService {
}
@Override
- public String getMessage(@NonNull String label, String... params) {
+ public String getMessage(@NonNull String label, Object... params) {
final Object[] paramsArray = Arrays.stream(params).toArray();
return messageSource.getMessage(
label,
diff --git a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/DiscussionServiceImpl.java b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/DiscussionServiceImpl.java
index 401ed44..237d9e3 100644
--- a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/DiscussionServiceImpl.java
+++ b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/DiscussionServiceImpl.java
@@ -13,9 +13,11 @@ import org.sadtech.bot.gitlab.context.domain.entity.MergeRequest;
import org.sadtech.bot.gitlab.context.domain.entity.Note;
import org.sadtech.bot.gitlab.context.domain.notify.comment.CommentNotify;
import org.sadtech.bot.gitlab.context.domain.notify.task.TaskCloseNotify;
+import org.sadtech.bot.gitlab.context.domain.notify.task.TaskNewNotify;
import org.sadtech.bot.gitlab.context.repository.DiscussionRepository;
import org.sadtech.bot.gitlab.context.service.DiscussionService;
import org.sadtech.bot.gitlab.context.service.NotifyService;
+import org.sadtech.bot.gitlab.context.service.PersonService;
import org.sadtech.bot.gitlab.core.config.properties.GitlabProperty;
import org.sadtech.bot.gitlab.core.config.properties.PersonProperty;
import org.sadtech.haiti.context.exception.NotFoundException;
@@ -25,6 +27,7 @@ import org.springframework.stereotype.Service;
import java.io.IOException;
import java.text.MessageFormat;
import java.util.HashSet;
+import java.util.List;
import java.util.Map;
import java.util.Set;
import java.util.regex.Matcher;
@@ -45,6 +48,7 @@ public class DiscussionServiceImpl extends AbstractSimpleManagerService personService.create(note.getAuthor()));
discussion.getNotes().forEach(this::notificationPersonal);
+ discussion.getNotes().forEach(note -> notifyNewTask(note, discussion));
+
+ final boolean resolved = discussion.getNotes().stream()
+ .allMatch(note -> note.isResolvable() && note.getResolved());
+ discussion.setResolved(resolved);
return discussionRepository.save(discussion);
}
+ private void notifyNewTask(Note note, Discussion discussion) {
+ if (note.isResolvable()
+ && personInformation.getId().equals(discussion.getResponsible().getId())
+ && !personInformation.getId().equals(note.getAuthor().getId())
+ && note.getResolved() != null
+ && !note.getResolved()
+ ) {
+ notifyService.send(
+ TaskNewNotify.builder()
+ .authorName(note.getAuthor().getName())
+ .messageTask(note.getBody())
+ .url(note.getWebUrl())
+ .build()
+ );
+ }
+ }
+
@Override
public Discussion update(@NonNull Discussion discussion) {
- final Discussion oldDiscussion = discussionRepository.findById(discussion.getId()).orElseThrow(() -> new NotFoundException("Дискуссия не найдена"));
+ final Discussion oldDiscussion = discussionRepository.findById(discussion.getId())
+ .orElseThrow(() -> new NotFoundException("Дискуссия не найдена"));
final Map noteMap = oldDiscussion
.getNotes().stream()
.collect(Collectors.toMap(Note::getId, note -> note));
+ final boolean inDiscussion = discussion.getNotes().stream()
+ .anyMatch(note -> personInformation.getId().equals(note.getAuthor().getId()));
discussion.setMergeRequest(oldDiscussion.getMergeRequest());
discussion.setResponsible(oldDiscussion.getResponsible());
- discussion.getNotes().forEach(note -> updateNote(note, noteMap));
-
+ discussion.getNotes().forEach(note -> updateNote(note, noteMap, inDiscussion));
+ final boolean resolved = discussion.getNotes().stream()
+ .allMatch(note -> note.isResolvable() && note.getResolved());
+ discussion.setResolved(resolved);
return discussionRepository.save(discussion);
}
- private void updateNote(Note note, Map noteMap) {
+ private void updateNote(Note note, Map noteMap, boolean inDiscussion) {
if (noteMap.containsKey(note.getId())) {
final Note oldNote = noteMap.get(note.getId());
- note.setWebUrl(oldNote.getWebUrl());
if (note.isResolvable()) {
updateTask(note, oldNote);
}
} else {
- notificationPersonal(note);
+ if (inDiscussion) {
+ notifyNewAnswer(note);
+ } else {
+ notificationPersonal(note);
+ }
+ }
+ }
+
+ private void notifyNewAnswer(Note note) {
+ if (!personInformation.getId().equals(note.getAuthor().getId())) {
+ notifyService.send(
+ CommentNotify.builder()
+ .url(note.getWebUrl())
+ .message(note.getBody())
+ .authorName(note.getAuthor().getName())
+ .build()
+ );
}
}
@@ -143,6 +191,11 @@ public class DiscussionServiceImpl extends AbstractSimpleManagerService getAllByMergeRequestId(@NonNull Long mergeRequestId) {
+ return discussionRepository.findAllByMergeRequestId(mergeRequestId);
+ }
+
protected void notificationPersonal(@NonNull Note note) {
Matcher matcher = PATTERN.matcher(note.getBody());
Set recipientsLogins = new HashSet<>();
diff --git a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/MergeRequestsServiceImpl.java b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/MergeRequestsServiceImpl.java
index f904875..e43d9b4 100644
--- a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/MergeRequestsServiceImpl.java
+++ b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/impl/MergeRequestsServiceImpl.java
@@ -4,6 +4,7 @@ import lombok.NonNull;
import org.sadtech.bot.gitlab.context.domain.IdAndStatusPr;
import org.sadtech.bot.gitlab.context.domain.MergeRequestState;
import org.sadtech.bot.gitlab.context.domain.PersonInformation;
+import org.sadtech.bot.gitlab.context.domain.entity.Discussion;
import org.sadtech.bot.gitlab.context.domain.entity.MergeRequest;
import org.sadtech.bot.gitlab.context.domain.entity.Project;
import org.sadtech.bot.gitlab.context.domain.filter.MergeRequestFilter;
@@ -12,6 +13,7 @@ import org.sadtech.bot.gitlab.context.domain.notify.pullrequest.NewPrNotify;
import org.sadtech.bot.gitlab.context.domain.notify.pullrequest.StatusPrNotify;
import org.sadtech.bot.gitlab.context.domain.notify.pullrequest.UpdatePrNotify;
import org.sadtech.bot.gitlab.context.repository.MergeRequestRepository;
+import org.sadtech.bot.gitlab.context.service.DiscussionService;
import org.sadtech.bot.gitlab.context.service.MergeRequestsService;
import org.sadtech.bot.gitlab.context.service.NotifyService;
import org.sadtech.bot.gitlab.context.service.PersonService;
@@ -24,8 +26,11 @@ import org.sadtech.haiti.filter.FilterService;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.stereotype.Service;
+import java.util.List;
+import java.util.Objects;
import java.util.Optional;
import java.util.Set;
+import java.util.stream.Collectors;
@Service
public class MergeRequestsServiceImpl extends AbstractSimpleManagerService implements MergeRequestsService {
@@ -35,6 +40,7 @@ public class MergeRequestsServiceImpl extends AbstractSimpleManagerService filterService;
private final ProjectService projectService;
+ private final DiscussionService discussionService;
private final PersonInformation personInformation;
@@ -44,7 +50,7 @@ public class MergeRequestsServiceImpl extends AbstractSimpleManagerService filterService,
ProjectService projectService,
- PersonInformation personInformation
+ DiscussionService discussionService, PersonInformation personInformation
) {
super(mergeRequestRepository);
this.notifyService = notifyService;
@@ -52,6 +58,7 @@ public class MergeRequestsServiceImpl extends AbstractSimpleManagerService discussions = discussionService.getAllByMergeRequestId(oldMergeRequest.getId())
+ .stream()
+ .filter(discussion -> Objects.nonNull(discussion.getResponsible()))
+ .collect(Collectors.toList());
+ final long allTask = discussions.size();
+ final long resolvedTask = discussions.stream()
+ .filter(Discussion::getResolved)
+ .count();
+ final long allYouTasks = discussions.stream()
+ .filter(discussion -> personInformation.getId().equals(discussion.getFirstNote().getAuthor().getId()))
+ .count();
+ final long resolvedYouTask = discussions.stream()
+ .filter(discussion -> personInformation.getId().equals(discussion.getFirstNote().getAuthor().getId()) && discussion.getResolved())
+ .count();
notifyService.send(
UpdatePrNotify.builder()
.author(oldMergeRequest.getAuthor().getName())
.name(oldMergeRequest.getTitle())
.projectKey(project.getName())
.url(oldMergeRequest.getWebUrl())
+ .allTasks(allTask)
+ .allResolvedTasks(resolvedTask)
+ .personTasks(allYouTasks)
+ .personResolvedTasks(resolvedYouTask)
.build()
);
}
@@ -159,6 +184,7 @@ public class MergeRequestsServiceImpl extends AbstractSimpleManagerService implements NoteService {
-
private final NoteRepository noteRepository;
public NoteServiceImpl(NoteRepository noteRepository) {
diff --git a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/parser/DiscussionParser.java b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/parser/DiscussionParser.java
index 6fac8a1..3a7b6e1 100644
--- a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/parser/DiscussionParser.java
+++ b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/parser/DiscussionParser.java
@@ -9,7 +9,6 @@ import org.sadtech.bot.gitlab.core.config.properties.GitlabProperty;
import org.sadtech.bot.gitlab.core.config.properties.PersonProperty;
import org.sadtech.bot.gitlab.sdk.domain.DiscussionJson;
import org.sadtech.haiti.context.domain.ExistsContainer;
-import org.sadtech.haiti.context.exception.ConvertException;
import org.sadtech.haiti.context.page.Sheet;
import org.sadtech.haiti.core.page.PaginationImpl;
import org.sadtech.haiti.utils.network.HttpParse;
@@ -18,6 +17,7 @@ import org.springframework.stereotype.Component;
import java.text.MessageFormat;
import java.util.List;
+import java.util.Optional;
import java.util.Set;
import java.util.stream.Collectors;
@@ -93,6 +93,7 @@ public class DiscussionParser {
);
return discussion;
})
+ .filter(discussion -> discussion.getNotes() != null && !discussion.getNotes().isEmpty())
.collect(Collectors.toList());
discussionService.createAll(newDiscussions);
}
@@ -114,13 +115,21 @@ public class DiscussionParser {
for (Discussion discussion : discussions) {
if (discussion.getMergeRequest() != null) {
- final Discussion newDiscussion = HttpParse.request(MessageFormat.format(gitlabProperty.getUrlOneDiscussion(), discussion.getMergeRequest().getProjectId(), discussion.getMergeRequest().getTwoId(), discussion.getId()))
+ final Optional optNewDiscussion = HttpParse.request(MessageFormat.format(gitlabProperty.getUrlOneDiscussion(), discussion.getMergeRequest().getProjectId(), discussion.getMergeRequest().getTwoId(), discussion.getId()))
.header(ACCEPT)
.header(AUTHORIZATION, BEARER + personProperty.getToken())
.execute(DiscussionJson.class)
- .map(json -> conversionService.convert(json, Discussion.class))
- .orElseThrow(() -> new ConvertException("Ошибка парсинга дискуссии"));
- discussionService.update(newDiscussion);
+ .map(json -> {
+ final Discussion newDiscussion = conversionService.convert(json, Discussion.class);
+ newDiscussion.getNotes().forEach(
+ note -> {
+ final String url = MessageFormat.format(gitlabProperty.getUrlNote(), discussion.getMergeRequest().getWebUrl(), note.getId());
+ note.setWebUrl(url);
+ }
+ );
+ return newDiscussion;
+ });
+ optNewDiscussion.ifPresent(discussionService::update);
} else {
discussionService.deleteById(discussion.getId());
}
diff --git a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/parser/MergeRequestParser.java b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/parser/MergeRequestParser.java
index 29d2af4..1da5a1a 100644
--- a/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/parser/MergeRequestParser.java
+++ b/bot-core/src/main/java/org/sadtech/bot/gitlab/core/service/parser/MergeRequestParser.java
@@ -36,7 +36,6 @@ import static org.sadtech.haiti.utils.network.HttpParse.BEARER;
@RequiredArgsConstructor
public class MergeRequestParser {
-
public static final Integer COUNT = 100;
private static final Set OLD_STATUSES = Stream.of(
MergeRequestState.MERGED, MergeRequestState.OPENED, MergeRequestState.CLOSED
@@ -119,7 +118,9 @@ public class MergeRequestParser {
.header(ACCEPT)
.header(AUTHORIZATION, BEARER + personProperty.getToken())
.executeList(CommitJson.class);
- mergeRequest.setDateLastCommit(commitJson.get(0).getCreatedDate());
+ if (commitJson != null && !commitJson.isEmpty()) {
+ mergeRequest.setDateLastCommit(commitJson.get(0).getCreatedDate());
+ }
}
private List getMergeRequestJsons(Project project, int page) {
diff --git a/bot-data/src/main/java/org/sadtech/bot/gitlab/data/impl/DiscussionRepositoryImpl.java b/bot-data/src/main/java/org/sadtech/bot/gitlab/data/impl/DiscussionRepositoryImpl.java
index 3dd01d3..c2a2e75 100644
--- a/bot-data/src/main/java/org/sadtech/bot/gitlab/data/impl/DiscussionRepositoryImpl.java
+++ b/bot-data/src/main/java/org/sadtech/bot/gitlab/data/impl/DiscussionRepositoryImpl.java
@@ -1,11 +1,14 @@
package org.sadtech.bot.gitlab.data.impl;
+import lombok.NonNull;
import org.sadtech.bot.gitlab.context.domain.entity.Discussion;
import org.sadtech.bot.gitlab.context.repository.DiscussionRepository;
+import org.sadtech.bot.gitlab.data.jpa.DiscussionJpaRepository;
import org.sadtech.haiti.database.repository.manager.AbstractSimpleManagerRepository;
-import org.springframework.data.jpa.repository.JpaRepository;
import org.springframework.stereotype.Repository;
+import java.util.List;
+
/**
* // TODO: 11.02.2021 Добавить описание.
*
@@ -14,8 +17,16 @@ import org.springframework.stereotype.Repository;
@Repository
public class DiscussionRepositoryImpl extends AbstractSimpleManagerRepository implements DiscussionRepository {
- public DiscussionRepositoryImpl(JpaRepository jpaRepository) {
+ private final DiscussionJpaRepository jpaRepository;
+
+ public DiscussionRepositoryImpl(DiscussionJpaRepository jpaRepository) {
super(jpaRepository);
+ this.jpaRepository = jpaRepository;
+ }
+
+ @Override
+ public List findAllByMergeRequestId(@NonNull Long mergeRequestId) {
+ return jpaRepository.findAllByMergeRequestId(mergeRequestId);
}
}
diff --git a/bot-data/src/main/java/org/sadtech/bot/gitlab/data/jpa/DiscussionJpaRepository.java b/bot-data/src/main/java/org/sadtech/bot/gitlab/data/jpa/DiscussionJpaRepository.java
index 525b69c..631fc4c 100644
--- a/bot-data/src/main/java/org/sadtech/bot/gitlab/data/jpa/DiscussionJpaRepository.java
+++ b/bot-data/src/main/java/org/sadtech/bot/gitlab/data/jpa/DiscussionJpaRepository.java
@@ -3,6 +3,8 @@ package org.sadtech.bot.gitlab.data.jpa;
import org.sadtech.bot.gitlab.context.domain.entity.Discussion;
import org.springframework.data.jpa.repository.JpaRepository;
+import java.util.List;
+
/**
* // TODO: 11.02.2021 Добавить описание.
*
@@ -10,4 +12,6 @@ import org.springframework.data.jpa.repository.JpaRepository;
*/
public interface DiscussionJpaRepository extends JpaRepository {
+ List findAllByMergeRequestId(Long mergeRequestId);
+
}