Skip to content

Commit

Permalink
๐Ÿš€ [Deploy] - ๋””์Šค์ฝ”๋“œ๋ด‡ CS ๋ฌธ์˜ ๊ธฐ๋Šฅ ๋ฐ˜์˜ (#264)
Browse files Browse the repository at this point in the history
* ๐Ÿ› [Fix] - Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ nickname ์ด์Šˆ ํ•ด๊ฒฐ (#205)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ (#207)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ nickname ์ด์Šˆ ํ•ด๊ฒฐ #51 (#209)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜ ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Fix: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ์ „ํ™˜
 ์ค‘ ์ƒ๊ธด ์ด์Šˆ ํ•ด๊ฒฐ

* Chore: ํ”„๋ก ํŠธ์—”๋“œ redirect url ์ˆ˜์ •

* Fix: ๋””์Šค์ฝ”๋“œ ์†Œ์…œ ๋กœ๊ทธ์ธ ์ด์Šˆ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - ์†Œ์…œ ๋กœ๊ทธ์ธ ํ›„, ์ถ”๊ฐ€ ์ •๋ณด ์ž…๋ ฅ ๋ฐ›๋Š” ๊ธฐ๋Šฅ ์˜ค๋ฅ˜ (#212)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: updateUserInfo ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* Fix: ๋””์Šค์ฝ”๋“œ ์ „ํ™˜์œผ๋กœ ์ธํ•œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - DiscordListener ์˜ค๋ฅ˜ ํ•ด๊ฒฐ (#214)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* Refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* Refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* Fix: ๋””์Šค์ฝ”๋“œ ์•„์ด๋”” ์ถ”๊ฐ€

* Fix: ๊ธฐ๋ณธ ํ”„๋กœํ•„ ์‚ฌ์ง„ ์ง€์ •

* Fix: serialId => discordId๋กœ ์ „ํ™˜

* Refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* ๐Ÿ› [Fix] - ๋ฐ›์€ ์งˆ๋ฌธ ํŒŒํŠธ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ (#218)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ํƒ€๊ฒŸ ๋ฉค๋ฒ„์™€ ์—ฐ๊ด€์ด ์—†์„ ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

* ๐Ÿ› [Fix] - ๋ฉค๋ฒ„ ์ •๋ณด API ์˜ˆ์™ธ์ฒ˜๋ฆฌ (#220)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ํƒ€๊ฒŸ ๋ฉค๋ฒ„์™€ ์—ฐ๊ด€์ด ์—†์„ ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

* ๐Ÿ› [Fix] - ํŒ€ ๋ฉค๋ฒ„ ๋ชฉ๋ก ์กฐํšŒ ์˜ˆ์™ธ์ฒ˜๋ฆฌ (#223)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋กœ๊ทธ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ํ•ด๋‹น ํŒ€์›์ด ์•„๋‹ ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

* ๐Ÿ› [Fix] - ๋ฐ›์€ ์งˆ๋ฌธ ๋ชฉ๋ก ํŒŒํŠธ ์ด์Šˆ (#226)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ์งˆ๋ฌธ์„ ๋‚˜์—๊ฒŒ ๋ณด๋‚ธ ์ƒ๋Œ€๋ฐฉ์˜ ํŒŒํŠธ๊ฐ€ ๋‹ค๋ฅด๊ฒŒ ๋œจ๋Š” ์ด์Šˆ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - ๋ฐ›์€ ์งˆ๋ฌธ ๋ชฉ๋ก ํŒŒํŠธ ์ด์Šˆ (#229)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: work ๊ธฐ์ค€์ด ์•„๋‹Œ, ๋‚ ์งœ์— work๊ฐ€ ์กด์žฌํ•˜๋Š”์ง€ ์—ฌ๋ถ€๋กœ API ์ˆ˜์ •

* ๐Ÿ’… [Refactor] - ๋””์Šค์ฝ”๋“œ ๋ด‡ ๋‹ต๋ณ€ ๋ฌธ๊ตฌ ์˜คํƒ€ ์ˆ˜์ • (#232)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Refactor: ์˜คํƒ€ ์ˆ˜์ •

* โœจ [Feature] - ํŒ€์› ๋žญํ‚น API ๊ธฐํš ์ˆ˜์ •์— ๋”ฐ๋ฅธ ๊ธฐ๋Šฅ ์ถ”๊ฐ€ (#234)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* Delete: ํ•„์š”์—†๋Š” ํŒŒ์ผ ์‚ญ์ œ

* Feat: ํŒ€ ์ž‘์—… ์ƒํƒœ API ๊ตฌํ˜„

* Feat: ํŒ€ ์ž‘์—… ์ƒํƒœ API ๊ตฌํ˜„

* Feat: ํŒ€ ์ž‘์—… ์ƒํƒœ API ๊ตฌํ˜„

* Feat: ํŒ€ ์ž‘์—… ์ƒํƒœ API ๊ตฌํ˜„

* Feat: ํŒ€์› ๋žญํ‚น API ๊ตฌํ˜„

* โœ๏ธ [Chore] - GPT API ํ† ํฐ ์ˆ˜์ • (#237)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: GPT ํ† ํฐ ์ˆ˜์ •

* Chore: GPT ํ† ํฐ ์ˆ˜์ •

* Chore: GPT ํ† ํฐ ์ˆ˜์ •

* Chore: merge

* โœ๏ธ [Chore] - GPT API ํ† ํฐ ์ˆ˜์ • (#239)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: GPT ํ† ํฐ ์ˆ˜์ •

* Chore: GPT ํ† ํฐ ์ˆ˜์ •

* Chore: yml ์ˆ˜์ •

* Chore: yml ์ˆ˜์ •

* Chore: yml ์ˆ˜์ •

* Chore: yml ์ˆ˜์ •

* โœจ [Feature] - ํŒ€ ์กฐํšŒ API์— memeberId ์ถ”๊ฐ€ (#244)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: ํŒ€ ๋ชฉ๋ก ์กฐํšŒ API์— memberId ์ถ”๊ฐ€

* ๐Ÿ› [Fix] - ๊ฐ์ข… API ์ด์Šˆ ํ•ด๊ฒฐ (#246)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋™๋ฃŒํ‰๊ฐ€ ์˜ˆ์™ธ์ฒ˜๋ฆฌ ์ˆ˜์ •

* Fix: memberId ์ถ”๊ฐ€

* Fix: ์Šคํฌ๋Ÿผ API ์˜ˆ์™ธ์ฒ˜๋ฆฌ ๋ฐ˜์˜

* Feat: ์—…๋ฌด ์ƒ์„ฑ API ๊ตฌํ˜„

* Feat: ํ”„๋กœ์ ํŠธ ๊ณต๊ฐœ ์—ฌ๋ถ€ ์ถ”๊ฐ€

* Feat: ํ”„๋กœ์ ํŠธ ๊ณต๊ฐœ ์—ฌ๋ถ€ ์ถ”๊ฐ€

* Fix: ์—…๋ฌด ์ „์ฒด ์‹œ๊ฐ„ ์ถ”๊ฐ€

* Fix: Member ํŒŒํŠธ ์ถ”๊ฐ€

* Feat: ํ”„๋กœ์ ํŠธ ๊ณต๊ฐœ ์—ฌ๋ถ€ ์ถ”๊ฐ€

* ๐Ÿšจ [!HOTFIX] - ๋นŒ๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ (#249)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋นŒ๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - ํŒ€ ํŒŒํŠธ ์ž…๋ ฅ ๋‹จ๊ณ„ ์ „ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ (#252)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋นŒ๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* Fix: ํŒŒํŠธ ์ž…๋ ฅํ•˜์ง€ ์•Š์•˜์„ ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

* Fix: ๊ณต๊ฐœ์ผ ๊ฒฝ์šฐ ์—…๋ฌด ํฌํ•จ ์•ˆ ๋˜๋Š” ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* ๐Ÿ› [Fix] - ํŒ€ ํŒŒํŠธ ์ž…๋ ฅ ๋‹จ๊ณ„ ์ „ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ (#254)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋นŒ๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* Fix: ํŒ€ ๋žญํ‚น ๋ฐ”์ดํŠธ ํ‰๊ท ์œผ๋กœ ์ˆ˜์ •

* โœจ [Feature] - teamId๋กœ memberId ์กฐํšŒ API (#257)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋นŒ๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* Feat: teamId๋กœ ๋กœ๊ทธ์ธ ํ•œ ์œ ์ €์˜ memberId๋ฅผ ์ฐพ๋Š” API ๊ตฌํ˜„

* ๐Ÿ› [Fix] - ํ”„๋ก ํŠธ๋‹จ์—์„œ ์š”์ฒญํ•œ API ์ˆ˜์ • (#260)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋นŒ๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* Fix: ํŒŒํŠธ๊ฐ€ ์•ˆ ์ •ํ•ด์กŒ์„ ๊ฒฝ์šฐ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

* Fix: ์œ ์ €์™€ ํƒ€๊ฒŸ ์—ฐ๊ด€์„ฑ ์ฒดํฌ ์˜ˆ์™ธ์ฒ˜๋ฆฌ

* โœจ [Feature] - ๋””์Šค์ฝ”๋“œ๋ด‡ CS ๊ธฐ๋Šฅ ๊ตฌํ˜„ (#263)

* refactor: ์ฝ”๋“œ ์Šคํƒ€์ผ ์ˆ˜์ •

* fix: Work ์ƒ์„ฑ ๋‚ ์งœ ๊ธฐ์ค€์œผ๋กœ ๋‚ด๋ฆผ์ฐจ์ˆœ ์„ค์ •

* fix: PeerReview์ผ ๊ฒฝ์šฐ ์ถ”๊ฐ€

* Chore: ํ”„๋กœ์ ํŠธ readme ๊พธ๋ฏธ๊ธฐ

* chore: README ์ˆ˜์ •

* Fix: ๋กœ๊ทธ์•„์›ƒ ์‹œ, ์ฟ ํ‚ค ์‚ญ์ œ ์ฝ”๋“œ ์ˆ˜์ •

* Refactor: ํ•„์š”์—†๋Š” ์ฝ”๋“œ ์‚ญ์ œ

* !HOTFIX: ๋ช…๋ น์–ด ์ด๋ฆ„ ์ˆ˜์ •์— ๋”ฐ๋ฅธ listener ์ฝ”๋“œ ์ˆ˜์ •

* Chore: DB ์ •๋ณด ์ˆ˜์ •

* Fix: JDA ๋กœ๊ทธ ์ •๋ณด ๊ธฐ๋ก ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Feat: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ ๊ตฌํ˜„

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Chore: Discord ์†Œ์…œ ๋กœ๊ทธ์ธ Credentials ์ถ”๊ฐ€

* Fix: ๋นŒ๋“œ ์˜ค๋ฅ˜ ํ•ด๊ฒฐ

* Feat: ๋””์Šค์ฝ”๋“œ๋ด‡ CS ๊ธฐ๋Šฅ ๊ตฌํ˜„

* Feat: ์ด๋ฉ”์ผ ์ „์†ก API ๊ตฌํ˜„
  • Loading branch information
JeongHeumChoi authored Aug 2, 2024
1 parent 00b60f4 commit 6e8ca0c
Show file tree
Hide file tree
Showing 7 changed files with 108 additions and 3 deletions.
3 changes: 3 additions & 0 deletions build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -51,6 +51,9 @@ dependencies {

// discord bot
implementation 'net.dv8tion:JDA:5.0.0-beta.5'

// email API
implementation('org.springframework.boot:spring-boot-starter-mail')
}

task copyGitSubmodule(type: Copy) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,8 @@ public static void main(String[] args) {
context.getBean(ScrumService.class),
context.getBean(WorkService.class),
context.getBean(GptService.class),
context.getBean(ReviewService.class)
context.getBean(ReviewService.class),
context.getBean(EmailService.class)
)
)
.build();
Expand Down Expand Up @@ -75,7 +76,10 @@ public static void main(String[] args) {
.addOption(OptionType.USER, "receiver", "๋™๋ฃŒํ‰๊ฐ€์˜ ํ”ผํ‰๊ฐ€์ž๋ฅผ ์„ ํƒํ•ด์ฃผ์„ธ์š”", true),
Commands.slash("์ „์ฒด์—…๋ฌด์ •๋ฆฌํ•˜๊ธฐ", "ํ”„๋กœ์ ํŠธ ์ „์ฒด ๊ธฐ๊ฐ„ ๋™์•ˆ ๋ณธ์ธ์˜ ์—…๋ฌด๋ฅผ ๊ฐ„๋žตํ•˜๊ฒŒ ์ ์–ด์ฃผ์„ธ์š”.")
.addOption(OptionType.STRING, "content", "ํ”„๋กœ์ ํŠธ์—์„œ์˜ ๋ณธ์ธ์˜ ์—ญํ• ์— ๋Œ€ํ•ด ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”", true),
Commands.slash("๋„์›€๋ง", "Startup Valley ํ”„๋กœ๋•ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๊ธฐ ์‹œ์ž‘ํ•œ ์—ฌ๋Ÿฌ๋ถ„๋“ค์„ ์œ„ํ•œ ์•ˆ๋‚ด์„œ์ž…๋‹ˆ๋‹ค. ๐Ÿ“–๐Ÿ€")
Commands.slash("๋„์›€๋ง", "Startup Valley ํ”„๋กœ๋•ํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๊ธฐ ์‹œ์ž‘ํ•œ ์—ฌ๋Ÿฌ๋ถ„๋“ค์„ ์œ„ํ•œ ์•ˆ๋‚ด์„œ์ž…๋‹ˆ๋‹ค. ๐Ÿ“–๐Ÿ€"),
Commands.slash("๋ฌธ์˜ํ•˜๊ธฐ", "ํ•ด๊ฒฐ์ด ์–ด๋ ค์šด ๋ฌธ์ œ๋‚˜, ์ƒˆ๋กœ์šด ๋ฌธ์˜๊ฐ€ ์žˆ๋‹ค๋ฉด ์‚ฌ์šฉํ•ด ์ฃผ์„ธ์š”!")
.addOption(OptionType.STRING, "email", "ํšŒ์‹  ๋ฐ›์œผ์‹ค ์ด๋ฉ”์ผ ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!", true)
.addOption(OptionType.STRING, "content", "๋ฌธ์˜ํ•˜์‹ค ๋‚ด์šฉ์„ ์ž‘์„ฑํ•ด์ฃผ์„ธ์š”!", true)
).queue();
}
}
Original file line number Diff line number Diff line change
@@ -0,0 +1,29 @@
package goormthon.team28.startup_valley.config;

import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.mail.javamail.JavaMailSenderImpl;

import java.util.Properties;

@Configuration
public class MailConfiguration {

@Bean
public JavaMailSender getJavaMailSender() {
JavaMailSenderImpl mailSender = new JavaMailSenderImpl();
mailSender.setHost("smtp.gmail.com");
mailSender.setPort(587);

mailSender.setUsername("[email protected]");
mailSender.setPassword("jmyv hjwq hmlw sfht");

Properties props = mailSender.getJavaMailProperties();
props.put("mail.transport.protocol", "smtp");
props.put("mail.smtp.auth", "true");
props.put("mail.smtp.starttls.enable", "true");

return mailSender;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,8 @@ public class Constants {
public static String PREFIX_AUTH = "Authorization";
public static String ACCESS_COOKIE_NAME = "access_token";
public static String REFRESH_COOKIE_NAME = "refresh_token";
public static String EMAIL_TARGET = "[email protected]";
public static String EMAIL_SUBJECT = "์Šคํƒ€ํŠธ์—… ๋ฐธ๋ฆฌ ๋ฌธ์˜ ํ•ญ๋ชฉ";
public static String DISCORD_CONNECT_COMPLETE = "ํŒ€ ๊ณผ ํŒ€ ๋ฉค๋ฒ„๋ฅผ ์—ฐ๊ฒฐํ–ˆ์–ด์š”! 'ํŒŒํŠธ์ž…๋ ฅํ•˜๊ธฐ' ๋ช…๋ น์–ด๋ฅผ ํ†ตํ•ด ์—ญํ• ์„ ์•Œ๋ ค์ฃผ์„ธ์š” !!";
public static String DISCORD_CONNECT_FAIL = "์›น์— ํšŒ์›๊ฐ€์ž…์ด ํ•„์š”ํ•ฉ๋‹ˆ๋‹ค!\n\n" + "ํšŒ์›๊ฐ€์ž… ํ•ด์ฃผ์„ธ์š” !! : ";
public static String DISCORD_INSERT_PART_COMPLETE = " ํŒŒํŠธ ์ž…๋ ฅ๊นŒ์ง€ ์™„๋ฃŒ ๋˜์—ˆ์Šต๋‹ˆ๋‹ค !, ์•ž์œผ๋กœ์˜ ๋ฉ‹์ง„ ํ˜‘์—…์„ ๊ธฐ๋Œ€ํ•ฉ๋‹ˆ๋‹ค ! ";
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -34,6 +34,7 @@ public class DiscordListener extends ListenerAdapter {
private final WorkService workService;
private final GptService gptService;
private final ReviewService reviewService;
private final EmailService emailService;

@Override
public void onSlashCommandInteraction(SlashCommandInteractionEvent event) {
Expand Down Expand Up @@ -397,6 +398,23 @@ public void onSlashCommandInteraction(SlashCommandInteractionEvent event) {
"๋ชจ๋“  ํŒ€์›์ด ๋™๋ฃŒํ‰๊ฐ€๋ฅผ ์™„๋ฃŒํ–ˆ๋‹ค๋ฉด, ๋ชจ๋“  ํŒ€์›์ด ์ž‘์„ฑํ•œ ๋ณธ์ธ์˜ AI๋กœ ์š”์•ฝ๋œ ๋™๋ฃŒ ํ‰๊ฐ€๋ฅผ ํ™•์ธํ•  ์ˆ˜ ์žˆ์–ด์š”."
).setEphemeral(true).queue();

break;
case "๋ฌธ์˜ํ•˜๊ธฐ":
goormthon.team28.startup_valley.domain.User currentUser = getUser(event, event.getUser().getName());
String userEmail = Objects.requireNonNull(event.getOption("email")).getAsString();
String content = Objects.requireNonNull(event.getOption("content")).getAsString();

event.deferReply().queue();
if (emailService.sendMail(currentUser, content, userEmail)) {
event.getHook().sendMessage(
"[์„œ๋น„์Šค๋ฅผ ์‚ฌ์šฉํ•˜์‹œ๋ฉด์„œ ๋ถˆํŽธํ•จ์ด ์žˆ์œผ์‹ ๊ฐ€์š”?]\n" +
"์—ฐ๋ฝ ๋‚จ๊ฒจ์ฃผ์‹  ๋ฉ”์ผ๊ณผ ์งˆ๋ฌธ ๋‚ด์šฉ์„ ํ™•์ธํ•ด์„œ, ํ•˜๋ฃจ ์ด๋‚ด๋กœ ๋‹ต๋ณ€์„ ๋“œ๋ฆด ์˜ˆ์ •์ด์—์š”!\n" +
"\n" +
"ํ˜น์—ฌ๋‚˜ ๋ถˆํŽธํ•œ ๊ฒƒ๊ณผ ํ•จ๊ป˜, ์Šคํƒ€ํŠธ์—… ๋ฐธ๋ฆฌ ํŒ€์ด ์—ฌ๋Ÿฌ๋ถ„๋“ค๊ป˜ ๋”์šฑ ์ข‹์€ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ด ๋“œ๋ฆฌ๊ธฐ ์œ„ํ•œ ๋ฌธ์˜๋„ ๋ฐ›๊ณ  ์žˆ์œผ๋‹ˆ ํŽธํžˆ ๋ฌธ์˜ ๋ถ€ํƒ๋“œ๋ ค์š”!! \uD83D\uDE4C"
).queue();
} else
event.getHook().sendMessage("์ด๋ฉ”์ผ ๋ฐœ์†ก์— ์‹คํŒจํ•˜์˜€์Šต๋‹ˆ๋‹ค.").setEphemeral(false).queue();

break;
}
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,7 +53,8 @@ public enum ErrorCode {
NOT_FOUND_WORK(40406, HttpStatus.NOT_FOUND, "์กด์žฌํ•˜์ง€ ์•Š๋Š” ์ž‘์—…์ž…๋‹ˆ๋‹ค."),

//500
INTERNAL_SERVER_ERROR(50000, HttpStatus.INTERNAL_SERVER_ERROR, "์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค")
INTERNAL_SERVER_ERROR(50000, HttpStatus.INTERNAL_SERVER_ERROR, "์„œ๋ฒ„ ๋‚ด๋ถ€ ์˜ค๋ฅ˜์ž…๋‹ˆ๋‹ค."),
MAIL_ERROR(50001, HttpStatus.INTERNAL_SERVER_ERROR, "๋ฉ”์ผ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ–ˆ์Šต๋‹ˆ๋‹ค."),

;
private final Integer code;
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,48 @@
package goormthon.team28.startup_valley.service;

import goormthon.team28.startup_valley.constants.Constants;
import goormthon.team28.startup_valley.domain.User;
import goormthon.team28.startup_valley.exception.CommonException;
import goormthon.team28.startup_valley.exception.ErrorCode;
import lombok.RequiredArgsConstructor;
import lombok.extern.slf4j.Slf4j;
import org.springframework.mail.MailException;
import org.springframework.mail.SimpleMailMessage;
import org.springframework.mail.javamail.JavaMailSender;
import org.springframework.stereotype.Service;

@Slf4j
@Service
@RequiredArgsConstructor
public class EmailService {

private final JavaMailSender javaMailSender;

// @Async
public boolean sendMail(User user, String targetEmail, String body) {

log.info("์ด๋ฉ”์ผ ์ „์†ก ์ง„์ž…");

// subject: ์Šคํƒ€ํŠธ์—… ๋ฐธ๋ฆฌ ๋ฌธ์˜ ํ•ญ๋ชฉ
SimpleMailMessage message = new SimpleMailMessage();

message.setTo(Constants.EMAIL_TARGET);
message.setSubject(Constants.EMAIL_SUBJECT);
message.setText(body + "\n\n" +
"๋ฌธ์˜ํ•œ ์‚ฌ์šฉ์ž ์ด๋ฉ”์ผ : " + targetEmail +
"\n๋ฌธ์˜ํ•œ ์‚ฌ์šฉ์ž ์ •๋ณด : " + user.toString()
);

try {
log.info("์ด๋ฉ”์ผ ์ „์†ก ์ค‘");
javaMailSender.send(message);
} catch (MailException e){
log.info("์ด๋ฉ”์ผ ํ„ฐ์ง");
throw new CommonException(ErrorCode.MAIL_ERROR);
}

log.info("์ด๋ฉ”์ผ ์ „์†ก ์™„๋ฃŒ");

return true;
}
}

0 comments on commit 6e8ca0c

Please sign in to comment.