From 1f22601009c50ef2519d191ac4fc008bece9ca14 Mon Sep 17 00:00:00 2001 From: coli Date: Fri, 29 Aug 2025 23:56:03 +0900 Subject: [PATCH 01/11] =?UTF-8?q?feat:=20=ED=94=84=EB=A0=88=EC=84=B8?= =?UTF-8?q?=EC=8B=B1=20=EC=83=81=ED=83=9C=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../question/QuestionControllerTest.java | 3 +- .../repository/RepositoryControllerTest.java | 9 +-- .../AnswerRankingServiceTest.java | 19 +++--- .../facade/PullRequestFacadeServiceTest.java | 3 +- .../facade/QuestionFacadeServiceTest.java | 19 ++++-- .../pullrequests/PullRequestServiceTest.java | 10 ++- .../service/question/QuestionServiceTest.java | 9 +-- .../repository/RepositoryServiceTest.java | 55 +++++++-------- .../request/PullRequestCreateCommand.java | 68 ++++++++----------- .../entity/github/pr/ProcessingStatus.java | 8 +++ .../domain/entity/github/pr/PullRequest.java | 1 + .../pr/PullRequestDomainRepository.java | 4 -- .../entity/github/pr/PullRequestEntity.java | 7 ++ .../pr/PullRequestDomainRepositoryImpl.java | 19 ------ .../generator/PullRequestGenerator.java | 10 ++- 15 files changed, 126 insertions(+), 118 deletions(-) create mode 100644 gss-domain/src/main/java/com/devoops/domain/entity/github/pr/ProcessingStatus.java diff --git a/gss-api-app/src/test/java/com/devoops/controller/question/QuestionControllerTest.java b/gss-api-app/src/test/java/com/devoops/controller/question/QuestionControllerTest.java index 901bcd7..2fdbb61 100644 --- a/gss-api-app/src/test/java/com/devoops/controller/question/QuestionControllerTest.java +++ b/gss-api-app/src/test/java/com/devoops/controller/question/QuestionControllerTest.java @@ -5,6 +5,7 @@ import com.devoops.BaseControllerTest; import com.devoops.domain.entity.github.answer.Answer; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.repo.GithubRepository; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.question.Question; @@ -32,7 +33,7 @@ class AnswerPut { void 다수_회고를_업데이트한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pr1, "질문1"); Question question2 = questionGenerator.generate(pr1, "질문2"); Answer answer1 = answerGenerator.generate(question1, "answer1"); diff --git a/gss-api-app/src/test/java/com/devoops/controller/repository/RepositoryControllerTest.java b/gss-api-app/src/test/java/com/devoops/controller/repository/RepositoryControllerTest.java index 768be5f..7ffb0a7 100644 --- a/gss-api-app/src/test/java/com/devoops/controller/repository/RepositoryControllerTest.java +++ b/gss-api-app/src/test/java/com/devoops/controller/repository/RepositoryControllerTest.java @@ -1,6 +1,7 @@ package com.devoops.controller.repository; import com.devoops.BaseControllerTest; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.repo.GithubRepository; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.pr.RecordStatus; @@ -27,9 +28,9 @@ class GetRepositoryPullRequests { AccessToken accessToken = tokenManager.createAccessToken(user.getId()); GithubRepository repo = repoGenerator.generate(user, "김건우의 레포지토리"); - PullRequest pr1 = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, repo, now.minusMinutes(5L)); - PullRequest pr2 = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, repo, now.minusMinutes(3L)); - PullRequest pr3 = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, repo, now.minusMinutes(1L)); + PullRequest pr1 = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, now.minusMinutes(5L)); + PullRequest pr2 = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, now.minusMinutes(3L)); + PullRequest pr3 = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, now.minusMinutes(1L)); RestAssured.given() .contentType(ContentType.JSON) @@ -49,7 +50,7 @@ class GetRepositoryPullRequests { AccessToken accessToken = tokenManager.createAccessToken(seonwoo.getId()); GithubRepository repo = repoGenerator.generate(beomgeun, "범근형의 레포지토리"); - PullRequest pr1 = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, repo, now.minusMinutes(5L)); + PullRequest pr1 = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, now.minusMinutes(5L)); RestAssured.given() .contentType(ContentType.JSON) diff --git a/gss-api-app/src/test/java/com/devoops/service/answerranking/AnswerRankingServiceTest.java b/gss-api-app/src/test/java/com/devoops/service/answerranking/AnswerRankingServiceTest.java index 7754695..4ce86bc 100644 --- a/gss-api-app/src/test/java/com/devoops/service/answerranking/AnswerRankingServiceTest.java +++ b/gss-api-app/src/test/java/com/devoops/service/answerranking/AnswerRankingServiceTest.java @@ -7,6 +7,7 @@ import com.devoops.domain.entity.github.answer.Answer; import com.devoops.domain.entity.github.answer.AnswerRanking; import com.devoops.domain.entity.github.answer.AnswerRankings; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.repo.GithubRepository; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.question.Question; @@ -35,8 +36,8 @@ class Push { void PR_랭킹을_저장한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, repo, - LocalDateTime.now()); + PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, ProcessingStatus.DONE, + repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pullRequest, "질문1"); Answer answer = answerGenerator.generate(question1, "answer1"); @@ -50,8 +51,8 @@ class Push { void 유저의_PR_랭킹을_모두_가져온다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, repo, LocalDateTime.now()); - PullRequest pr2 = pullRequestGenerator.generate("PR2", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); + PullRequest pr2 = pullRequestGenerator.generate("PR2", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pr1, "질문1"); Question question2 = questionGenerator.generate(pr2, "질문2"); Answer answer1 = answerGenerator.generate(question1, "answer1"); @@ -72,7 +73,7 @@ class Push { void 랭킹_PR에_존재하는_질문의_경우_랭킹내역을_업데이트한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pr1, "질문1"); Question question2 = questionGenerator.generate(pr1, "질문2"); Answer answer1 = answerGenerator.generate(question1, "answer1"); @@ -93,10 +94,10 @@ class Push { void 랭킹_PR이_꽉_찼을_경우_가장_오래된_pr을_삭제하고_새로운_pr을_갱신한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, repo, LocalDateTime.now()); - PullRequest pr2 = pullRequestGenerator.generate("PR2", RecordStatus.PENDING, repo, LocalDateTime.now()); - PullRequest pr3 = pullRequestGenerator.generate("PR3", RecordStatus.PENDING, repo, LocalDateTime.now()); - PullRequest pr4 = pullRequestGenerator.generate("PR4", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); + PullRequest pr2 = pullRequestGenerator.generate("PR2", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); + PullRequest pr3 = pullRequestGenerator.generate("PR3", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); + PullRequest pr4 = pullRequestGenerator.generate("PR4", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pr1, "질문1"); Question question2 = questionGenerator.generate(pr2, "질문2"); Question question3 = questionGenerator.generate(pr3, "질문3"); diff --git a/gss-api-app/src/test/java/com/devoops/service/facade/PullRequestFacadeServiceTest.java b/gss-api-app/src/test/java/com/devoops/service/facade/PullRequestFacadeServiceTest.java index 376bcff..e6c7d0d 100644 --- a/gss-api-app/src/test/java/com/devoops/service/facade/PullRequestFacadeServiceTest.java +++ b/gss-api-app/src/test/java/com/devoops/service/facade/PullRequestFacadeServiceTest.java @@ -5,6 +5,7 @@ import com.devoops.BaseServiceTest; import com.devoops.domain.entity.github.answer.Answer; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.repo.GithubRepository; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.question.Question; @@ -28,7 +29,7 @@ class Read { void 풀_리퀘스트_정보를_읽는다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pullRequest, "질문1"); Question question2 = questionGenerator.generate(pullRequest, "질문2"); Answer answer1 = answerGenerator.generate(question1, "answerContent"); diff --git a/gss-api-app/src/test/java/com/devoops/service/facade/QuestionFacadeServiceTest.java b/gss-api-app/src/test/java/com/devoops/service/facade/QuestionFacadeServiceTest.java index de0b5e7..4f41c1f 100644 --- a/gss-api-app/src/test/java/com/devoops/service/facade/QuestionFacadeServiceTest.java +++ b/gss-api-app/src/test/java/com/devoops/service/facade/QuestionFacadeServiceTest.java @@ -5,6 +5,7 @@ import com.devoops.BaseServiceTest; import com.devoops.domain.entity.github.answer.Answer; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.repo.GithubRepository; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.question.Question; @@ -34,8 +35,12 @@ class StatusChange { void 최소_하나의_회고가_생성되면_PR상태가_progress로_변경된다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, repo, - LocalDateTime.now()); + PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", + RecordStatus.PENDING, + ProcessingStatus.DONE, + repo, + LocalDateTime.now() + ); Question question1 = questionGenerator.generate(pullRequest, "질문1"); questionFacadeService.initializeAnswer(question1.getId(), user); @@ -48,7 +53,9 @@ class StatusChange { void 회고를_삭제할_때_PR의_회고가_남아있다면_PR은_PROGRESS를_유지한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PROGRESS, repo, + PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PROGRESS, + ProcessingStatus.DONE, + repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pullRequest, "질문1"); Question question2 = questionGenerator.generate(pullRequest, "질문2"); @@ -65,7 +72,9 @@ class StatusChange { void 마지막_회고를_삭제하면_PR은_PENDING으로_변경된다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PROGRESS, repo, + PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PROGRESS, + ProcessingStatus.DONE, + repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pullRequest, "질문1"); Answer answer1 = answerGenerator.generate(question1, "대답1"); @@ -84,7 +93,7 @@ class UpdateAllAnswers { void 다수_회고를_업데이트한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pr1 = pullRequestGenerator.generate("PR1", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pr1, "질문1"); Question question2 = questionGenerator.generate(pr1, "질문2"); Answer answer1 = answerGenerator.generate(question1, "answer1"); diff --git a/gss-api-app/src/test/java/com/devoops/service/pullrequests/PullRequestServiceTest.java b/gss-api-app/src/test/java/com/devoops/service/pullrequests/PullRequestServiceTest.java index 9222b31..5d311f7 100644 --- a/gss-api-app/src/test/java/com/devoops/service/pullrequests/PullRequestServiceTest.java +++ b/gss-api-app/src/test/java/com/devoops/service/pullrequests/PullRequestServiceTest.java @@ -3,6 +3,7 @@ import static org.assertj.core.api.Assertions.assertThat; import com.devoops.BaseServiceTest; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.repo.GithubRepository; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.pr.RecordStatus; @@ -25,8 +26,13 @@ class UpdateToDone { void 풀_리퀘스트_회고_상태를_완료로_변경한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, repo, - LocalDateTime.now()); + PullRequest pullRequest = pullRequestGenerator.generate( + "최초 PR", + RecordStatus.PENDING, + ProcessingStatus.DONE, + repo, + LocalDateTime.now() + ); PullRequest updatedPullRequest = pullRequestService.updateStatus(pullRequest.getId(), RecordStatus.DONE); diff --git a/gss-api-app/src/test/java/com/devoops/service/question/QuestionServiceTest.java b/gss-api-app/src/test/java/com/devoops/service/question/QuestionServiceTest.java index 411bf4e..b015158 100644 --- a/gss-api-app/src/test/java/com/devoops/service/question/QuestionServiceTest.java +++ b/gss-api-app/src/test/java/com/devoops/service/question/QuestionServiceTest.java @@ -6,6 +6,7 @@ import com.devoops.BaseServiceTest; import com.devoops.command.request.AnswerUpdateCommand; import com.devoops.domain.entity.github.answer.Answer; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.repo.GithubRepository; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.question.Question; @@ -34,7 +35,7 @@ class AnswerCRUD { void 질문에_대한_최초_응답을_저장한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question = questionGenerator.generate(pullRequest, "질문 : 이거 왜 이렇게 했어요?"); Answer answer = questionService.initializeAnswer(question.getId(), user); @@ -49,7 +50,7 @@ class AnswerCRUD { void 질문에_대한_응답을_업데이트한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question = questionGenerator.generate(pullRequest, "질문 : 이거 왜 이렇게 했어요?"); Answer answer = answerGenerator.generate(question, "before"); @@ -65,7 +66,7 @@ class AnswerCRUD { void 질문에_대한_다수_응답을_업데이트한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pullRequest, "질문1"); Question question2 = questionGenerator.generate(pullRequest, "질문1"); Question question3 = questionGenerator.generate(pullRequest, "질문1"); @@ -96,7 +97,7 @@ class PRQuestions { void 풀리퀘스트의_질문과_대답을_모두_조회한다() { User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "건우의 레포"); - PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, repo, LocalDateTime.now()); + PullRequest pullRequest = pullRequestGenerator.generate("최초 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, LocalDateTime.now()); Question question1 = questionGenerator.generate(pullRequest, "질문1"); questionGenerator.generate(pullRequest, "질문1"); Answer answer1 = answerGenerator.generate(question1, "answerContent"); diff --git a/gss-api-app/src/test/java/com/devoops/service/repository/RepositoryServiceTest.java b/gss-api-app/src/test/java/com/devoops/service/repository/RepositoryServiceTest.java index 02c756e..cb753e1 100644 --- a/gss-api-app/src/test/java/com/devoops/service/repository/RepositoryServiceTest.java +++ b/gss-api-app/src/test/java/com/devoops/service/repository/RepositoryServiceTest.java @@ -6,6 +6,7 @@ import com.devoops.BaseServiceTest; import com.devoops.command.request.RepositoryCreateCommand; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.pr.RecordStatus; import com.devoops.domain.entity.github.repo.GithubRepository; @@ -58,12 +59,12 @@ class getRepositoryPullRequestsByRepository { LocalDateTime now = LocalDateTime.now(); User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "김건우의 레포지토리"); - PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, repo, - now.minusMinutes(5L)); - PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, repo, - now.minusMinutes(3L)); - PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, repo, - now.minusMinutes(1L)); + PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(5L)); + PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(3L)); + PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(1L)); List pullRequestsId = repositoryService.getPullRequestsByRepository(user, repo.getId(), 6, 0) .getValues() @@ -80,12 +81,12 @@ class getRepositoryPullRequestsByRepository { LocalDateTime now = LocalDateTime.now(); User user = userGenerator.generate("김건우"); GithubRepository repo = repoGenerator.generate(user, "김건우의 레포지토리"); - PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, repo, - now.minusMinutes(5L)); - PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, repo, - now.minusMinutes(3L)); - PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, repo, - now.minusMinutes(1L)); + PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(5L)); + PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(3L)); + PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(1L)); List pageOneIds = repositoryService.getPullRequestsByRepository(user, repo.getId(), 2, 0) .getValues() @@ -111,7 +112,7 @@ class getRepositoryPullRequestsByRepository { User user = userGenerator.generate("김건우"); User seonwoo = userGenerator.generate("선우 누나"); GithubRepository repo = repoGenerator.generate(user, "김건우의 레포지토리"); - pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, repo, now); + pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, now); assertThatThrownBy(() -> repositoryService.getPullRequestsByRepository(seonwoo, repo.getId(), 6, 0)) .isInstanceOf(GssException.class) @@ -128,13 +129,13 @@ class getRepositoryPullRequests { User user = userGenerator.generate("김건우"); GithubRepository repo1 = repoGenerator.generate(user, "김건우의 레포지토리1"); GithubRepository repo2 = repoGenerator.generate(user, "김건우의 레포지토리2"); - PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, repo1, - now.minusMinutes(5L)); - PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, repo1, - now.minusMinutes(3L)); - PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, repo2, - now.minusMinutes(1L)); - PullRequest nowPr = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, repo2, now); + PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo1, now.minusMinutes(5L)); + PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo1, now.minusMinutes(3L)); + PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo2, now.minusMinutes(1L)); + PullRequest nowPr = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo2, now); List pullRequestsId = repositoryService.getPullRequests(user, 4, 0) .getValues() @@ -153,13 +154,13 @@ class getRepositoryPullRequests { User user = userGenerator.generate("김건우"); GithubRepository repo1 = repoGenerator.generate(user, "김건우의 레포지토리1"); GithubRepository repo2 = repoGenerator.generate(user, "김건우의 레포지토리2"); - PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, repo1, - now.minusMinutes(5L)); - PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, repo1, - now.minusMinutes(3L)); - PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, repo2, - now.minusMinutes(1L)); - PullRequest nowPr = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, repo2, now); + PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo1, now.minusMinutes(5L)); + PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo1, now.minusMinutes(3L)); + PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo2, now.minusMinutes(1L)); + PullRequest nowPr = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo2, now); List pageOneIds = repositoryService.getPullRequests(user, 2, 0) .getValues() diff --git a/gss-domain/src/main/java/com/devoops/command/request/PullRequestCreateCommand.java b/gss-domain/src/main/java/com/devoops/command/request/PullRequestCreateCommand.java index 50af3f4..b7b66d5 100644 --- a/gss-domain/src/main/java/com/devoops/command/request/PullRequestCreateCommand.java +++ b/gss-domain/src/main/java/com/devoops/command/request/PullRequestCreateCommand.java @@ -1,22 +1,22 @@ package com.devoops.command.request; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.pr.RecordStatus; - import java.time.LocalDateTime; public record PullRequestCreateCommand( - long repositoryId, - long userId, - String title, - String description, - String summary, - String summaryDetail, - String pullRequestUrl, - long externalId, - RecordStatus recordStatus, - LocalDateTime mergedAt, - String tag + long repositoryId, + long userId, + String title, + String description, + String summary, + String summaryDetail, + String pullRequestUrl, + long externalId, + RecordStatus recordStatus, + LocalDateTime mergedAt, + String tag ) { public PullRequestCreateCommand( @@ -29,39 +29,25 @@ public PullRequestCreateCommand( String tag, LocalDateTime mergedAt ) { - this(repositoryId, userId, title, description, "", "", pullRequestUrl, externalId, RecordStatus.PENDING, mergedAt, tag); - } - - - public PullRequestCreateCommand( - long repositoryId, - long userId, - String title, - String description, - String summary, - String summaryDetail, - String pullRequestUrl, - long externalId, - String tag, - LocalDateTime mergedAt - ) { - this(repositoryId, userId, title, description, summary, summaryDetail, pullRequestUrl, externalId, RecordStatus.PENDING, mergedAt, tag); + this(repositoryId, userId, title, description, "", "", pullRequestUrl, externalId, RecordStatus.PENDING, + mergedAt, tag); } public PullRequest toDomainEntity() { return new PullRequest( - null, - repositoryId, - userId, - title, - description, - summary, - summaryDetail, - pullRequestUrl, - externalId, - RecordStatus.PENDING, - mergedAt, - tag + null, + repositoryId, + userId, + title, + description, + summary, + summaryDetail, + pullRequestUrl, + externalId, + RecordStatus.PENDING, + ProcessingStatus.PROCESSING, + mergedAt, + tag ); } } diff --git a/gss-domain/src/main/java/com/devoops/domain/entity/github/pr/ProcessingStatus.java b/gss-domain/src/main/java/com/devoops/domain/entity/github/pr/ProcessingStatus.java new file mode 100644 index 0000000..7e690e8 --- /dev/null +++ b/gss-domain/src/main/java/com/devoops/domain/entity/github/pr/ProcessingStatus.java @@ -0,0 +1,8 @@ +package com.devoops.domain.entity.github.pr; + +public enum ProcessingStatus { + + PROCESSING, + DONE, + ; +} diff --git a/gss-domain/src/main/java/com/devoops/domain/entity/github/pr/PullRequest.java b/gss-domain/src/main/java/com/devoops/domain/entity/github/pr/PullRequest.java index 008eda0..1a3c45c 100644 --- a/gss-domain/src/main/java/com/devoops/domain/entity/github/pr/PullRequest.java +++ b/gss-domain/src/main/java/com/devoops/domain/entity/github/pr/PullRequest.java @@ -19,6 +19,7 @@ public class PullRequest { private final String pullRequestUrl; private final long externalId; private final RecordStatus recordStatus; + private final ProcessingStatus processingStatus; private final LocalDateTime mergedAt; private final String tag; diff --git a/gss-domain/src/main/java/com/devoops/domain/repository/github/pr/PullRequestDomainRepository.java b/gss-domain/src/main/java/com/devoops/domain/repository/github/pr/PullRequestDomainRepository.java index 74cd357..cd10ddf 100644 --- a/gss-domain/src/main/java/com/devoops/domain/repository/github/pr/PullRequestDomainRepository.java +++ b/gss-domain/src/main/java/com/devoops/domain/repository/github/pr/PullRequestDomainRepository.java @@ -18,9 +18,5 @@ public interface PullRequestDomainRepository { PullRequest findByQuestionId(long questionId); - PullRequests findByRepositoryId(long repositoryId); - PullRequest updateStatus(long pullRequestId, RecordStatus status); - - void deleteAll(PullRequests pullRequests); } diff --git a/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java b/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java index 81b48f2..ab71d2b 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java +++ b/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java @@ -1,5 +1,6 @@ package com.devoops.jpa.entity.github.pr; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.pr.RecordStatus; import com.devoops.jpa.entity.BaseTimeEntity; @@ -56,6 +57,10 @@ public class PullRequestEntity extends BaseTimeEntity { @Enumerated(EnumType.STRING) private RecordStatus recordStatus; + @NotNull + @Enumerated(EnumType.STRING) + private ProcessingStatus processingStatus; + @NotNull private LocalDateTime mergedAt; @@ -72,6 +77,7 @@ public static PullRequestEntity from(PullRequest pullRequest) { pullRequest.getExternalId(), pullRequest.getPullRequestUrl(), pullRequest.getRecordStatus(), + pullRequest.getProcessingStatus(), pullRequest.getMergedAt() ); } @@ -97,6 +103,7 @@ public PullRequest toDomainEntity() { this.pullRequestUrl, this.githubPullRequestId, this.recordStatus, + this.processingStatus, this.mergedAt, this.tag ); diff --git a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java index 6b99059..46f511e 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java +++ b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java @@ -94,23 +94,4 @@ public PullRequest findByQuestionId(long questionId) { .orElseThrow(() -> new GssException(ErrorCode.PULL_REQUEST_NOT_FOUND)) .toDomainEntity(); } - - @Override - @Transactional(readOnly = true) - public PullRequests findByRepositoryId(long repositoryId) { - return pullRequestRepository.findAllByRepositoryId(repositoryId) - .stream() - .map(PullRequestEntity::toDomainEntity) - .collect(Collectors.collectingAndThen(Collectors.toList(), PullRequests::new)); - } - - @Override - @Transactional - public void deleteAll(PullRequests pullRequests) { - List pullRequestEntities = pullRequests.getValues() - .stream() - .map(PullRequestEntity::from) - .toList(); - pullRequestRepository.deleteAll(pullRequestEntities); - } } diff --git a/gss-domain/src/testFixtures/java/com/devoops/generator/PullRequestGenerator.java b/gss-domain/src/testFixtures/java/com/devoops/generator/PullRequestGenerator.java index 718f005..b2e1da1 100644 --- a/gss-domain/src/testFixtures/java/com/devoops/generator/PullRequestGenerator.java +++ b/gss-domain/src/testFixtures/java/com/devoops/generator/PullRequestGenerator.java @@ -1,5 +1,6 @@ package com.devoops.generator; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.repo.GithubRepository; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.pr.RecordStatus; @@ -15,7 +16,13 @@ public class PullRequestGenerator { @Autowired private PullRequestDomainRepository pullRequestDomainRepository; - public PullRequest generate(String title, RecordStatus status, GithubRepository githubRepository, LocalDateTime mergedAt) { + public PullRequest generate( + String title, + RecordStatus status, + ProcessingStatus processingStatus, + GithubRepository githubRepository, + LocalDateTime mergedAt + ) { PullRequest pullRequest = new PullRequest( null, githubRepository.getId(), @@ -27,6 +34,7 @@ public PullRequest generate(String title, RecordStatus status, GithubRepository "https://github.com/owner/repo/pull/2", 1L, status, + processingStatus, mergedAt, "tag" ); From 8749dd6930c9888c3f274bb62f7359ffc164be64 Mon Sep 17 00:00:00 2001 From: coli Date: Fri, 29 Aug 2025 23:57:20 +0900 Subject: [PATCH 02/11] =?UTF-8?q?feat:=20=ED=94=84=EB=A1=9C=EC=84=B8?= =?UTF-8?q?=EC=8B=B1=20update=20=EB=A1=9C=EC=A7=81=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java | 1 + 1 file changed, 1 insertion(+) diff --git a/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java b/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java index ab71d2b..5208a74 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java +++ b/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java @@ -87,6 +87,7 @@ public void updateStatus(RecordStatus recordStatus) { } public void updateAnalyzeResult(String summary, String summaryDetail) { + this.processingStatus = ProcessingStatus.DONE; this.summary = summary; this.summaryDetail = summaryDetail; } From b0e44ba8a314ce85cd29110b3f990776a8979f05 Mon Sep 17 00:00:00 2001 From: coli Date: Sat, 30 Aug 2025 00:01:10 +0900 Subject: [PATCH 03/11] =?UTF-8?q?feat:=20prCount=EB=A5=BC=20update?= =?UTF-8?q?=EA=B0=80=20=EC=B3=90=EC=A1=8C=EC=9D=84=20=EB=95=8C=20=EC=A6=9D?= =?UTF-8?q?=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../github/pr/PullRequestDomainRepositoryImpl.java | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java index 46f511e..f1b5c86 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java +++ b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java @@ -31,9 +31,6 @@ public class PullRequestDomainRepositoryImpl implements PullRequestDomainReposit @Override @Transactional public PullRequest save(PullRequest pullRequest) { - GithubRepositoryEntity githubRepositoryEntity = githubRepoRepository.findById(pullRequest.getRepositoryId()) - .orElseThrow(() -> new GssException(ErrorCode.GITHUB_REPOSITORY_NOT_FOUND)); - githubRepositoryEntity.plusPrCount(); PullRequestEntity pullRequestEntity = PullRequestEntity.from(pullRequest); PullRequestEntity savedPullRequest = pullRequestRepository.save(pullRequestEntity); return savedPullRequest.toDomainEntity(); @@ -82,6 +79,9 @@ public PullRequest updateAnalyzedResult(long pullRequestId, String summary, Stri PullRequestEntity pullRequest = pullRequestRepository.findById(pullRequestId) .orElseThrow(() -> new GssException(ErrorCode.PULL_REQUEST_NOT_FOUND)); pullRequest.updateAnalyzeResult(summary, detailSummary); + GithubRepositoryEntity githubRepositoryEntity = githubRepoRepository.findById(pullRequest.getRepositoryId()) + .orElseThrow(() -> new GssException(ErrorCode.GITHUB_REPOSITORY_NOT_FOUND)); + githubRepositoryEntity.plusPrCount(); return pullRequest.toDomainEntity(); } From 3b3157e233e69b5351101c427e76357b28f393e8 Mon Sep 17 00:00:00 2001 From: coli Date: Sat, 30 Aug 2025 00:03:56 +0900 Subject: [PATCH 04/11] =?UTF-8?q?feat:=20=EB=8B=A8=EC=9D=BC=20PR=20?= =?UTF-8?q?=EC=A1=B0=ED=9A=8C=20=EC=8B=9C=20=EC=A7=88=EB=AC=B8=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=20=EC=83=81=ED=83=9C=20=EA=B0=99=EC=9D=B4=20=EB=B0=98?= =?UTF-8?q?=ED=99=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/devoops/dto/response/PullRequestReadResponse.java | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/gss-api-app/src/main/java/com/devoops/dto/response/PullRequestReadResponse.java b/gss-api-app/src/main/java/com/devoops/dto/response/PullRequestReadResponse.java index df3ce65..ccbb3bf 100644 --- a/gss-api-app/src/main/java/com/devoops/dto/response/PullRequestReadResponse.java +++ b/gss-api-app/src/main/java/com/devoops/dto/response/PullRequestReadResponse.java @@ -1,5 +1,6 @@ package com.devoops.dto.response; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.QuestionAnswer; import com.devoops.domain.entity.github.pr.RecordStatus; @@ -22,6 +23,10 @@ public record PullRequestReadResponse( @Schema(description = "회고 라밸", example = "feat") String tag, + @NotNull + @Schema(description = "질문 생성 상태", example = "PROCESSING") + ProcessingStatus processingStatus, + @NotNull @Schema(description = "기록 상태", example = "PROGRESS") RecordStatus recordStatus, @@ -56,6 +61,7 @@ public static PullRequestReadResponse from( pullRequest.getId(), pullRequest.getTitle(), pullRequest.getTag(), + pullRequest.getProcessingStatus(), pullRequest.getRecordStatus(), pullRequest.getPullRequestUrl(), pullRequest.getMergedAt(), From 65797e6568871272ce9c8650e0ef4763df82b67b Mon Sep 17 00:00:00 2001 From: coli Date: Sat, 30 Aug 2025 00:10:35 +0900 Subject: [PATCH 05/11] =?UTF-8?q?feat:=20=EC=A7=88=EB=AC=B8=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=EC=9D=B4=20=EC=99=84=EB=A3=8C=EB=90=9C=20PR=EB=A7=8C?= =?UTF-8?q?=20=EC=B0=BE=EC=95=84=EC=98=A4=EB=8F=84=EB=A1=9D=20=EB=A1=9C?= =?UTF-8?q?=EC=A7=81=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../github/pr/PullRequestDomainRepository.java | 4 ++-- .../github/pr/PullRequestDomainRepositoryImpl.java | 12 ++++++------ .../github/pr/PullRequestJpaRepository.java | 7 +++---- .../service/repository/RepositoryService.java | 4 ++-- .../service/webhook/WebhookFacadeServiceTest.java | 2 +- 5 files changed, 14 insertions(+), 15 deletions(-) diff --git a/gss-domain/src/main/java/com/devoops/domain/repository/github/pr/PullRequestDomainRepository.java b/gss-domain/src/main/java/com/devoops/domain/repository/github/pr/PullRequestDomainRepository.java index cd10ddf..3561cfb 100644 --- a/gss-domain/src/main/java/com/devoops/domain/repository/github/pr/PullRequestDomainRepository.java +++ b/gss-domain/src/main/java/com/devoops/domain/repository/github/pr/PullRequestDomainRepository.java @@ -10,11 +10,11 @@ public interface PullRequestDomainRepository { PullRequest findById(long pullRequestId); - PullRequests findPullRequestsByRepositoryIdOrderByMergedAt(long repositoryId, int size, int page); + PullRequests findProcessedPullRequestsByRepositoryIdOrderByMergedAt(long repositoryId, int size, int page); PullRequest updateAnalyzedResult(long pullRequestId, String summary, String detailSummary); - PullRequests findUserPullRequestsOrderByMergedAt(long userId, int size, int page); + PullRequests findProcessedUserPullRequestsOrderByMergedAt(long userId, int size, int page); PullRequest findByQuestionId(long questionId); diff --git a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java index f1b5c86..909debe 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java +++ b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java @@ -1,17 +1,17 @@ package com.devoops.jpa.repository.github.pr; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.domain.entity.github.pr.PullRequest; import com.devoops.domain.entity.github.pr.PullRequests; import com.devoops.domain.entity.github.pr.RecordStatus; import com.devoops.domain.repository.github.pr.PullRequestDomainRepository; import com.devoops.exception.custom.GssException; import com.devoops.exception.errorcode.ErrorCode; -import com.devoops.jpa.entity.github.repo.GithubRepositoryEntity; import com.devoops.jpa.entity.github.pr.PullRequestEntity; import com.devoops.jpa.entity.github.question.QuestionEntity; +import com.devoops.jpa.entity.github.repo.GithubRepositoryEntity; import com.devoops.jpa.repository.github.question.QuestionJpaRepository; import com.devoops.jpa.repository.github.repo.GithubRepoJpaRepository; -import java.util.List; import java.util.stream.Collectors; import lombok.RequiredArgsConstructor; import org.springframework.data.domain.PageRequest; @@ -46,9 +46,9 @@ public PullRequest findById(long pullRequestId) { @Override @Transactional(readOnly = true) - public PullRequests findPullRequestsByRepositoryIdOrderByMergedAt(long repositoryId, int size, int page) { + public PullRequests findProcessedPullRequestsByRepositoryIdOrderByMergedAt(long repositoryId, int size, int page) { Pageable pageable = PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, "mergedAt")); - return pullRequestRepository.findByRepositoryId(repositoryId, pageable) + return pullRequestRepository.findByRepositoryIdAndProcessingStatus(repositoryId, ProcessingStatus.DONE, pageable) .get() .map(PullRequestEntity::toDomainEntity) .collect(Collectors.collectingAndThen(Collectors.toList(), PullRequests::new)); @@ -56,9 +56,9 @@ public PullRequests findPullRequestsByRepositoryIdOrderByMergedAt(long repositor @Override @Transactional(readOnly = true) - public PullRequests findUserPullRequestsOrderByMergedAt(long userId, int size, int page) { + public PullRequests findProcessedUserPullRequestsOrderByMergedAt(long userId, int size, int page) { Pageable pageable = PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, "mergedAt")); - return pullRequestRepository.findByUserId(userId, pageable) + return pullRequestRepository.findByUserIdAndProcessingStatus(userId, ProcessingStatus.DONE, pageable) .get() .map(PullRequestEntity::toDomainEntity) .collect(Collectors.collectingAndThen(Collectors.toList(), PullRequests::new)); diff --git a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestJpaRepository.java b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestJpaRepository.java index 911df77..54a2568 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestJpaRepository.java +++ b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestJpaRepository.java @@ -1,5 +1,6 @@ package com.devoops.jpa.repository.github.pr; +import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.jpa.entity.github.pr.PullRequestEntity; import java.util.List; import java.util.Optional; @@ -9,11 +10,9 @@ public interface PullRequestJpaRepository extends JpaRepository { - Page findByRepositoryId(long repositoryId, Pageable pageable); + Page findByRepositoryIdAndProcessingStatus(long repositoryId, ProcessingStatus processingStatus, Pageable pageable); - Page findByUserId(long userId, Pageable pageable); + Page findByUserIdAndProcessingStatus(long userId, ProcessingStatus status, Pageable pageable); Optional findById(long id); - - List findAllByRepositoryId(long repositoryId); } diff --git a/gss-domain/src/main/java/com/devoops/service/repository/RepositoryService.java b/gss-domain/src/main/java/com/devoops/service/repository/RepositoryService.java index e1bc902..5dcda54 100644 --- a/gss-domain/src/main/java/com/devoops/service/repository/RepositoryService.java +++ b/gss-domain/src/main/java/com/devoops/service/repository/RepositoryService.java @@ -38,12 +38,12 @@ public GithubRepository reTracking(User user, long repositoryId) { } public PullRequests getPullRequests(User user, int size, int page) { - return pullRequestRepository.findUserPullRequestsOrderByMergedAt(user.getId(), size, page); + return pullRequestRepository.findProcessedUserPullRequestsOrderByMergedAt(user.getId(), size, page); } public PullRequests getPullRequestsByRepository(User user, long repositoryId, int size, int page) { validateOwn(user, repositoryId); - return pullRequestRepository.findPullRequestsByRepositoryIdOrderByMergedAt(repositoryId, size, page); + return pullRequestRepository.findProcessedPullRequestsByRepositoryIdOrderByMergedAt(repositoryId, size, page); } private void validateOwn(User user, long repositoryId) { diff --git a/gss-mcp-app/src/test/java/com/devoops/service/webhook/WebhookFacadeServiceTest.java b/gss-mcp-app/src/test/java/com/devoops/service/webhook/WebhookFacadeServiceTest.java index d757535..492747e 100644 --- a/gss-mcp-app/src/test/java/com/devoops/service/webhook/WebhookFacadeServiceTest.java +++ b/gss-mcp-app/src/test/java/com/devoops/service/webhook/WebhookFacadeServiceTest.java @@ -52,7 +52,7 @@ class WebHookEventTest { webhookFacadeService.createQuestionWithWebhookEvent(appRequest); Thread.sleep(1000L); //CountDownLatch로 수정 - PullRequests pullRequests = pullRequestDomainRepository.findUserPullRequestsOrderByMergedAt(user.getId(), 2, + PullRequests pullRequests = pullRequestDomainRepository.findProcessedUserPullRequestsOrderByMergedAt(user.getId(), 2, 0); long savedPrId = pullRequests.getValues().get(0).getId(); List questions = questionDomainRepository.findAllPrQuestions(savedPrId); From aabc4b3f5fba8129685910f531bef9c93c79665e Mon Sep 17 00:00:00 2001 From: coli Date: Sat, 30 Aug 2025 00:17:21 +0900 Subject: [PATCH 06/11] =?UTF-8?q?test:=20=EC=A7=88=EB=AC=B8=20=EC=83=9D?= =?UTF-8?q?=EC=84=B1=EC=9D=B4=20=EC=99=84=EB=A3=8C=EB=90=9C=20PR=EB=A7=8C?= =?UTF-8?q?=20=EC=B0=BE=EC=95=84=EC=98=A4=EB=8A=94=20=ED=85=8C=EC=8A=A4?= =?UTF-8?q?=ED=8A=B8=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../facade/RepositoryFacadeService.java | 4 +- .../repository/RepositoryServiceTest.java | 125 +++++++++++++++++- .../service/repository/RepositoryService.java | 4 +- 3 files changed, 122 insertions(+), 11 deletions(-) diff --git a/gss-api-app/src/main/java/com/devoops/service/facade/RepositoryFacadeService.java b/gss-api-app/src/main/java/com/devoops/service/facade/RepositoryFacadeService.java index 7dca584..98ae987 100644 --- a/gss-api-app/src/main/java/com/devoops/service/facade/RepositoryFacadeService.java +++ b/gss-api-app/src/main/java/com/devoops/service/facade/RepositoryFacadeService.java @@ -73,11 +73,11 @@ private GithubRepository reTrackingOrThrowException(User user, GithubRepository } public PullRequests findAllPullRequestsByRepository(User user, long repositoryId, int size, int page) { - return repositoryService.getPullRequestsByRepository(user, repositoryId, size, page); + return repositoryService.getProcessedPullRequestsByRepository(user, repositoryId, size, page); } public PullRequests findAllPullRequests(User user, int size, int page) { - return repositoryService.getPullRequests(user, size, page); + return repositoryService.getProcessedPullRequests(user, size, page); } public List findMyRepositories(User user) { diff --git a/gss-api-app/src/test/java/com/devoops/service/repository/RepositoryServiceTest.java b/gss-api-app/src/test/java/com/devoops/service/repository/RepositoryServiceTest.java index cb753e1..905aac5 100644 --- a/gss-api-app/src/test/java/com/devoops/service/repository/RepositoryServiceTest.java +++ b/gss-api-app/src/test/java/com/devoops/service/repository/RepositoryServiceTest.java @@ -66,7 +66,7 @@ class getRepositoryPullRequestsByRepository { PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, now.minusMinutes(1L)); - List pullRequestsId = repositoryService.getPullRequestsByRepository(user, repo.getId(), 6, 0) + List pullRequestsId = repositoryService.getProcessedPullRequestsByRepository(user, repo.getId(), 6, 0) .getValues() .stream() .map(PullRequest::getId) @@ -76,6 +76,28 @@ class getRepositoryPullRequestsByRepository { .containsExactly(oneMinutesAgoPR.getId(), threeMinutesAgoPR.getId(), fiveMinutesAgoPR.getId()); } + @Test + void 질문_생성이_완료된_풀_리퀘스트만_가져온다() { + LocalDateTime now = LocalDateTime.now(); + User user = userGenerator.generate("김건우"); + GithubRepository repo = repoGenerator.generate(user, "김건우의 레포지토리"); + PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(5L)); + pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, + ProcessingStatus.PROCESSING, repo, now.minusMinutes(3L)); + PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(1L)); + + List pullRequestsId = repositoryService.getProcessedPullRequestsByRepository(user, repo.getId(), 6, 0) + .getValues() + .stream() + .map(PullRequest::getId) + .toList(); + + assertThat(pullRequestsId) + .containsExactly(oneMinutesAgoPR.getId(), fiveMinutesAgoPR.getId()); + } + @Test void 레포지토리_풀_리퀘스트_목록에_페이지네이션을_적용한다() { LocalDateTime now = LocalDateTime.now(); @@ -88,13 +110,13 @@ class getRepositoryPullRequestsByRepository { PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, now.minusMinutes(1L)); - List pageOneIds = repositoryService.getPullRequestsByRepository(user, repo.getId(), 2, 0) + List pageOneIds = repositoryService.getProcessedPullRequestsByRepository(user, repo.getId(), 2, 0) .getValues() .stream() .map(PullRequest::getId) .toList(); - List pageTwoIds = repositoryService.getPullRequestsByRepository(user, repo.getId(), 2, 1) + List pageTwoIds = repositoryService.getProcessedPullRequestsByRepository(user, repo.getId(), 2, 1) .getValues() .stream() .map(PullRequest::getId) @@ -106,6 +128,36 @@ class getRepositoryPullRequestsByRepository { ); } + @Test + void 질문_생성이_완료된_레포지토리_풀_리퀘스트_목록에_페이지네이션을_적용한다() { + LocalDateTime now = LocalDateTime.now(); + User user = userGenerator.generate("김건우"); + GithubRepository repo = repoGenerator.generate(user, "김건우의 레포지토리"); + PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(5L)); + PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo, now.minusMinutes(3L)); + PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, + ProcessingStatus.PROCESSING, repo, now.minusMinutes(1L)); + + List pageOneIds = repositoryService.getProcessedPullRequestsByRepository(user, repo.getId(), 1, 0) + .getValues() + .stream() + .map(PullRequest::getId) + .toList(); + + List pageTwoIds = repositoryService.getProcessedPullRequestsByRepository(user, repo.getId(), 1, 1) + .getValues() + .stream() + .map(PullRequest::getId) + .toList(); + + assertAll( + () -> assertThat(pageOneIds).containsOnly(threeMinutesAgoPR.getId()), + () -> assertThat(pageTwoIds).containsOnly(fiveMinutesAgoPR.getId()) + ); + } + @Test void 주인이_아니라면_레포지토리_풀_리퀘스트_목록에_접근할_수_없다() { LocalDateTime now = LocalDateTime.now(); @@ -114,7 +166,7 @@ class getRepositoryPullRequestsByRepository { GithubRepository repo = repoGenerator.generate(user, "김건우의 레포지토리"); pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo, now); - assertThatThrownBy(() -> repositoryService.getPullRequestsByRepository(seonwoo, repo.getId(), 6, 0)) + assertThatThrownBy(() -> repositoryService.getProcessedPullRequestsByRepository(seonwoo, repo.getId(), 6, 0)) .isInstanceOf(GssException.class) .hasMessage(ErrorCode.REPOSITORY_NOT_FOUND.getMessage()); } @@ -137,7 +189,7 @@ class getRepositoryPullRequests { ProcessingStatus.DONE, repo2, now.minusMinutes(1L)); PullRequest nowPr = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo2, now); - List pullRequestsId = repositoryService.getPullRequests(user, 4, 0) + List pullRequestsId = repositoryService.getProcessedPullRequests(user, 4, 0) .getValues() .stream() .map(PullRequest::getId) @@ -148,6 +200,30 @@ class getRepositoryPullRequests { fiveMinutesAgoPR.getId()); } + @Test + void 회원의_전체_풀_리퀘스트_목록_중_질문_생성이_완료된_것만_머지_최신순으로_가져온다() { + LocalDateTime now = LocalDateTime.now(); + User user = userGenerator.generate("김건우"); + GithubRepository repo1 = repoGenerator.generate(user, "김건우의 레포지토리1"); + GithubRepository repo2 = repoGenerator.generate(user, "김건우의 레포지토리2"); + PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo1, now.minusMinutes(5L)); + PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, + ProcessingStatus.PROCESSING, repo1, now.minusMinutes(3L)); + PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo2, now.minusMinutes(1L)); + PullRequest nowPr = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo2, now); + + List pullRequestsId = repositoryService.getProcessedPullRequests(user, 4, 0) + .getValues() + .stream() + .map(PullRequest::getId) + .toList(); + + assertThat(pullRequestsId) + .containsExactly(nowPr.getId(), oneMinutesAgoPR.getId(), fiveMinutesAgoPR.getId()); + } + @Test void 회원의_풀_리퀘스트_목록에_페이지네이션을_적용한다() { LocalDateTime now = LocalDateTime.now(); @@ -162,13 +238,13 @@ class getRepositoryPullRequests { ProcessingStatus.DONE, repo2, now.minusMinutes(1L)); PullRequest nowPr = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, ProcessingStatus.DONE, repo2, now); - List pageOneIds = repositoryService.getPullRequests(user, 2, 0) + List pageOneIds = repositoryService.getProcessedPullRequests(user, 2, 0) .getValues() .stream() .map(PullRequest::getId) .toList(); - List pageTwoIds = repositoryService.getPullRequests(user, 2, 1) + List pageTwoIds = repositoryService.getProcessedPullRequests(user, 2, 1) .getValues() .stream() .map(PullRequest::getId) @@ -179,8 +255,43 @@ class getRepositoryPullRequests { () -> assertThat(pageTwoIds).containsOnly(threeMinutesAgoPR.getId(), fiveMinutesAgoPR.getId()) ); } + + @Test + void 질문_생성이_완료된_풀_리퀘스트_목록에_페이지네이션을_적용한다() { + LocalDateTime now = LocalDateTime.now(); + User user = userGenerator.generate("김건우"); + GithubRepository repo1 = repoGenerator.generate(user, "김건우의 레포지토리1"); + GithubRepository repo2 = repoGenerator.generate(user, "김건우의 레포지토리2"); + PullRequest fiveMinutesAgoPR = pullRequestGenerator.generate("5분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo1, now.minusMinutes(5L)); + PullRequest threeMinutesAgoPR = pullRequestGenerator.generate("3분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo1, now.minusMinutes(3L)); + PullRequest oneMinutesAgoPR = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, + ProcessingStatus.DONE, repo2, now.minusMinutes(1L)); + PullRequest nowPr = pullRequestGenerator.generate("1분전 PR", RecordStatus.PENDING, + ProcessingStatus.PROCESSING, repo2, now); + + List pageOneIds = repositoryService.getProcessedPullRequests(user, 2, 0) + .getValues() + .stream() + .map(PullRequest::getId) + .toList(); + + List pageTwoIds = repositoryService.getProcessedPullRequests(user, 2, 1) + .getValues() + .stream() + .map(PullRequest::getId) + .toList(); + + assertAll( + () -> assertThat(pageOneIds).containsOnly(oneMinutesAgoPR.getId(), threeMinutesAgoPR.getId()), + () -> assertThat(pageTwoIds).containsOnly(fiveMinutesAgoPR.getId()) + ); + } } + + @Nested class StopTracking { diff --git a/gss-domain/src/main/java/com/devoops/service/repository/RepositoryService.java b/gss-domain/src/main/java/com/devoops/service/repository/RepositoryService.java index 5dcda54..237dfa2 100644 --- a/gss-domain/src/main/java/com/devoops/service/repository/RepositoryService.java +++ b/gss-domain/src/main/java/com/devoops/service/repository/RepositoryService.java @@ -37,11 +37,11 @@ public GithubRepository reTracking(User user, long repositoryId) { return repoRepository.update(reTrackingRepo); } - public PullRequests getPullRequests(User user, int size, int page) { + public PullRequests getProcessedPullRequests(User user, int size, int page) { return pullRequestRepository.findProcessedUserPullRequestsOrderByMergedAt(user.getId(), size, page); } - public PullRequests getPullRequestsByRepository(User user, long repositoryId, int size, int page) { + public PullRequests getProcessedPullRequestsByRepository(User user, long repositoryId, int size, int page) { validateOwn(user, repositoryId); return pullRequestRepository.findProcessedPullRequestsByRepositoryIdOrderByMergedAt(repositoryId, size, page); } From 4442b42aaa248f1879614cffbaad04651507c223 Mon Sep 17 00:00:00 2001 From: coli Date: Mon, 1 Sep 2025 20:21:14 +0900 Subject: [PATCH 07/11] =?UTF-8?q?test:=20=EC=83=81=ED=83=9C=EC=97=90=20?= =?UTF-8?q?=EB=8C=80=ED=95=9C=20=EA=B2=80=EC=A6=9D=20=EC=B6=94=EA=B0=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/devoops/service/facade/PullRequestFacadeServiceTest.java | 1 + 1 file changed, 1 insertion(+) diff --git a/gss-api-app/src/test/java/com/devoops/service/facade/PullRequestFacadeServiceTest.java b/gss-api-app/src/test/java/com/devoops/service/facade/PullRequestFacadeServiceTest.java index e6c7d0d..2109547 100644 --- a/gss-api-app/src/test/java/com/devoops/service/facade/PullRequestFacadeServiceTest.java +++ b/gss-api-app/src/test/java/com/devoops/service/facade/PullRequestFacadeServiceTest.java @@ -38,6 +38,7 @@ class Read { assertAll( () -> assertThat(response.id()).isEqualTo(pullRequest.getId()), + () -> assertThat(response.processingStatus()).isEqualTo(ProcessingStatus.DONE), () -> assertThat(response.questions()).hasSize(2), () -> assertThat(response.questions().get(0).createdAt()).isNotNull(), () -> assertThat(response.questions().get(1).createdAt()).isNull() From 1ba01aa7f6cd36cd96e415a2ad7318b0cf82d292 Mon Sep 17 00:00:00 2001 From: coli Date: Mon, 1 Sep 2025 20:24:29 +0900 Subject: [PATCH 08/11] =?UTF-8?q?refactor:=20recordStatus=EB=A5=BC=20?= =?UTF-8?q?=ED=95=84=EB=93=9C=EA=B0=92=EC=9D=84=20=ED=99=9C=EC=9A=A9?= =?UTF-8?q?=ED=95=98=EB=8F=84=EB=A1=9D=20=EC=88=98=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/devoops/command/request/PullRequestCreateCommand.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gss-domain/src/main/java/com/devoops/command/request/PullRequestCreateCommand.java b/gss-domain/src/main/java/com/devoops/command/request/PullRequestCreateCommand.java index b7b66d5..50ec0f2 100644 --- a/gss-domain/src/main/java/com/devoops/command/request/PullRequestCreateCommand.java +++ b/gss-domain/src/main/java/com/devoops/command/request/PullRequestCreateCommand.java @@ -44,7 +44,7 @@ public PullRequest toDomainEntity() { summaryDetail, pullRequestUrl, externalId, - RecordStatus.PENDING, + recordStatus, ProcessingStatus.PROCESSING, mergedAt, tag From f8a5a8654b71c0dafd8158491d20d5a82aec2e35 Mon Sep 17 00:00:00 2001 From: coli Date: Mon, 1 Sep 2025 20:26:47 +0900 Subject: [PATCH 09/11] =?UTF-8?q?refactor:=20=EB=A7=88=EC=9D=B4=EA=B7=B8?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84=20=EC=9C=84=ED=95=9C=20def?= =?UTF-8?q?ault=20=EA=B0=92=20=EC=A0=80=EC=9E=A5?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/devoops/jpa/entity/github/pr/PullRequestEntity.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java b/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java index 5208a74..ea93e20 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java +++ b/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java @@ -18,6 +18,7 @@ import lombok.AllArgsConstructor; import lombok.Getter; import lombok.NoArgsConstructor; +import org.hibernate.annotations.ColumnDefault; @Entity @Getter @@ -59,6 +60,7 @@ public class PullRequestEntity extends BaseTimeEntity { @NotNull @Enumerated(EnumType.STRING) + @ColumnDefault("DONE") private ProcessingStatus processingStatus; @NotNull From d0bb3898007d3000b15181b1d31d8a6a702c6048 Mon Sep 17 00:00:00 2001 From: coli Date: Mon, 1 Sep 2025 20:30:19 +0900 Subject: [PATCH 10/11] =?UTF-8?q?refactor:=20page.get()=20>=20stream()=20?= =?UTF-8?q?=EC=9C=BC=EB=A1=9C=20=EB=B3=80=EA=B2=BD?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../github/pr/PullRequestDomainRepositoryImpl.java | 4 ++-- .../jpa/repository/github/pr/PullRequestJpaRepository.java | 7 +++++-- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java index 909debe..90e7b5b 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java +++ b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestDomainRepositoryImpl.java @@ -49,7 +49,7 @@ public PullRequest findById(long pullRequestId) { public PullRequests findProcessedPullRequestsByRepositoryIdOrderByMergedAt(long repositoryId, int size, int page) { Pageable pageable = PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, "mergedAt")); return pullRequestRepository.findByRepositoryIdAndProcessingStatus(repositoryId, ProcessingStatus.DONE, pageable) - .get() + .stream() .map(PullRequestEntity::toDomainEntity) .collect(Collectors.collectingAndThen(Collectors.toList(), PullRequests::new)); } @@ -59,7 +59,7 @@ public PullRequests findProcessedPullRequestsByRepositoryIdOrderByMergedAt(long public PullRequests findProcessedUserPullRequestsOrderByMergedAt(long userId, int size, int page) { Pageable pageable = PageRequest.of(page, size, Sort.by(Sort.Direction.DESC, "mergedAt")); return pullRequestRepository.findByUserIdAndProcessingStatus(userId, ProcessingStatus.DONE, pageable) - .get() + .stream() .map(PullRequestEntity::toDomainEntity) .collect(Collectors.collectingAndThen(Collectors.toList(), PullRequests::new)); } diff --git a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestJpaRepository.java b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestJpaRepository.java index 54a2568..c188089 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestJpaRepository.java +++ b/gss-domain/src/main/java/com/devoops/jpa/repository/github/pr/PullRequestJpaRepository.java @@ -2,7 +2,6 @@ import com.devoops.domain.entity.github.pr.ProcessingStatus; import com.devoops.jpa.entity.github.pr.PullRequestEntity; -import java.util.List; import java.util.Optional; import org.springframework.data.domain.Page; import org.springframework.data.domain.Pageable; @@ -10,7 +9,11 @@ public interface PullRequestJpaRepository extends JpaRepository { - Page findByRepositoryIdAndProcessingStatus(long repositoryId, ProcessingStatus processingStatus, Pageable pageable); + Page findByRepositoryIdAndProcessingStatus( + long repositoryId, + ProcessingStatus processingStatus, + Pageable pageable + ); Page findByUserIdAndProcessingStatus(long userId, ProcessingStatus status, Pageable pageable); From 821ae0ccbedceaa6bc5c6938b4b974910ab4943c Mon Sep 17 00:00:00 2001 From: coli Date: Mon, 1 Sep 2025 20:42:15 +0900 Subject: [PATCH 11/11] =?UTF-8?q?fix:=20=EB=A7=88=EC=9D=B4=EA=B7=B8?= =?UTF-8?q?=EB=A0=88=EC=9D=B4=EC=85=98=EC=9D=84=20=EC=9C=84=ED=95=9C=20def?= =?UTF-8?q?ault=20=EA=B0=92=EC=9D=84=20=EB=AC=B8=EC=9E=90=EC=97=B4?= =?UTF-8?q?=EB=A1=9C=20=EC=A7=80=EC=A0=95?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../com/devoops/jpa/entity/github/pr/PullRequestEntity.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java b/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java index ea93e20..c76e6f5 100644 --- a/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java +++ b/gss-domain/src/main/java/com/devoops/jpa/entity/github/pr/PullRequestEntity.java @@ -60,7 +60,7 @@ public class PullRequestEntity extends BaseTimeEntity { @NotNull @Enumerated(EnumType.STRING) - @ColumnDefault("DONE") + @ColumnDefault("'DONE'") private ProcessingStatus processingStatus; @NotNull