- 테마 시스템: CSS 변수 + data-theme + Tailwind v4 시맨틱 색상 (다크모드 지원) - 공통 컴포넌트: CodeBlock, Alert, StepGuide, CopyButton, TableOfContents - 가이드 콘텐츠 8개 섹션 (React.lazy 동적 로딩, 실제 인프라 검증 완료) - 관리자 페이지 4개 (사용자/롤/권한/통계) - 레이아웃: 반응형 사이드바 + 테마 토글 + ScrollSpy 목차 - 인증: Google OAuth 로그인/세션복원/로그아웃 백엔드 API 연동 - 개발모드 mock 인증 (import.meta.env.DEV 전용) Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
59 lines
2.4 KiB
Bash
Executable File
59 lines
2.4 KiB
Bash
Executable File
#!/bin/bash
|
|
#==============================================================================
|
|
# commit-msg hook
|
|
# Conventional Commits 형식 검증 (한/영 혼용 지원)
|
|
#==============================================================================
|
|
|
|
COMMIT_MSG_FILE="$1"
|
|
COMMIT_MSG=$(cat "$COMMIT_MSG_FILE")
|
|
|
|
# Merge 커밋은 검증 건너뜀
|
|
if echo "$COMMIT_MSG" | head -1 | grep -qE "^Merge "; then
|
|
exit 0
|
|
fi
|
|
|
|
# Revert 커밋은 검증 건너뜀
|
|
if echo "$COMMIT_MSG" | head -1 | grep -qE "^Revert "; then
|
|
exit 0
|
|
fi
|
|
|
|
# Conventional Commits 정규식
|
|
# type(scope): subject
|
|
# - type: feat|fix|docs|style|refactor|test|chore|ci|perf (필수)
|
|
# - scope: 영문, 숫자, 한글, 점, 밑줄, 하이픈 허용 (선택)
|
|
# - subject: 1~72자, 한/영 혼용 허용 (필수)
|
|
FIRST_LINE=$(head -1 "$COMMIT_MSG_FILE")
|
|
|
|
if ! echo "$FIRST_LINE" | grep -qE '^(feat|fix|docs|style|refactor|test|chore|ci|perf)(\([a-zA-Z0-9._-]+\)|(\([^)]+\)))?: .{1,72}$'; then
|
|
echo ""
|
|
echo "╔══════════════════════════════════════════════════════════════╗"
|
|
echo "║ 커밋 메시지가 Conventional Commits 형식에 맞지 않습니다 ║"
|
|
echo "╚══════════════════════════════════════════════════════════════╝"
|
|
echo ""
|
|
echo " 올바른 형식: type(scope): subject"
|
|
echo ""
|
|
echo " type (필수):"
|
|
echo " feat — 새로운 기능"
|
|
echo " fix — 버그 수정"
|
|
echo " docs — 문서 변경"
|
|
echo " style — 코드 포맷팅"
|
|
echo " refactor — 리팩토링"
|
|
echo " test — 테스트"
|
|
echo " chore — 빌드/설정 변경"
|
|
echo " ci — CI/CD 변경"
|
|
echo " perf — 성능 개선"
|
|
echo ""
|
|
echo " scope (선택): 한/영 모두 가능"
|
|
echo " subject (필수): 1~72자, 한/영 모두 가능"
|
|
echo ""
|
|
echo " 예시:"
|
|
echo " feat(auth): JWT 기반 로그인 구현"
|
|
echo " fix(배치): 야간 배치 타임아웃 수정"
|
|
echo " docs: README 업데이트"
|
|
echo " chore: Gradle 의존성 업데이트"
|
|
echo ""
|
|
echo " 현재 메시지: $FIRST_LINE"
|
|
echo ""
|
|
exit 1
|
|
fi
|