Skip to content
Merged
Show file tree
Hide file tree
Changes from 7 commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
77 changes: 77 additions & 0 deletions .coderabbit.yaml
Original file line number Diff line number Diff line change
@@ -0,0 +1,77 @@
# 리뷰 기본 언어 설정 (출력 언어 기준)
language: 'ko-KR'
tone_instructions: '모든 설명과 리뷰는 한국어로 작성해 주세요. 말투는 공손하게 적어주세요. 설명과 리뷰는 자세하게 해주세요.'
# 얼리 액세스 기능 사용 여부
early_access: false

# ----------------------------
# 리뷰 설정
# ----------------------------
reviews:
profile: 'assertive' # 리뷰 스타일: assertive → 더 많은 지적과 상세 피드백 제공
request_changes_workflow: true # 리뷰 코멘트가 모두 해결되면 자동 승인 여부 (false = 수동)
high_level_summary: true # PR 상단에 요약 생성
high_level_summary_in_walkthrough: true # 요약을 워크스루에도 포함
review_status: true # 리뷰 진행 상태 메시지 표시
commit_status: true # 리뷰 중이면 커밋 상태를 pending으로 설정
fail_commit_status: false # 리뷰 실패 시 커밋 상태를 실패로 설정할지 여부
collapse_walkthrough: false # 워크스루를 접힌 상태로 표시할지 여부
changed_files_summary: true # 변경된 파일 요약 표시
sequence_diagrams: true # 시퀀스 다이어그램 생성
estimate_code_review_effort: true # 코드 리뷰 예상 난이도/시간 추정
assess_linked_issues: true # 연결된 이슈와 변경사항의 연관도 평가
related_issues: true # 관련 가능성이 있는 이슈 표시
related_prs: true # 관련 가능성이 있는 PR 표시
suggested_labels: true # 라벨 추천 (예: bug, enhancement)
auto_apply_labels: false # 추천 라벨을 자동으로 붙일지 여부
suggested_reviewers: true # 리뷰어 추천
auto_assign_reviewers: false # 추천된 리뷰어를 자동 할당할지 여부
poem: false # 리뷰에 귀여운 시 추가 🐰 시러
auto_title_placeholder: '@coderabbitai' # 제목에 이 키워드가 있으면 자동 생성됨
summarize: true # 요약 자동 생성
comment_mode: inline # 줄 단위 리뷰 코멘트
suggestions: true # 코드 수정 diff 제안 포함
accessibility_checks: true # 접근성 관련 리뷰 활성화
abort_on_close: true # PR이 닫히거나 병합되면 리뷰 중단
disable_cache: false # 캐시 비활성화 여부 (false = 캐시 사용)

# 자동 리뷰 조건 설정
auto_review:
enabled: true # 자동 리뷰 기능 활성화
auto_incremental_review: true # push마다 자동 증분 리뷰 수행
drafts: false # draft 상태의 PR도 리뷰할지 여부
base_branches: # 리뷰 대상 브랜치 (기본 브랜치 외)
- '^main$'
- '^develop$'
- '^feature/.*$'

# ----------------------------
# Finishing Touches (자동 생성 요소)
# ----------------------------
finishing_touches:
docstrings:
enabled: true # 코드에 docstring 자동 생성
unit_tests:
enabled: false # 유닛 테스트 자동 생성은 비활성화

# ----------------------------
# 챗봇 설정
# ----------------------------
chat:
auto_reply: true # @태그 없이도 자동 응답 허용

# ----------------------------
# 코드 생성 설정
# ----------------------------
code_generation:
docstrings:
language: 'ko-KR' # Docstring 생성 시 사용할 언어

# ----------------------------
# 리뷰할 경로 필터링 (리뷰 제외할 경로)
# 예: node_modules나 .lock 파일은 리뷰하지 않음
# ----------------------------
path_filters:
- '!**/node_modules/**'
- '!**/*.lock'
- '!**/*.snap'
104 changes: 58 additions & 46 deletions .github/workflows/main.yaml
Original file line number Diff line number Diff line change
@@ -1,52 +1,64 @@
name: cicd action
language: 'ko-KR' # 리뷰 언어 설정 (전체 시스템 메시지에 영향)
early_access: false # 얼리엑세스 기능 사용 여부
tone_instructions: '모든 설명과 리뷰는 공손하고 간결하게, 한국어로 작성해 주세요.' # 리뷰 말투 스타일 요청

