Skip to content

fix(release): 릴리스 제목 누락 + main 보호 규칙 우회 경로 제거 - #46

Merged
su-record merged 1 commit into
mainfrom
fix/release-title-and-pr-flow
Aug 4, 2026
Merged

fix(release): 릴리스 제목 누락 + main 보호 규칙 우회 경로 제거#46
su-record merged 1 commit into
mainfrom
fix/release-title-and-pr-flow

Conversation

@su-record

Copy link
Copy Markdown
Owner

문제

1. 릴리스 제목이 빈 문자열gh release create--title 이 없어 API 가 name=null 을 받는다. v3.2.15 · v3.2.16 · v3.2.17 모두 동일.

2. 릴리스가 매번 main 보호 규칙을 우회 — main 은 필수 체크 2개(Build (type-check) · Tests)를 요구하는데 그 체크는 푸시 실행된다. 구 pnpm version patch && git push origin main --follow-tags 는 구조적으로 체크를 만족시킬 수 없었고, enforce_admins=false 덕에 소유자 권한으로 통과했다. v3.2.17 푸시 로그에 Bypassed rule violations for refs/heads/main 이 남아 있다.

변경

  • .github/workflows/release.ymlgh release create--title "$GITHUB_REF_NAME" 추가
  • src/tools/release/releaseNotes.ts — 본문의 중복 # {tag} H1 제거 (제목이 두 번 렌더됨)
  • scripts/release.sh (신규) — 버전 범프를 PR 로 보내 체크 통과 후 병합 → 병합 커밋에 태그 → Release 워크플로 발동. 태그는 브랜치 보호 대상이 아니므로 직접 푸시해도 우회가 아니다
  • package.jsonrelease 스크립트를 위 경로로 교체
  • 저장소 설정 — enforce_admins 활성화 (소유자도 같은 경로를 사용)
  • 계약 테스트 7건 추가 (REQ-release-notes-007, REQ-release-flow-001~005)

검증

npm run build exit 0 · 96 files / 1744 tests 통과

이 PR 자체가 새 흐름의 첫 적용 사례다.

🤖 Generated with Claude Code

https://claude.ai/code/session_01J5idecfzZnceLmL2KYW2rG

두 문제 모두 릴리스 절차에 있었다.

1) 릴리스 제목이 빈 문자열로 발행됐다
   `gh release create` 에 `--title` 이 없어 API 가 name=null 을 받았다.
   v3.2.15~v3.2.17 이 모두 같은 상태다. 워크플로가 태그명을 제목으로 넣고,
   본문에서는 중복되는 `# {tag}` H1 을 뺀다 (제목이 두 번 렌더됐다).

2) 릴리스가 매번 main 보호 규칙을 우회했다
   main 은 필수 체크 2개(Build (type-check) · Tests)를 요구하는데 그 체크는
   푸시 **후** 실행된다. 구 `pnpm version patch && git push origin main
   --follow-tags` 는 구조적으로 체크를 만족시킬 수 없었고, enforce_admins=false
   덕에 소유자 권한으로 통과했다 — v3.2.17 푸시 로그에 "Bypassed rule
   violations for refs/heads/main" 이 남아 있다. 설정과 절차가 서로 모순이었다.

   `scripts/release.sh` 로 전환: 버전 범프를 PR 로 보내 체크를 실제로 통과시킨
   뒤 병합하고, 병합 커밋에 태그를 붙여 Release 워크플로를 발동한다. 태그는
   브랜치 보호 대상이 아니므로 직접 푸시해도 우회가 아니다.
   저장소 설정에서 enforce_admins 를 켰다 — 소유자도 같은 경로를 쓴다.

검증: npm run build exit 0 · 96 files / 1744 tests 통과 (신규 7건)

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01J5idecfzZnceLmL2KYW2rG
@su-record
su-record merged commit 5239585 into main Aug 4, 2026
3 checks passed
@su-record
su-record deleted the fix/release-title-and-pr-flow branch August 4, 2026 01:46
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