From ec48b5ee1d7a0f2bd88b3bda598f0cc034ac4956 Mon Sep 17 00:00:00 2001 From: Struchkov Mark Date: Tue, 17 Jan 2023 01:06:17 +0300 Subject: [PATCH] =?UTF-8?q?=D0=9F=D0=BE=D0=BF=D1=80=D0=B0=D0=B2=D0=B8?= =?UTF-8?q?=D0=BB=20=D1=83=D0=B2=D0=B5=D0=B4=D0=BE=D0=BC=D0=BB=D0=B5=D0=BD?= =?UTF-8?q?=D0=B8=D0=B5=20=D0=BE=20=D0=BD=D0=B0=D0=B7=D0=BD=D0=B0=D1=87?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B8=20=D0=B2=20=D0=BA=D0=B0=D1=87=D0=B5?= =?UTF-8?q?=D1=81=D1=82=D0=B2=D0=B5=20=D0=BE=D1=82=D0=B2=D0=B5=D1=82=D1=81?= =?UTF-8?q?=D0=B2=D0=B5=D0=BD=D0=BD=D0=BE=D0=B3=D0=BE?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- ...ictPrNotify.java => ConflictMrNotify.java} | 4 +- .../{PrNotify.java => MrNotify.java} | 4 +- .../notify/mergerequest/NewMrForAssignee.java | 41 +++++++++++++++++ .../notify/mergerequest/NewMrForReview.java | 41 +++++++++++++++++ .../{NewPrNotify.java => NewMrNotify.java} | 23 +++------- ...tatusPrNotify.java => StatusMrNotify.java} | 4 +- ...pdatePrNotify.java => UpdateMrNotify.java} | 4 +- .../bot/gitlab/context/utils/Icons.java | 1 + .../impl/MergeRequestsServiceImpl.java | 28 ++++++------ .../notify/ConflictPrNotifyGenerator.java | 8 ++-- .../NewMrForAssigneeNotifyGenerator.java | 45 +++++++++++++++++++ ...ava => NewMrForReviewNotifyGenerator.java} | 8 ++-- .../notify/StatusPrNotifyGenerator.java | 8 ++-- .../notify/UpdatePrNotifyGenerator.java | 8 ++-- 14 files changed, 173 insertions(+), 54 deletions(-) rename bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/{ConflictPrNotify.java => ConflictMrNotify.java} (86%) rename bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/{PrNotify.java => MrNotify.java} (86%) create mode 100644 bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrForAssignee.java create mode 100644 bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrForReview.java rename bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/{NewPrNotify.java => NewMrNotify.java} (59%) rename bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/{StatusPrNotify.java => StatusMrNotify.java} (90%) rename bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/{UpdatePrNotify.java => UpdateMrNotify.java} (92%) create mode 100644 telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/NewMrForAssigneeNotifyGenerator.java rename telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/{NewPrNotifyGenerator.java => NewMrForReviewNotifyGenerator.java} (87%) diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/ConflictPrNotify.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/ConflictMrNotify.java similarity index 86% rename from bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/ConflictPrNotify.java rename to bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/ConflictMrNotify.java index a959495..aef37af 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/ConflictPrNotify.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/ConflictMrNotify.java @@ -4,14 +4,14 @@ import lombok.Builder; import lombok.Getter; @Getter -public class ConflictPrNotify extends PrNotify { +public class ConflictMrNotify extends MrNotify { public static final String TYPE = "ConflictPrNotify"; private final String sourceBranch; @Builder - private ConflictPrNotify( + private ConflictMrNotify( String name, String url, String projectKey, diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/PrNotify.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/MrNotify.java similarity index 86% rename from bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/PrNotify.java rename to bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/MrNotify.java index 40187aa..38f8bfd 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/PrNotify.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/MrNotify.java @@ -4,13 +4,13 @@ import dev.struchkov.bot.gitlab.context.domain.notify.Notify; import lombok.Getter; @Getter -public abstract class PrNotify implements Notify { +public abstract class MrNotify implements Notify { protected final String projectName; protected final String title; protected final String url; - protected PrNotify( + protected MrNotify( String projectName, String title, String url diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrForAssignee.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrForAssignee.java new file mode 100644 index 0000000..81e8816 --- /dev/null +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrForAssignee.java @@ -0,0 +1,41 @@ +package dev.struchkov.bot.gitlab.context.domain.notify.mergerequest; + +import lombok.Builder; +import lombok.Getter; + +import java.util.Set; + +@Getter +public class NewMrForAssignee extends NewMrNotify { + + public static final String TYPE = "NewMrForAssignee"; + + @Builder + private NewMrForAssignee( + String title, + String url, + String description, + String author, + String projectName, + String targetBranch, + String sourceBranch, + Set labels + ) { + super( + title, + url, + description, + author, + projectName, + targetBranch, + sourceBranch, + labels + ); + } + + @Override + public String getType() { + return TYPE; + } + +} diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrForReview.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrForReview.java new file mode 100644 index 0000000..521f285 --- /dev/null +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrForReview.java @@ -0,0 +1,41 @@ +package dev.struchkov.bot.gitlab.context.domain.notify.mergerequest; + +import lombok.Builder; +import lombok.Getter; + +import java.util.Set; + +@Getter +public class NewMrForReview extends NewMrNotify { + + public static final String TYPE = "NewMrForReview"; + + @Builder + private NewMrForReview( + String title, + String url, + String description, + String author, + String projectName, + String targetBranch, + String sourceBranch, + Set labels + ) { + super( + title, + url, + description, + author, + projectName, + targetBranch, + sourceBranch, + labels + ); + } + + @Override + public String getType() { + return TYPE; + } + +} diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewPrNotify.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrNotify.java similarity index 59% rename from bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewPrNotify.java rename to bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrNotify.java index 7ccb2d2..4b99c5d 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewPrNotify.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/NewMrNotify.java @@ -1,23 +1,19 @@ package dev.struchkov.bot.gitlab.context.domain.notify.mergerequest; -import lombok.Builder; import lombok.Getter; import java.util.Set; @Getter -public class NewPrNotify extends PrNotify { +public abstract class NewMrNotify extends MrNotify { - public static final String TYPE = "NewPrNotify"; + protected final String description; + protected final String author; + protected final String targetBranch; + protected final String sourceBranch; + protected final Set labels; - private final String description; - private final String author; - private final String targetBranch; - private final String sourceBranch; - private final Set labels; - - @Builder - private NewPrNotify( + protected NewMrNotify( String title, String url, String description, @@ -35,9 +31,4 @@ public class NewPrNotify extends PrNotify { this.labels = labels; } - @Override - public String getType() { - return TYPE; - } - } diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/StatusPrNotify.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/StatusMrNotify.java similarity index 90% rename from bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/StatusPrNotify.java rename to bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/StatusMrNotify.java index 6e689c0..dc7488d 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/StatusPrNotify.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/StatusMrNotify.java @@ -5,7 +5,7 @@ import lombok.Builder; import lombok.Getter; @Getter -public class StatusPrNotify extends PrNotify { +public class StatusMrNotify extends MrNotify { public static final String TYPE = "StatusPrNotify"; @@ -13,7 +13,7 @@ public class StatusPrNotify extends PrNotify { private final MergeRequestState newStatus; @Builder - private StatusPrNotify( + private StatusMrNotify( String name, String url, String projectName, diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/UpdatePrNotify.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/UpdateMrNotify.java similarity index 92% rename from bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/UpdatePrNotify.java rename to bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/UpdateMrNotify.java index 2fa9881..d8f2ab1 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/UpdatePrNotify.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/domain/notify/mergerequest/UpdateMrNotify.java @@ -4,7 +4,7 @@ import lombok.Builder; import lombok.Getter; @Getter -public class UpdatePrNotify extends PrNotify { +public class UpdateMrNotify extends MrNotify { public static final String TYPE = "UpdatePrNotify"; @@ -15,7 +15,7 @@ public class UpdatePrNotify extends PrNotify { private final Long personResolvedTasks; @Builder - private UpdatePrNotify( + private UpdateMrNotify( String name, String url, String author, diff --git a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/utils/Icons.java b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/utils/Icons.java index 49de493..91f92f7 100644 --- a/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/utils/Icons.java +++ b/bot-context/src/main/java/dev/struchkov/bot/gitlab/context/utils/Icons.java @@ -17,6 +17,7 @@ public class Icons { public static final String ARROW = " ➜ "; public static final String DANGEROUS = "⚠️"; public static final String PEN = "✏️"; + public static final String ASSIGNEE = "\uD83C\uDF96"; public static final String BUILD = "\uD83D\uDEE0"; public static final String LINK = "\uD83D\uDD17"; 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 602685d..d818088 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 @@ -11,10 +11,11 @@ import dev.struchkov.bot.gitlab.context.domain.entity.MergeRequest; import dev.struchkov.bot.gitlab.context.domain.entity.MergeRequestForDiscussion; import dev.struchkov.bot.gitlab.context.domain.entity.Person; import dev.struchkov.bot.gitlab.context.domain.entity.Project; -import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.ConflictPrNotify; -import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.NewPrNotify; -import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.StatusPrNotify; -import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.UpdatePrNotify; +import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.ConflictMrNotify; +import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.NewMrForAssignee; +import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.NewMrForReview; +import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.StatusMrNotify; +import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.UpdateMrNotify; import dev.struchkov.bot.gitlab.context.repository.MergeRequestRepository; import dev.struchkov.bot.gitlab.context.service.DiscussionService; import dev.struchkov.bot.gitlab.context.service.MergeRequestsService; @@ -67,7 +68,7 @@ public class MergeRequestsServiceImpl implements MergeRequestsService { if (botUserReviewer || botUserAssignee) { if (!mergeRequest.isConflict()) { final String projectName = projectService.getByIdOrThrow(savedMergeRequest.getProjectId()).getName(); - if (botUserReviewer) sendNotifyAboutNewMr(savedMergeRequest, projectName); + if (botUserReviewer) sendNotifyNewMrReview(savedMergeRequest, projectName); if (botUserAssignee) sendNotifyAboutAssignee(mergeRequest, projectName); } } @@ -111,9 +112,9 @@ public class MergeRequestsServiceImpl implements MergeRequestsService { return false; } - private void sendNotifyAboutNewMr(MergeRequest mergeRequest, String projectName) { + private void sendNotifyNewMrReview(MergeRequest mergeRequest, String projectName) { notifyService.send( - NewPrNotify.builder() + NewMrForReview.builder() .projectName(projectName) .labels(mergeRequest.getLabels()) .author(mergeRequest.getAuthor().getName()) @@ -128,7 +129,7 @@ public class MergeRequestsServiceImpl implements MergeRequestsService { private void sendNotifyAboutAssignee(MergeRequest mergeRequest, String projectName) { notifyService.send( - NewPrNotify.builder() + NewMrForAssignee.builder() .projectName(projectName) .labels(mergeRequest.getLabels()) .author(mergeRequest.getAuthor().getName()) @@ -185,15 +186,14 @@ public class MergeRequestsServiceImpl implements MergeRequestsService { //TODO [05.12.2022|uPagge]: Добавить уведомление, если происходит удаление private void notifyAssignee(AssigneeChanged assigneeChanged, MergeRequest mergeRequest, Project project) { switch (assigneeChanged) { - case BECOME -> sendNotifyAboutNewMr(mergeRequest, project.getName()); + case BECOME -> sendNotifyAboutAssignee(mergeRequest, project.getName()); } } //TODO [05.12.2022|uPagge]: Добавить уведомление, если происходит удаление ревьювера - //TODO [05.12.2022|uPagge]: Заменить тип уведомления на самостоятельный private void notifyReviewer(ReviewerChanged reviewerChanged, MergeRequest mergeRequest, Project project) { switch (reviewerChanged) { - case BECOME -> sendNotifyAboutNewMr(mergeRequest, project.getName()); + case BECOME -> sendNotifyNewMrReview(mergeRequest, project.getName()); } } @@ -284,7 +284,7 @@ public class MergeRequestsServiceImpl implements MergeRequestsService { } } notifyService.send( - UpdatePrNotify.builder() + UpdateMrNotify.builder() .author(oldMergeRequest.getAuthor().getName()) .name(oldMergeRequest.getTitle()) .projectKey(project.getName()) @@ -306,7 +306,7 @@ public class MergeRequestsServiceImpl implements MergeRequestsService { && gitlabUserId.equals(oldMergeRequest.getAuthor().getId()) // и MR создан пользователем бота ) { notifyService.send( - ConflictPrNotify.builder() + ConflictMrNotify.builder() .sourceBranch(oldMergeRequest.getSourceBranch()) .name(mergeRequest.getTitle()) .url(mergeRequest.getWebUrl()) @@ -325,7 +325,7 @@ public class MergeRequestsServiceImpl implements MergeRequestsService { && gitlabUserId.equals(oldMergeRequest.getAuthor().getId()) // создатель MR является пользователем бота ) { notifyService.send( - StatusPrNotify.builder() + StatusMrNotify.builder() .name(newMergeRequest.getTitle()) .url(oldMergeRequest.getWebUrl()) .projectName(project.getName()) diff --git a/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/ConflictPrNotifyGenerator.java b/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/ConflictPrNotifyGenerator.java index 3376bba..43653e9 100644 --- a/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/ConflictPrNotifyGenerator.java +++ b/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/ConflictPrNotifyGenerator.java @@ -1,6 +1,6 @@ package dev.struchkov.bot.gitlab.telegram.service.notify; -import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.ConflictPrNotify; +import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.ConflictMrNotify; import dev.struchkov.bot.gitlab.context.utils.Icons; import dev.struchkov.godfather.main.domain.BoxAnswer; import org.springframework.stereotype.Component; @@ -10,10 +10,10 @@ import static dev.struchkov.godfather.main.domain.BoxAnswer.boxAnswer; import static dev.struchkov.haiti.utils.Strings.escapeMarkdown; @Component -public class ConflictPrNotifyGenerator implements NotifyBoxAnswerGenerator { +public class ConflictPrNotifyGenerator implements NotifyBoxAnswerGenerator { @Override - public BoxAnswer generate(ConflictPrNotify notify) { + public BoxAnswer generate(ConflictMrNotify notify) { final StringBuilder builder = new StringBuilder(Icons.DANGEROUS).append(" *Attention! MergeRequest conflict | ").append(escapeMarkdown(notify.getProjectName())).append("*") .append(Icons.HR) @@ -25,7 +25,7 @@ public class ConflictPrNotifyGenerator implements NotifyBoxAnswerGenerator { + + @Override + public BoxAnswer generate(NewMrForAssignee notify) { + final String labelText = notify.getLabels().stream() + .map(label -> "#" + label) + .collect(Collectors.joining(" ")); + + + final StringBuilder builder = new StringBuilder(Icons.ASSIGNEE).append(" *You have become responsible | ").append(escapeMarkdown(notify.getProjectName())).append("*") + .append(Icons.HR) + .append(link(notify.getType(), notify.getUrl())); + + if (!labelText.isEmpty()) { + builder.append("\n\n").append(labelText); + } + + builder.append(Icons.HR) + .append(Icons.TREE).append(": ").append(notify.getSourceBranch()).append(Icons.ARROW).append(notify.getTargetBranch()).append("\n") + .append(Icons.AUTHOR).append(": ").append(notify.getAuthor()); + + final String notifyMessage = builder.toString(); + return boxAnswer(notifyMessage); + } + + @Override + public String getNotifyType() { + return NewMrForAssignee.TYPE; + } + +} diff --git a/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/NewPrNotifyGenerator.java b/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/NewMrForReviewNotifyGenerator.java similarity index 87% rename from telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/NewPrNotifyGenerator.java rename to telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/NewMrForReviewNotifyGenerator.java index 1cdde46..c142376 100644 --- a/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/NewPrNotifyGenerator.java +++ b/telegram-bot/src/main/java/dev/struchkov/bot/gitlab/telegram/service/notify/NewMrForReviewNotifyGenerator.java @@ -1,6 +1,6 @@ package dev.struchkov.bot.gitlab.telegram.service.notify; -import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.NewPrNotify; +import dev.struchkov.bot.gitlab.context.domain.notify.mergerequest.NewMrForReview; import dev.struchkov.bot.gitlab.context.utils.Icons; import dev.struchkov.godfather.main.domain.BoxAnswer; import org.springframework.stereotype.Component; @@ -12,10 +12,10 @@ import static dev.struchkov.godfather.main.domain.BoxAnswer.boxAnswer; import static dev.struchkov.haiti.utils.Strings.escapeMarkdown; @Component -public class NewPrNotifyGenerator implements NotifyBoxAnswerGenerator { +public class NewMrForReviewNotifyGenerator implements NotifyBoxAnswerGenerator { @Override - public BoxAnswer generate(NewPrNotify notify) { + public BoxAnswer generate(NewMrForReview notify) { final String labelText = notify.getLabels().stream() .map(label -> "#" + label) .collect(Collectors.joining(" ")); @@ -39,7 +39,7 @@ public class NewPrNotifyGenerator implements NotifyBoxAnswerGenerator { +public class StatusPrNotifyGenerator implements NotifyBoxAnswerGenerator { @Override - public BoxAnswer generate(StatusPrNotify notify) { + public BoxAnswer generate(StatusMrNotify notify) { final StringBuilder builder = new StringBuilder(Icons.PEN).append(" *MergeRequest status changed | ").append(notify.getProjectName()).append("*") .append(Icons.HR) @@ -27,7 +27,7 @@ public class StatusPrNotifyGenerator implements NotifyBoxAnswerGenerator { +public class UpdatePrNotifyGenerator implements NotifyBoxAnswerGenerator { @Override - public BoxAnswer generate(UpdatePrNotify notify) { + public BoxAnswer generate(UpdateMrNotify notify) { final StringBuilder builder = new StringBuilder(Icons.UPDATE).append(" *MergeRequest update | ").append(escapeMarkdown(notify.getProjectName())).append("*") .append(Smile.HR.getValue()) @@ -38,7 +38,7 @@ public class UpdatePrNotifyGenerator implements NotifyBoxAnswerGenerator