Skip to content

chore: develop → main 릴리즈 (마이페이지 소셜 provider 노출 + deploy CI 수동 전환)#94

Merged
chanwoo7 merged 7 commits into
mainfrom
develop
May 20, 2026
Merged

chore: develop → main 릴리즈 (마이페이지 소셜 provider 노출 + deploy CI 수동 전환)#94
chanwoo7 merged 7 commits into
mainfrom
develop

Conversation

@chanwoo7
Copy link
Copy Markdown
Member

@chanwoo7 chanwoo7 commented May 20, 2026

Summary

develop 누적 2건을 main으로 릴리즈한다.

Notes

Test plan

  • develop 브랜치에서 모든 CI(pr-check, codecov, CodeQL) green
  • main 머지 후 deploy 워크플로우가 자동 트리거되지 않는지 확인

Summary by CodeRabbit

릴리스 노트

  • 새로운 기능

    • 프로필 조회 시 연동된 소셜 로그인 제공자(Google, Kakao 등)와 각각의 마지막 로그인 시간 정보 표시
  • 운영

    • 자동 배포 워크플로우를 수동 배포로 변경

Review Change Stack

chanwoo7 added 7 commits May 21, 2026 01:47
소셜 로그인 provider(GOOGLE/KAKAO) 정보를 프론트에서 확인할 수 있도록
IdentityProvider enum과 LinkedIdentity 타입을 노출한다. 한 계정에 여러
identity 연결 가능성을 고려해 배열로 정의하고, lastLoginAt까지 포함해
"최근 로그인 provider" UI 구성도 가능하게 한다.
UserRepository.findAccountWithProfile에서 account_identities를 함께
조회(soft-deleted 제외, last_login_at desc 정렬)하도록 include를 추가하고,
toMePayload에서 provider/lastLoginAt만 추려 노출한다. provider_subject나
provider_email 등 OIDC 내부 식별자는 의도적으로 노출하지 않는다.
UserProfileService.me에 4가지 케이스(빈 배열/단일/다건 정렬/soft-deleted
제외) + resolver 단에서 새 필드가 그대로 노출되는 통합 케이스 1건을
추가한다. 모두 real DB로 검증.
…t spec 추가

호출부(UserBaseService.requireActiveUser)가 항상 withDeleted:true로
호출하여 서비스 spec으로는 falsy 브랜치가 도달되지 않는다.
soft-delete extension과의 상호작용 contract를 명시적으로 못박는다.

codecov/patch 80% 미달(66.67%) 해소 목적도 겸한다.
…ovider

feat(user): MePayload에 소셜 로그인 provider(linkedIdentities) 노출
개발 단계 인프라 비용 절감 차원에서 RDS 인스턴스를 삭제(스냅샷 보관)하고
EC2 인스턴스를 중지한 상태라 push: main 자동 배포가 매번 실패하며 Discord
알림 노이즈/실패한 S3 artifact를 양산한다. on:을 workflow_dispatch로 변경해
수동 실행만 허용하고, 인프라 복구 후 trigger 한 줄 revert로 재개할 수 있게
한다.
chore(ci): deploy 워크플로우를 수동 trigger로 전환
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 20, 2026

Caution

Review failed

Pull request was closed or merged during review

📝 Walkthrough

전체 개요

배포 워크플로우 트리거가 수동 실행 전용으로 변경되었으며, 사용자 프로필에 연동된 소셜 로그인 제공자 및 마지막 로그인 시각을 포함하는 linkedIdentities 필드가 추가되었습니다.

변경 사항

배포 워크플로우 조정

계층 / 파일 요약
워크플로우 트리거 구성
.github/workflows/deploy.yml
main 브랜치로의 push 자동 배포 제거, workflow_dispatch 수동 실행만 유지. RDS 및 자동 배포 비활성화 안내 주석 추가.

연결된 사용자 ID 기능

계층 / 파일 요약
GraphQL 스키마 및 출력 타입
src/features/user/user-profile.graphql, src/features/user/types/user-output.type.ts
IdentityProvider enum(GOOGLE, KAKAO)과 LinkedIdentity 타입을 GraphQL에 정의. MePayload에 linkedIdentities 필드 추가. TypeScript에서도 LinkedIdentityOutput 타입 정의하고 MePayload 갱신.
저장소 데이터 접근 계층
src/features/user/repositories/user.repository.ts
UserAccountIdentity 인터페이스 추가(provider, last_login_at). UserAccountWithProfile에 account_identities 필드 추가. findAccountWithProfile에서 deleted_at이 null인 항목만 조회하고 last_login_at 내림차순, id 오름차순 정렬하여 반환.
서비스 계층 변환
src/features/user/services/user-base.service.ts
UserBaseService.toMePayload에서 account.account_identities를 순회하며 provider와 last_login_at을 camelCase로 매핑하여 linkedIdentities 배열 포함.
저장소 및 서비스 통합 테스트
src/features/user/repositories/user.repository.spec.ts, src/features/user/resolvers/user-profile.resolver.spec.ts, src/features/user/services/user-profile.service.spec.ts
UserRepository 실제 DB 테스트 환경 구성 및 withDeleted 플래그 검증. Query.me resolver 통합 테스트에서 linkedIdentities 필드 노출 검증. UserProfileService.me()의 linkedIdentities 동작 다중 검증: 빈 배열, 단일/복수 provider, 정렬 순서, soft-deleted 제외, DB 매칭.

예상 코드 리뷰 노력

🎯 3 (보통) | ⏱️ ~25분

🚥 Pre-merge checks | ✅ 4
✅ Passed checks (4 passed)
Check name Status Explanation
Title check ✅ Passed PR 제목은 develop에서 main으로의 릴리즈임을 명확히 표현하고 있으며, 두 가지 주요 변경사항(마이페이지 소셜 provider 노출 + deploy CI 수동 전환)을 간결하게 요약하고 있습니다.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch develop

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@chanwoo7 chanwoo7 enabled auto-merge May 20, 2026 17:33
@github-actions
Copy link
Copy Markdown

Coverage report

St.
Category Percentage Covered / Total
🟢 Statements 96.71% 2911/3010
🟢 Branches 86.57% 1657/1914
🟢 Functions 93.36% 619/663
🟢 Lines 97.04% 2655/2736

Test suite run success

882 tests passing in 78 suites.

Report generated by 🧪jest coverage report action from 71aa083

@chanwoo7 chanwoo7 merged commit 88bdc74 into main May 20, 2026
12 of 13 checks passed
@chanwoo7 chanwoo7 deleted the develop branch May 20, 2026 17:36
@codecov
Copy link
Copy Markdown

codecov Bot commented May 20, 2026

Codecov Report

✅ All modified and coverable lines are covered by tests.

📢 Thoughts on this report? Let us know!

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.

1 participant