| name | pr |
| description | Create GitHub pull requests with English titles and structured body content. Use when the user wants to create a PR, open a pull request, merge request, or says "PR ๋ง๋ค์ด์ค", "PR ์์ฑ", "ํ๋ฆฌํ", "pull request". Also trigger when the user finishes work on a branch and says "์ด๊ฑฐ ์ฌ๋ ค์ค" or similar. |
| allowed-tools | Bash, Read, Grep, Glob |
| model | sonnet |
| effort | low |
GitHub PR Creator
ํ์ฌ ๋ธ๋์น์ ๋ณ๊ฒฝ ์ฌํญ์ ๋ถ์ํ์ฌ GitHub pull request๋ฅผ ์์ฑํ๋ค.
์คํ ์ ์ฐจ
-
ํ์ฌ ์ํ๋ฅผ ํ์ธํ๋ค:
git branch --show-current๋ก ํ์ฌ ๋ธ๋์น ํ์ธ
gh repo view --json defaultBranchRef -q '.defaultBranchRef.name'์ผ๋ก ๊ธฐ๋ณธ ๋ธ๋์น ํ์ธ
- ํ์ฌ ๋ธ๋์น๊ฐ ๊ธฐ๋ณธ ๋ธ๋์น์ด๋ฉด ์ฌ์ฉ์์๊ฒ ์๋ฆฌ๊ณ ์ค๋จํ๋ค
-
๋ณ๊ฒฝ ์ฌํญ์ ํ์
ํ๋ค:
git log <base-branch>..HEAD --oneline์ผ๋ก ์ปค๋ฐ ๋ชฉ๋ก ํ์ธ
git diff <base-branch>...HEAD --stat์ผ๋ก ๋ณ๊ฒฝ๋ ํ์ผ ํต๊ณ ํ์ธ
git diff <base-branch>...HEAD๋ก ์ ์ฒด diff ํ์ธ
- ์ปค๋ฐ ๋ฉ์์ง์ diff๋ฅผ ๋ถ์ํ์ฌ ๋ณ๊ฒฝ ๋ด์ฉ์ ํ์
ํ๋ค
-
๊ด๋ จ GitHub ์ด์๋ฅผ ํ์ํ๋ค:
- ์ปค๋ฐ ๋ฉ์์ง์์ ์ด์ ๋ฒํธ ํจํด (#123) ์ ๊ฒ์ํ๋ค
- ๋ํ ๋งฅ๋ฝ์์ ์ฌ์ฉ์๊ฐ ์ธ๊ธํ ์ด์ ๋ฒํธ๋ฅผ ํ์ธํ๋ค
- ์ด์ ๋ฒํธ๊ฐ ์์ผ๋ฉด
gh issue view <๋ฒํธ> --json title,number -q '"\(.number): \(.title)"'๋ก ์ด์ ์ ๋ณด๋ฅผ ํ์ธํ๋ค
- ๋ธ๋์น๋ช
, ์ปค๋ฐ ๋ฉ์์ง, ๋ํ ๋งฅ๋ฝ์์ Jira ์ด์ ํค ํจํด(
PROJECT-123)์ ์ฐพ๋๋ค
- Jira ์ด์ ํค๊ฐ ์์ผ๋ฉด PR ๋ณธ๋ฌธ์ ๊ด๋ จ ์ด์ ์น์
์ ์ถ๊ฐํ๊ณ , ํด๋น Jira ์ฌ์ดํธ URL์ Markdown ๋งํฌ ํ์์ผ๋ก ๋ฃ๋๋ค.
์:
[PROJECT-123](https://jira.example.com/browse/PROJECT-123)
-
PR ๋ด์ฉ์ ์์ฑํ๋ค:
- ์ ๋ชฉ: ์์ด, 70์ ์ด๋ด, ๋์ฌ ์ํ์ผ๋ก ์์ (add, fix, update, refactor ๋ฑ)
- ๋ณธ๋ฌธ: ํ๊ธ๋ก ์์ฑ, ์๋ ํ
ํ๋ฆฟ์ ๊ธฐ๋ฐ์ผ๋ก ์์ฑ
- ๋ณธ๋ฌธ์ URL์ ๋ฃ์ ๋๋ ํ๋ฌธ URL ๋์ Markdown ๋งํฌ ํ์(
[ํ
์คํธ](URL))์ ์ฌ์ฉํ๋ค.
์: [Issue #123](https://github.example.com/org/repo/issues/123)
- ๋ณธ๋ฌธ ์ค ๊ธธ์ด ์ ํ ์์: rumdl MD013 (80์) ๊ฐ์ ์ค ๊ธธ์ด ๊ท์น์ PR ๋ณธ๋ฌธ์ ์ ์ฉํ์ง ์๋๋ค. GitHub UI ๊ฐ ๋ณธ๋ฌธ์ ์๋์ผ๋ก wrap ํ๊ธฐ ๋๋ฌธ์, ์๋ฏธ ๋จ์๋ก ํ ๋จ๋ฝ/ํ bullet ์ ํ ์ค๋ก ์์ฐ์ค๋ฝ๊ฒ ํ๋ ค๋ผ. ํนํ ํ๊ตญ์ด ๋ฌธ์ฅ์ 80์์์ ๊ฐ์ ๋ก ๋์ผ๋ฉด ๊ฐ๋
์ฑ์ด ๋จ์ด์ง๋ค. ๋จ๋ฝ ๊ตฌ๋ถ์ ๋น ์ค๋ก๋ง, bullet ํญ๋ชฉ์ ํ ์ค์ ํ๋์ฉ.
-
์ฌ์ฉ์์๊ฒ ์ ๋ชฉ, ๋ณธ๋ฌธ์ ๋ณด์ฌ์ฃผ๊ณ ํ์ธ์ ๋ฐ๋๋ค. ์ ๋ชฉ๊ณผ ๋ณธ๋ฌธ์ printf์ ANSI ๋
น์(\033[32m ... \033[0m) escape ์ฝ๋๋ฅผ ์์ ํฐ๋ฏธ๋์ ๋
น์์ผ๋ก ์ถ๋ ฅํ๋ค:
printf '\033[32m%s\033[0m\n' "$(cat <<'EOF'
์ ๋ชฉ: ...
๋ณธ๋ฌธ:
...
EOF
)"
-
ํ์ธ ํ remote์ pushํ๊ณ PR์ ์์ฑํ๋ค:
- remote์ ํ์ฌ ๋ธ๋์น๊ฐ ์์ผ๋ฉด
git push -u origin <branch>๋ก push
- PR ์์ฑ:
gh pr create --title "์ ๋ชฉ" --body "๋ณธ๋ฌธ" --assignee @me
-
์์ฑ๋ PR URL์ ์ฌ์ฉ์์๊ฒ ์๋ ค์ค๋ค.
๋ณธ๋ฌธ ํ
ํ๋ฆฟ
๊ด๋ จ ์ด์๊ฐ ์์ผ๋ฉด ๋ณธ๋ฌธ ์ฒซ ์ค์ Closes #์ด์๋ฒํธ๋ฅผ ๋ช
์ํ๋ค. PR ๋จธ์ง ์ ๊ด๋ จ ์ด์๊ฐ ์๋์ผ๋ก ๋ซํ๋ค. ์ด์๊ฐ ์ฌ๋ฌ ๊ฐ์ด๋ฉด ๊ฐ๊ฐ Closes๋ฅผ ๋ถ์ฌ ์ผํ๋ก ๊ตฌ๋ถํ๋ค.
Closes #123
## ๋ณ๊ฒฝ ์ฌํญ
- [๋ณ๊ฒฝ ์ฌํญ 1]
- [๋ณ๊ฒฝ ์ฌํญ 2]
- [๋ณ๊ฒฝ ์ฌํญ 3]
์ปค๋ฐ์ด ๋ง๊ฑฐ๋ ๋ณ๊ฒฝ์ด ๋ณต์กํ๋ฉด ์นดํ
๊ณ ๋ฆฌ๋ณ๋ก ๊ทธ๋ฃนํํ๋ค:
Closes #123, Closes #456
## ๋ณ๊ฒฝ ์ฌํญ
### ๊ธฐ๋ฅ ์ถ๊ฐ
- [์ ๊ธฐ๋ฅ ์ค๋ช
]
### ๋ฒ๊ทธ ์์
- [๋ฒ๊ทธ ์์ ์ค๋ช
]
### ๋ฆฌํฉํ ๋ง
- [๋ฆฌํฉํ ๋ง ์ค๋ช
]
๊ด๋ จ ์ด์๊ฐ ์์ผ๋ฉด #์ด์๋ฒํธ ์ค์ ์๋ตํ๊ณ ๋ณ๊ฒฝ ์ฌํญ ์น์
๋ถํฐ ์์ํ๋ค.
์ฃผ์์ฌํญ
- PR ์์ฑ ์ ๋ฐ๋์ ์ฌ์ฉ์ ํ์ธ์ ๋ฐ๋๋ค
- ๋ณธ๋ฌธ์ ๋ฏผ๊ฐํ ์ ๋ณด(๋น๋ฐ๋ฒํธ, ํ ํฐ ๋ฑ)๊ฐ ํฌํจ๋์ง ์๋๋ก ์ฃผ์ํ๋ค
- push๋ PR ์์ฑ์ ํ์ํ ๊ฒฝ์ฐ์๋ง ์ํํ๋ฉฐ, force push๋ ํ์ง ์๋๋ค
- base ๋ธ๋์น๋ ๊ธฐ๋ณธ ๋ธ๋์น๋ฅผ ์ฌ์ฉํ๋, ์ฌ์ฉ์๊ฐ ๋ค๋ฅธ ๋ธ๋์น๋ฅผ ์ง์ ํ๋ฉด ๊ทธ์ ๋ฐ๋ฅธ๋ค