byuckchon-frontend-cli 1.10.0 → 1.10.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md
CHANGED
|
@@ -251,6 +251,8 @@ color는 `@theme`의 `--color-*`로, typography는 `@utility text-*`로, motion
|
|
|
251
251
|
```text
|
|
252
252
|
.github/workflows/eslint-convention-review.yml # 컨벤션 인라인 댓글
|
|
253
253
|
.github/workflows/pr-check.yml # lint / typecheck / build 통과 여부 (bc init 전용)
|
|
254
|
+
.github/workflows/pr-description.yml # 커밋 내역을 PR 본문에 반영
|
|
255
|
+
.github/pull_request_template.md
|
|
254
256
|
tools/review.config.mjs
|
|
255
257
|
```
|
|
256
258
|
|
|
@@ -277,6 +279,24 @@ PR이 `dev` 브랜치를 대상으로 할 때, workflow가 기계적으로 판
|
|
|
277
279
|
| Convention Review | 파일명, export 방식, boolean 변수명 등 | PR 인라인 `BLOCKING` 또는 `WARNING` 댓글 |
|
|
278
280
|
| AI 리뷰 | 설계·예외 처리·비즈니스 판단 | 별도 AI 리뷰 workflow에서 구성 |
|
|
279
281
|
|
|
282
|
+
### PR 본문 자동 작성
|
|
283
|
+
|
|
284
|
+
`pr-description.yml` 이 PR 의 커밋을 타입별로 묶어 description 에 채워 넣습니다.
|
|
285
|
+
|
|
286
|
+
```markdown
|
|
287
|
+
### ✨ 기능
|
|
288
|
+
- **settings** — tsconfig 프리셋 추가 (a1b2c3d)
|
|
289
|
+
|
|
290
|
+
### 🐛 수정
|
|
291
|
+
- letterSpacing % → em 변환 (b2c3d4e)
|
|
292
|
+
```
|
|
293
|
+
|
|
294
|
+
사람이 쓴 내용은 건드리지 않고 `<!-- byuckchon:commits:start -->` 마커 사이만 갱신하며,
|
|
295
|
+
커밋을 추가로 푸시하면 목록도 따라 갱신됩니다. 머지 커밋은 제외하고, 컨벤션을 안 지킨
|
|
296
|
+
커밋은 버리지 않고 "분류 없음"으로 모읍니다.
|
|
297
|
+
|
|
298
|
+
생성되는 `.github/pull_request_template.md` 에 마커가 미리 들어 있습니다.
|
|
299
|
+
|
|
280
300
|
같은 지적은 숨김 marker를 기준으로 중복 게시하지 않고, 메시지가 바뀌면 기존 댓글을 갱신합니다.
|
|
281
301
|
모노레포에서는 workflow와 `tools/`가 루트에 한 번만 존재하며, PR에서 변경된 TypeScript 파일을
|
|
282
302
|
대상으로 검사합니다.
|
package/package.json
CHANGED
|
@@ -74,7 +74,7 @@ async function copyFileIfAllowed(source, target, overwrite) {
|
|
|
74
74
|
* @param {'single' | 'monorepo'} args.projectType 생성할 프로젝트 유형
|
|
75
75
|
* @param {boolean} [args.overwrite=true] 기존 파일을 템플릿으로 덮어쓸지
|
|
76
76
|
* @param {string[]} [args.exclude=[]] 제외할 워크플로 이름 (확장자·유형 접미사 제외)
|
|
77
|
-
* @returns {Promise<{ toolsDir: string, workflows: string[] }>}
|
|
77
|
+
* @returns {Promise<{ toolsDir: string, workflows: string[], pullRequestTemplate: boolean }>}
|
|
78
78
|
*/
|
|
79
79
|
export async function scaffoldReviewAutomation({
|
|
80
80
|
projectRoot,
|
|
@@ -111,5 +111,16 @@ export async function scaffoldReviewAutomation({
|
|
|
111
111
|
if (copied) copiedWorkflows.push(target);
|
|
112
112
|
}
|
|
113
113
|
|
|
114
|
-
|
|
114
|
+
// PR 템플릿 — 커밋 내역이 채워질 마커를 품고 있다.
|
|
115
|
+
const pullRequestTemplate = await copyFileIfAllowed(
|
|
116
|
+
path.join(TEMPLATE_ROOT, 'github', 'pull_request_template.md'),
|
|
117
|
+
path.join(projectRoot, '.github', 'pull_request_template.md'),
|
|
118
|
+
overwrite,
|
|
119
|
+
);
|
|
120
|
+
|
|
121
|
+
return {
|
|
122
|
+
toolsDir: toolsTargetDir,
|
|
123
|
+
workflows: copiedWorkflows,
|
|
124
|
+
pullRequestTemplate,
|
|
125
|
+
};
|
|
115
126
|
}
|
|
@@ -0,0 +1,30 @@
|
|
|
1
|
+
## 작업 내용
|
|
2
|
+
|
|
3
|
+
<!-- 무엇을, 왜 바꿨는지 적어주세요. -->
|
|
4
|
+
|
|
5
|
+
## 확인 사항
|
|
6
|
+
|
|
7
|
+
<!-- 리뷰어가 중점적으로 봐야 할 부분이 있다면 적어주세요. -->
|
|
8
|
+
|
|
9
|
+
## 테스트
|
|
10
|
+
|
|
11
|
+
- [ ] 로컬에서 동작 확인
|
|
12
|
+
- [ ] `lint` / `typecheck` / `build` 통과
|
|
13
|
+
|
|
14
|
+
<!--
|
|
15
|
+
아래 마커 사이는 워크플로가 자동으로 채웁니다. 직접 수정하지 마세요.
|
|
16
|
+
|
|
17
|
+
- 커밋 내역: 커밋 메시지 첫 줄을 타입별로 묶습니다. (feat / fix / docs ...)
|
|
18
|
+
- 리뷰 포인트: 커밋 본문에 NOTE: 또는 TODO: 로 적은 줄을 모읍니다.
|
|
19
|
+
|
|
20
|
+
feat: 주문 목록 API 연동
|
|
21
|
+
|
|
22
|
+
NOTE: 응답 스키마가 미확정이라 any 가 남아 있습니다
|
|
23
|
+
TODO: 에러 처리 미구현
|
|
24
|
+
|
|
25
|
+
PR 제목은 브랜치명의 첫 토막이 대괄호로 붙습니다.
|
|
26
|
+
feature/update-mypage-style/hyuk + "마이페이지 디자인 적용"
|
|
27
|
+
→ "[feature] 마이페이지 디자인 적용"
|
|
28
|
+
-->
|
|
29
|
+
<!-- byuckchon:commits:start -->
|
|
30
|
+
<!-- byuckchon:commits:end -->
|
|
@@ -0,0 +1,58 @@
|
|
|
1
|
+
# PR 본문에 커밋 내역을 자동으로 채워 넣습니다.
|
|
2
|
+
#
|
|
3
|
+
# 사람이 쓴 내용은 건드리지 않고, 아래 마커 사이만 갱신합니다.
|
|
4
|
+
# <!-- byuckchon:commits:start --> ~ <!-- byuckchon:commits:end -->
|
|
5
|
+
# 마커가 없으면 본문 끝에 한 번 덧붙입니다. (PR 템플릿이 없어도 동작)
|
|
6
|
+
#
|
|
7
|
+
# 커밋 메시지를 `feat:` `fix:` 처럼 쓰면 타입별로 묶이고,
|
|
8
|
+
# 컨벤션을 안 지킨 커밋은 "분류 없음"으로 모입니다.
|
|
9
|
+
#
|
|
10
|
+
# 커밋 본문에 NOTE: 또는 TODO: 로 적은 줄은 "리뷰 포인트"로 따로 모입니다.
|
|
11
|
+
# AI 로 코드를 짤 때 "여긴 리뷰어가 봐야 한다"를 남겨두는 용도로 쓰세요.
|
|
12
|
+
#
|
|
13
|
+
# PR 제목에는 브랜치명의 첫 토막이 대괄호로 붙습니다.
|
|
14
|
+
# feature/update-mypage-style/hyuk + "마이페이지 디자인 적용"
|
|
15
|
+
# → "[feature] 마이페이지 디자인 적용"
|
|
16
|
+
# 사람이 쓴 제목은 그대로 두고 앞에만 붙이며, 이미 대괄호가 있으면 건드리지 않습니다.
|
|
17
|
+
#
|
|
18
|
+
# 복사된 파일이므로 프로젝트 소유입니다. 대상 브랜치 등은 자유롭게 수정하세요.
|
|
19
|
+
|
|
20
|
+
name: PR Description
|
|
21
|
+
|
|
22
|
+
on:
|
|
23
|
+
pull_request:
|
|
24
|
+
types: [opened, synchronize, reopened]
|
|
25
|
+
branches:
|
|
26
|
+
- dev
|
|
27
|
+
|
|
28
|
+
concurrency:
|
|
29
|
+
group: pr-description-${{ github.event.pull_request.number }}
|
|
30
|
+
cancel-in-progress: true
|
|
31
|
+
|
|
32
|
+
jobs:
|
|
33
|
+
describe:
|
|
34
|
+
name: 커밋 내역 반영
|
|
35
|
+
# changeset 릴리즈 PR 처럼 봇이 연 PR 은 본문을 그대로 둔다.
|
|
36
|
+
if: ${{ !endsWith(github.event.pull_request.user.login, '[bot]') }}
|
|
37
|
+
runs-on: ubuntu-latest
|
|
38
|
+
permissions:
|
|
39
|
+
contents: read
|
|
40
|
+
pull-requests: write
|
|
41
|
+
|
|
42
|
+
steps:
|
|
43
|
+
- uses: actions/checkout@v4
|
|
44
|
+
|
|
45
|
+
- uses: actions/setup-node@v4
|
|
46
|
+
with:
|
|
47
|
+
node-version-file: .nvmrc
|
|
48
|
+
|
|
49
|
+
- name: PR 본문 갱신
|
|
50
|
+
env:
|
|
51
|
+
GH_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
|
52
|
+
REPO: ${{ github.repository }}
|
|
53
|
+
PR_NUMBER: ${{ github.event.pull_request.number }}
|
|
54
|
+
run: |
|
|
55
|
+
# 프로젝트가 고정한 settings 버전을 그대로 사용합니다.
|
|
56
|
+
# (전체 의존성 설치 없이 이 패키지만 받아 실행)
|
|
57
|
+
VERSION=$(node -p "const p=require('./package.json'); (p.devDependencies?.['@byuckchon-frontend/settings'] ?? p.dependencies?.['@byuckchon-frontend/settings'] ?? 'latest')")
|
|
58
|
+
npx --yes --package "@byuckchon-frontend/settings@${VERSION}" byuckchon-pr-description
|