Skip to content

Commit 5f0bb41

Browse files
Merge pull request #46 from NaverPayDev/commit-helper/README
๐Ÿ“š README ์—…๋ฐ์ดํŠธ: ํ•œ๊ตญ์–ด ๋ฌธ์„œ ์ถ”๊ฐ€ ๋ฐ ๊ธฐ๋Šฅ ์„ค๋ช… ๋ณด๊ฐ•
2 parents 3b4b716 + 90d2cbf commit 5f0bb41

File tree

4 files changed

+390
-48
lines changed

4 files changed

+390
-48
lines changed

โ€Ž.changeset/blue-zebras-bake.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,7 @@
1+
---
2+
"@naverpay/commit-helper": patch
3+
---
4+
5+
๐Ÿ”ฅ remove 'develop' 'master' branch rules from DEFAULT_PROTECTED_BRANCHES
6+
7+
PR: [๐Ÿ“š README ์—…๋ฐ์ดํŠธ: ํ•œ๊ตญ์–ด ๋ฌธ์„œ ์ถ”๊ฐ€ ๋ฐ ๊ธฐ๋Šฅ ์„ค๋ช… ๋ณด๊ฐ•](https://github.com/NaverPayDev/cli/pull/46)
Lines changed: 211 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,211 @@
1+
# @naverpay/commit-helper
2+
3+
> ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์„ ๊ธฐ๋ฐ˜์œผ๋กœ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ์ž๋™์œผ๋กœ ์ถ”๊ฐ€ํ•˜๊ณ  ์ค‘์š” ๋ธŒ๋žœ์น˜๋ฅผ ๋ณดํ˜ธํ•˜๋Š” ๋„๊ตฌ
4+
5+
## ์„ค์น˜
6+
7+
```bash
8+
npm install --save-dev @naverpay/commit-helper
9+
# or
10+
yarn add -D @naverpay/commit-helper
11+
# or
12+
pnpm add -D @naverpay/commit-helper
13+
```
14+
15+
## ๋น ๋ฅธ ์‹œ์ž‘
16+
17+
### 1. Husky ์„ค์น˜ (์•„์ง ์„ค์น˜ํ•˜์ง€ ์•Š์€ ๊ฒฝ์šฐ)
18+
19+
```bash
20+
npm install --save-dev husky
21+
npx husky init
22+
```
23+
24+
### 2. commit-msg ํ›… ์ถ”๊ฐ€
25+
26+
```bash
27+
echo 'npx --yes @naverpay/commit-helper@latest $1' > .husky/commit-msg
28+
chmod +x .husky/commit-msg
29+
```
30+
31+
### 3. ์ปค๋ฐ‹ ์ƒ์„ฑ
32+
33+
```bash
34+
git checkout -b feature/123-new-feature
35+
git add .
36+
git commit -m "์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€"
37+
# ๊ฒฐ๊ณผ: [#123] ์ƒˆ๋กœ์šด ๊ธฐ๋Šฅ ์ถ”๊ฐ€
38+
```
39+
40+
## ์ฃผ์š” ๊ธฐ๋Šฅ
41+
42+
### ๐Ÿท๏ธ ์ž๋™ ์ด์Šˆ ํƒœ๊น…
43+
44+
๋ธŒ๋žœ์น˜ ์ด๋ฆ„์—์„œ ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ์ถ”์ถœํ•˜์—ฌ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ์ถ”๊ฐ€:
45+
46+
- `feature/123` โ†’ `[#123] ๋ฉ”์‹œ์ง€`
47+
- `qa/456` โ†’ `[your-org/your-repo#456] ๋ฉ”์‹œ์ง€`
48+
- `hotfix/789-urgent` โ†’ `[#789] ๋ฉ”์‹œ์ง€`
49+
50+
### ๐Ÿ›ก๏ธ ๋ธŒ๋žœ์น˜ ๋ณดํ˜ธ
51+
52+
๋ณดํ˜ธ๋œ ๋ธŒ๋žœ์น˜์— ์ง์ ‘ ์ปค๋ฐ‹ ๋ฐฉ์ง€:
53+
54+
- ๊ธฐ๋ณธ๊ฐ’: `main`, `master`, `develop`
55+
- ์„ค์ •์œผ๋กœ ์ปค์Šคํ„ฐ๋งˆ์ด์ง• ๊ฐ€๋Šฅ
56+
57+
### โš™๏ธ ์œ ์—ฐํ•œ ์„ค์ •
58+
59+
์ปค์Šคํ…€ ๊ทœ์น™๊ณผ ์›๊ฒฉ ์„ค์ • ์ƒ์†์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
60+
61+
## ์„ค์ •
62+
63+
ํ”„๋กœ์ ํŠธ ๋ฃจํŠธ์— `.commithelperrc.json` ํŒŒ์ผ ์ƒ์„ฑ:
64+
65+
```json
66+
{
67+
"protect": ["main", "master", "develop", "staging"],
68+
"rules": {
69+
"feature": null,
70+
"bugfix": null,
71+
"hotfix": null,
72+
"qa": "naverpay/qa-issues",
73+
"docs": "naverpay/documentation"
74+
}
75+
}
76+
```
77+
78+
### ์„ค์ • ์˜ต์…˜
79+
80+
#### `protect` (๋ฐฐ์—ด)
81+
82+
์ง์ ‘ ์ปค๋ฐ‹์„ ์ฐจ๋‹จํ•  ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ๋ชฉ๋ก
83+
84+
- ๊ธฐ๋ณธ๊ฐ’: `["main", "master", "develop"]`
85+
86+
#### `rules` (๊ฐ์ฒด)
87+
88+
๋ธŒ๋žœ์น˜ ์ ‘๋‘์‚ฌ์™€ ์ €์žฅ์†Œ ์ด๋ฆ„์˜ ๋งคํ•‘
89+
90+
- ํ‚ค: ๋ธŒ๋žœ์น˜ ์ ‘๋‘์‚ฌ (์˜ˆ: `"feature"`)
91+
- ๊ฐ’: ์ €์žฅ์†Œ ์ด๋ฆ„ ๋˜๋Š” ํ˜„์žฌ ์ €์žฅ์†Œ์ธ ๊ฒฝ์šฐ `null`
92+
93+
#### `extends` (๋ฌธ์ž์—ด)
94+
95+
์„ค์ •์„ ์ƒ์†๋ฐ›์„ URL:
96+
97+
```json
98+
{
99+
"extends": "https://raw.githubusercontent.com/naverpay/standards/main/.commithelperrc.json"
100+
}
101+
```
102+
103+
## ์˜ˆ์ œ
104+
105+
### ๊ธฐ๋ณธ ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜
106+
107+
```bash
108+
git checkout -b feature/NP-1234-๊ฒฐ์ œ-ํ†ตํ•ฉ
109+
git commit -m "๊ฒฐ์ œ ๊ฒŒ์ดํŠธ์›จ์ด ๊ตฌํ˜„"
110+
# ๊ฒฐ๊ณผ: [#1234] ๊ฒฐ์ œ ๊ฒŒ์ดํŠธ์›จ์ด ๊ตฌํ˜„
111+
```
112+
113+
### ์™ธ๋ถ€ ์ €์žฅ์†Œ ์ฐธ์กฐ
114+
115+
์„ค์ • ํŒŒ์ผ:
116+
117+
```json
118+
{
119+
"rules": {
120+
"qa": "naverpay/qa-tracker"
121+
}
122+
}
123+
```
124+
125+
```bash
126+
git checkout -b qa/789-๊ฒฐ์ œ-ํ”Œ๋กœ์šฐ-ํ…Œ์ŠคํŠธ
127+
git commit -m "๊ฒฐ์ œ E2E ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€"
128+
# ๊ฒฐ๊ณผ: [naverpay/qa-tracker#789] ๊ฒฐ์ œ E2E ํ…Œ์ŠคํŠธ ์ถ”๊ฐ€
129+
```
130+
131+
### ๋ณดํ˜ธ๋œ ๋ธŒ๋žœ์น˜
132+
133+
```bash
134+
git checkout main
135+
git commit -m "์ง์ ‘ ์ปค๋ฐ‹"
136+
# ์˜ค๋ฅ˜: โŒ ๋ณดํ˜ธ๋œ ๋ธŒ๋žœ์น˜ 'main'์— ์ง์ ‘ ์ปค๋ฐ‹ํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค!
137+
# ๊ธฐ๋Šฅ ๋ธŒ๋žœ์น˜๋ฅผ ์ƒ์„ฑํ•˜๊ณ  ํ’€ ๋ฆฌํ€˜์ŠคํŠธ๋ฅผ ์‚ฌ์šฉํ•˜์„ธ์š”.
138+
```
139+
140+
## ๊ณ ๊ธ‰ ์‚ฌ์šฉ๋ฒ•
141+
142+
### Lefthook ์—ฐ๋™
143+
144+
Husky ๋Œ€์‹  Lefthook์„ ์„ ํ˜ธํ•˜๋Š” ๊ฒฝ์šฐ:
145+
146+
```yaml
147+
# lefthook.yml
148+
commit-msg:
149+
scripts:
150+
'commit-helper':
151+
runner: npx --yes @naverpay/commit-helper@latest {1}
152+
```
153+
154+
### CI/CD ์—ฐ๋™
155+
156+
CI์—์„œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ฒ€์ฆ:
157+
158+
```yaml
159+
# .github/workflows/pr.yml
160+
- name: ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ๊ฒ€์ฆ
161+
run: |
162+
git log --format=%s origin/main..HEAD | while read msg; do
163+
if ! echo "$msg" | grep -qE '^\[[#A-Za-z0-9-/]+\]'; then
164+
echo "์ž˜๋ชป๋œ ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€: $msg"
165+
exit 1
166+
fi
167+
done
168+
```
169+
170+
## API
171+
172+
### CLI ์‚ฌ์šฉ๋ฒ•
173+
174+
```bash
175+
npx @naverpay/commit-helper <commit-msg-file>
176+
```
177+
178+
- **๋งค๊ฐœ๋ณ€์ˆ˜**:
179+
- `commit-msg-file` (๋ฌธ์ž์—ด): ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€ ํŒŒ์ผ ๊ฒฝ๋กœ (git hook์ด ์ œ๊ณต)
180+
- **๋ฐ˜ํ™˜๊ฐ’**: ์„ฑ๊ณต ์‹œ ์ข…๋ฃŒ ์ฝ”๋“œ 0, ์‹คํŒจ ์‹œ 1
181+
- **์—๋Ÿฌ**: ์ž˜๋ชป๋œ ์„ค์ •์ด๋‚˜ ๋ณดํ˜ธ๋œ ๋ธŒ๋žœ์น˜์ธ ๊ฒฝ์šฐ stderr๋กœ ์—๋Ÿฌ ๋ฉ”์‹œ์ง€ ์ถœ๋ ฅ
182+
183+
## ์ž์ฃผ ๋ฌป๋Š” ์งˆ๋ฌธ
184+
185+
**Q: ์ด๋ฏธ ์ด์Šˆ ํƒœ๊ทธ๊ฐ€ ์žˆ๋Š” ๊ฒฝ์šฐ์—๋„ ์ž‘๋™ํ•˜๋‚˜์š”?**
186+
A: ๋„ค, ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ์ด๋ฏธ `[#123]` ๊ฐ™์€ ํƒœ๊ทธ๊ฐ€ ์žˆ์œผ๋ฉด commit-helper๋Š” ๊ฑด๋„ˆ๋œ๋‹ˆ๋‹ค.
187+
188+
**Q: ์—ฌ๋Ÿฌ ์ด์Šˆ ๋ฒˆํ˜ธ๋ฅผ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‚˜์š”?**
189+
A: ๋ธŒ๋žœ์น˜ ์ด๋ฆ„์—์„œ๋Š” ํ•˜๋‚˜์˜ ์ด์Šˆ ๋ฒˆํ˜ธ๋งŒ ์ง€์›ํ•˜์ง€๋งŒ, ์ปค๋ฐ‹ ๋ฉ”์‹œ์ง€์— ์ˆ˜๋™์œผ๋กœ ์ถ”๊ฐ€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.
190+
191+
**Q: ์–ด๋–ค ๋ธŒ๋žœ์น˜ ์ด๋ฆ„ ํ˜•์‹์„ ์ง€์›ํ•˜๋‚˜์š”?**
192+
A: ์Šฌ๋ž˜์‹œ ๋’ค์— ์ˆซ์ž๊ฐ€ ์žˆ๋Š” ๋ชจ๋“  ํ˜•์‹: `feature/123`, `feature/123-์„ค๋ช…`, `feature/123_์„ค๋ช…`
193+
194+
**Q: ์ผ์‹œ์ ์œผ๋กœ ๋ณดํ˜ธ๋ฅผ ์šฐํšŒํ•˜๋ ค๋ฉด?**
195+
A: `--no-verify` ํ”Œ๋ž˜๊ทธ ์‚ฌ์šฉ: `git commit --no-verify -m "๊ธด๊ธ‰ ์ˆ˜์ •"`
196+
197+
## ๋ฌธ์ œ ํ•ด๊ฒฐ
198+
199+
### ํ›…์ด ์‹คํ–‰๋˜์ง€ ์•Š์Œ
200+
201+
1. ํŒŒ์ผ ๊ถŒํ•œ ํ™•์ธ: `ls -la .husky/commit-msg`
202+
2. Husky ์„ค์น˜ ํ™•์ธ: `npx husky install`
203+
204+
### ์„ค์ •์ด ๋กœ๋“œ๋˜์ง€ ์•Š์Œ
205+
206+
1. ํŒŒ์ผ ์ด๋ฆ„ ํ™•์ธ: `.commithelperrc.json` (์ ์œผ๋กœ ์‹œ์ž‘)
207+
2. JSON ๋ฌธ๋ฒ• ๊ฒ€์ฆ
208+
209+
## ๋ผ์ด์„ ์Šค
210+
211+
MIT

0 commit comments

Comments
ย (0)