on:
push:
branches:
- main
reviews:
profile: 'assertive' # 리뷰 스타일: chill (최소 피드백) / assertive (꼼꼼한 피드백)
request_changes_workflow: true # 수정 요청이 있으면 자동으로 Request Changes 처리, 없으면 Approve
high_level_summary: true # PR 요약 생성
high_level_summary_in_walkthrough: true # 워크스루에도 요약 표시
auto_title_placeholder: '@coderabbitai' # PR 제목 자동 생성을 위한 키워드
review_status: true # 리뷰 상태 메시지 출력
commit_status: true # GitHub 상태 체크와 연동 (리뷰 중: pending / 완료: success)
fail_commit_status: false # 리뷰 실패 시 커밋 상태를 failure로 표시할지 여부
collapse_walkthrough: false # 워크스루 접기 기능 비활성화 (false = 항상 펼쳐짐)
changed_files_summary: true # 변경 파일 요약 표시
sequence_diagrams: true # 시퀀스 다이어그램 생성
estimate_code_review_effort: true # 코드 리뷰 난이도/예상 시간 추정 표시
assess_linked_issues: true # 연결된 이슈 반영 여부 평가
related_issues: true # 관련 이슈 제안
related_prs: true # 관련 PR 제안
suggested_labels: true # 라벨 추천
auto_apply_labels: false # 추천 라벨 자동 적용 여부
suggested_reviewers: true # 리뷰어 추천
auto_assign_reviewers: false # 리뷰어 자동 할당 여부
poem: false # 리뷰에 시 포함 x
summarize: true # 리뷰 요약 포함
comment_mode: inline # 줄 단위 코멘트 작성
suggestions: true # 코드 수정 diff 제안 포함
accessibility_checks: true # 접근성 리뷰 포함
abort_on_close: true # PR 닫히면 리뷰 중단
disable_cache: false # 캐시 사용 (false = 캐시 사용함)

jobs:
build:
runs-on: ubuntu-latest
# 🔍 리뷰 대상 브랜치 및 자동 리뷰 설정
auto_review:
enabled: true # 자동 리뷰 활성화
auto_incremental_review: true # push할 때마다 증분 리뷰 수행
drafts: false # draft 상태 PR은 리뷰 제외
base_branches: # 기본 브랜치 외 리뷰 대상 브랜치
- '^main$'
- '^develop$'
- '^feature/.*$'
- '^hotfix/.*$'

steps:
- name: Checkout source code
uses: actions/checkout@v3
# 🧼 리뷰 제외할 파일/디렉토리
path_filters:
- '!**/node_modules/**' # node_modules 제외
- '!**/*.lock' # yarn.lock, package-lock.json 제외
- '!**/*.snap' # snapshot 파일 제외

- name: Check Node.js version
run: node -v
# 🧠 Finishing Touches (AI가 자동 생성하는 보조 기능들)
finishing_touches:
docstrings:
enabled: true # 함수에 docstring 자동 생성
unit_tests:
enabled: false # 유닛 테스트 자동 생성 (false = 비활성화)

- name: Install pnpm
run: npm install -g pnpm
# 💬 챗봇 설정
chat:
auto_reply: true # @coderabbitai 태그 없이도 자동 응답

- name: Create .env file
run: |
echo "VITE_API_BASE_URL=${{ secrets.VITE_API_BASE_URL }}" >> .env
- name: Install dependencies
run: pnpm install

- name: Configure AWS credentials
uses: aws-actions/configure-aws-credentials@v4
with:
aws-access-key-id: ${{ secrets.AWS_ACCESS_KEY_ID }}
aws-secret-access-key: ${{ secrets.AWS_SECRET_ACCESS_KEY }}
aws-region: ${{ secrets.AWS_REGION }}

- name: Generate build
run: pnpm run build

- name: Deploy to S3
run: |
aws s3 cp --recursive --region ap-northeast-2 dist s3://${{ secrets.AWS_BUCKET_NAME }}

- name: Invalidate CloudFront Cache
run: aws cloudfront create-invalidation --distribution-id ${{ secrets.AWS_DISTRIBUTION_ID }} --paths "/*"
continue-on-error: true

- name: Notify Discord
if: success()
run: |
curl -H "Content-Type: application/json" \
-X POST \
-d "{\"content\": \"✅ 배포가 완료되었습니다! 🎉 (브랜치: main)\"}" \
${{ secrets.DISCORD_WEBHOOK_URL }}
# 🧾 코드 생성 관련 설정 (특히 docstring 생성 언어)
code_generation:
docstrings:
language: 'ko-KR' # Docstring 생성 시 한국어 사용