Skip to content

Commit

Permalink
✨ 배포 시 유저 못찾으면 unknown 대신 @{username} 을 보여준다 (#67)
Browse files Browse the repository at this point in the history
  • Loading branch information
woohm402 authored Jun 22, 2024
1 parent d2631f8 commit 5a45720
Show file tree
Hide file tree
Showing 2 changed files with 21 additions and 14 deletions.
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
import { type DeployWebhookController } from '../controllers/DeployWebhookConrtoller';
import { type Member, members } from '../entities/Member';
import { type GithubDeploymentService } from '../services/GithubDeploymentService';

type ReleaseBody = {
Expand All @@ -25,7 +24,7 @@ export const implementGitHubDeployWebhookController = ({
const releaseBody = body as unknown as ReleaseBody;

return deploymentService.handleCreateRelease({
author: findMemberByGithubUsername(releaseBody.release.author.login),
authorGithubUsername: releaseBody.release.author.login,
tag: releaseBody.release.tag_name,
releaseUrl: releaseBody.release.html_url,
repository: releaseBody.repository.name,
Expand Down Expand Up @@ -54,8 +53,3 @@ export const implementGitHubDeployWebhookController = ({
},
};
};

const findMemberByGithubUsername = (username: string): Member | undefined => {
const found = members.find((member) => member === username);
return found;
};
27 changes: 20 additions & 7 deletions src/services/GithubDeploymentService.ts
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
import { type Member } from '../entities/Member';
import { type Member, members } from '../entities/Member';
import { type MessengerPresenter } from '../presenters/MessengerPresenter';

export type GithubDeploymentService = {
handleCreateRelease: (body: {
author: Member | undefined;
authorGithubUsername: string;
otherContributors: Member[];
releaseNote: string;
tag: string;
Expand All @@ -28,8 +28,6 @@ export type GithubDeploymentService = {

const identifierToSlackTs: Record<string, string> = {};

const unknown = '@unknown';

export const implementDeploymentService = ({
messengerPresenter,

Expand All @@ -39,13 +37,28 @@ export const implementDeploymentService = ({
summarizeLLMRepository: { summarizeReleaseNote: (content: string, options: { maxLen: number }) => Promise<string> };
}): GithubDeploymentService => {
return {
handleCreateRelease: async ({ releaseNote, author, otherContributors, tag, releaseUrl, repository }) => {
handleCreateRelease: async ({
releaseNote,
authorGithubUsername,
otherContributors,
tag,
releaseUrl,
repository,
}) => {
const summarized = await summarizeLLMRepository.summarizeReleaseNote(releaseNote, { maxLen: 100 });

const { ts } = await messengerPresenter.sendMessage(({ formatMemberMention, formatEmoji }) => {
const authorText = author ? formatMemberMention(author) : unknown;
const foundMember = members.find((m) => m === authorGithubUsername);
const authorText = foundMember ? formatMemberMention(foundMember) : `@${authorGithubUsername}`;
const contributorsText =
otherContributors.length === 0 ? '' : ` cc. ${otherContributors.map(formatMemberMention).join(', ')}`;
otherContributors.length === 0
? ''
: ` cc. ${otherContributors
.map((c) => {
const foundContributor = members.find((m) => m === c);
return foundContributor ? formatMemberMention(foundContributor) : `@${c}`;
})
.join(', ')}`;
return {
text: [`${formatEmoji('rocket')} *${repository}/${tag}* ${authorText}${contributorsText}`, summarized].join(
'\n\n',
Expand Down

0 comments on commit 5a45720

Please sign in to comment.