Skip to content

Feat: 추천 커밋 조회, 연결된 커밋 조회, 적용현황 조회, 신뢰도 조회, 커밋 연결 API 구현#19

Merged
ggamnunq merged 8 commits into
developfrom
feat/application
May 10, 2026
Merged

Feat: 추천 커밋 조회, 연결된 커밋 조회, 적용현황 조회, 신뢰도 조회, 커밋 연결 API 구현#19
ggamnunq merged 8 commits into
developfrom
feat/application

Conversation

@Yujin1219
Copy link
Copy Markdown
Member

🎯 작업 내용

주요 변경사항

  • 적용사항 기준으로 커밋 연결 구조를 정리했습니다.
  • 적용사항 상세 화면에 필요한 추천 커밋 조회, 연결된 커밋 조회, 적용현황 조회, 커밋 연결 API를 구현했습니다.
  • 영향범위(EffectRatio) 를 삭제하고, 결정사항 기반 신뢰도 조회 API를 구현했숩니다.

상세 내용

적용사항 기준 커밋 연결 구조 정리

  • 기존 CommitConnection은 결정사항 기준 연결되어있었는데, 적용사항별 커밋 연결이 필요해 Application 기준 연결 구조로 변경

추천 커밋 조회 API 구현

  • GET /api/applications/{applicationId}/recommended-commits 구현
  • DecisionCommits에 추천 이유(reason)를 추가
  • 같은 결정사항에 같은 커밋이 중복 추천되지 않도록 decision_id + commit_id unique 제약조건 추가
  • 추천 결과는 ApplicationCommits에서 조회한 추천 원본과 Commit 정보를 조합해 응답하도록 구현
  • 추천 응답에서 불필요한 application_id는 제거

연결된 커밋 조회 API 구현

  • GET /api/applications/{applicationId}/connected-commits 구현
  • 결정사항 도메인에 있던 GET /api/decisions/{applicationId}/connected-commits 는 삭제
  • 레포 이름, 커밋 해시, 커밋 메세지, 커밋 날짜, 총 연결된 커밋 개수 반환

적용현황 조회 API 구현

  • GET /api/applications/{applicationId}/status 구현
  • 커밋 해시, 커밋 메시지, 총 연결된 커밋 개수 반환

커밋 연결 API 구현

  • POST /api/applications/{applicationId}/commits 구현
  • 요청 형식은 단건/다건을 따로 나누지 않고 commit_ids 배열로 받도록 함
  • 이미 연결된 커밋이 하나라도 있으면 전체 요청을 실패시키도록 예외 처리

결정사항별 신뢰도 조회 API 구현

  • GET /api/decisions/{decisionId}/reliability 구현
  • DecisionreliabilityScore 컬럼을 추가
  • 추후에 fast api에서 적용사항단위로 신뢰도를 받아오는데, 이를 바탕으로 하나의 결정사항안에 있는 적용사항들의 신뢰도 점수의 평균값으로 결정사항 신뢰도를 저장할 예정

✅ 체크리스트

  • 코드 빌드가 정상적으로 완료되었나요?
  • 코드 리뷰 요청 전 self-review를 진행했나요?

📋 API 명세서

image image image image image

💬 기타 (선택)

  • 영향범위용으로 만들어뒀던 EffectRatio는 이제 불필요하여 제거하였습니다,.
  • 추천 결과는 DecisionCommits + ApplicationCommits, 최종 확정 연결은 commit_connection으로 분리하였습니다.
  • 추천결과를 저장하는 로직은 아직 구현하지 않았습니다.
  • 테이블 구조 변경으로 update시 반영되지 않는 commit_connection 구조 변경은 수동으로 반영해주셔야합니다. 아니면 create로 다시...ㅎㅎ 배포 db는 제가 반영해두겠습니다.
`commit_connection`의 기존 FK(`decision_id`, `commit_id`)를 제거한 뒤,
`application_id + commit_id` 복합키와 `application`, `commits` 기준 FK를 다시 설정
SET FOREIGN_KEY_CHECKS = 0;

-- 실제 FK 이름 확인이 필요 --
ALTER TABLE commit_connection DROP FOREIGN KEY FKe8trblggh1e1imum8ns0bdtav; 
ALTER TABLE commit_connection DROP FOREIGN KEY FKoc56nnq904pbklxf48urjakn; 

ALTER TABLE commit_connection DROP PRIMARY KEY;
ALTER TABLE commit_connection DROP COLUMN decision_id;
ALTER TABLE commit_connection ADD COLUMN application_id BIGINT NOT NULL;
ALTER TABLE commit_connection ADD PRIMARY KEY (application_id, commit_id);

ALTER TABLE commit_connection
    ADD CONSTRAINT fk_commit_connection_application
    FOREIGN KEY (application_id) REFERENCES application (application_id);

ALTER TABLE commit_connection
    ADD CONSTRAINT fk_commit_connection_commit
    FOREIGN KEY (commit_id) REFERENCES commits (commit_id);

SET FOREIGN_KEY_CHECKS = 1;

📚 참고 자료 (선택)

@Yujin1219 Yujin1219 requested a review from ggamnunq May 10, 2026 14:13
@Yujin1219 Yujin1219 self-assigned this May 10, 2026
@ggamnunq
Copy link
Copy Markdown
Contributor

👍

@ggamnunq ggamnunq merged commit 6506ac2 into develop May 10, 2026
1 check passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants