[awesome-claude-code] PR ์์ฑ (๊ฐํธ)
์ด ์ปค๋งจ๋๋ ๋ธ๋์น ์์ฑ๋ถํฐ ์ปค๋ฐ ๋ถํ , ํธ์, Pull Request ์ ์ถ๊น์ง ํ ๋ฒ์ ์ฒ๋ฆฌํ๋ ๊ฐํธํ PR ์์ฑ ๋๊ตฌ์ ๋๋ค.
๐ ์ฐธ๊ณ : ์ด ๋ฌธ์๋ awesome Claude Code ๋ฌธ์์ ์๋ฌธ + ๋ ํผ๋ฐ์ค์ ๋๋ค.
- ์๋ฌธ ๋งํฌ๋ฅผ ์ง์ ์ฌ์ฉํ์ ๋ ๋ฉ๋๋ค
- ์ด ํ์ผ์
.claude/skills/ํ์์ ๋ณต์ฌํ์ฌ ์คํฌ๋ก ๋ฑ๋กํ ์๋ ์์ต๋๋ค(2026.03.15 ๊ธฐ์ค)
GitHub CLI๋ฅผ ์ฌ์ฉํ์ฌ Pull Request ์์ฑํ๋ ๋ฐฉ๋ฒ
์ด ๊ฐ์ด๋๋ ํ๋ก์ ํธ์์ GitHub CLI๋ฅผ ์ฌ์ฉํ์ฌ Pull Request๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ ์ค๋ช ํฉ๋๋ค.
์ค์: ๋ชจ๋ PR ์ ๋ชฉ๊ณผ ์ค๋ช ์ ์์ด๋ก ์์ฑํด์ผ ํฉ๋๋ค.
์ฌ์ ์๊ตฌ์ฌํญ
-
GitHub CLI๊ฐ ์ค์น๋์ด ์์ง ์๋ค๋ฉด ์ค์นํฉ๋๋ค:
# macOS brew install gh # Windows winget install --id GitHub.cli # Linux # https://github.com/cli/cli/blob/trunk/docs/install_linux.md ์ ์๋ด๋ฅผ ๋ฐ๋ฅด์ธ์ -
GitHub ์ธ์ฆ์ ์ํํฉ๋๋ค:
gh auth login
์ Pull Request ์์ฑํ๊ธฐ
-
๋จผ์ @.github/pull_request_template.md ์ ํ ํ๋ฆฟ์ ์ฐธ๊ณ ํ์ฌ PR ์ค๋ช ์ ์ค๋นํฉ๋๋ค.
-
gh pr create --draft๋ช ๋ น์ด๋ฅผ ์ฌ์ฉํ์ฌ ์ Pull Request๋ฅผ ์์ฑํฉ๋๋ค:# ๊ธฐ๋ณธ ๋ช ๋ น์ด ๊ตฌ์กฐ gh pr create --draft --title "โจ(scope): Your descriptive title" --body "Your PR description" --base main๋ ๋ณต์กํ PR ์ค๋ช ์ ์ ์ ํ ํฌ๋งท์ผ๋ก ์์ฑํ๋ ค๋ฉด, ์ ํํ PR ํ ํ๋ฆฟ ๊ตฌ์กฐ์ ํจ๊ป
--body-file์ต์ ์ ์ฌ์ฉํฉ๋๋ค:# ์ ์ ํ ํ ํ๋ฆฟ ๊ตฌ์กฐ๋ก PR ์์ฑ gh pr create --draft --title "โจ(scope): Your descriptive title" --body-file .github/pull_request_template.md --base main
๋ชจ๋ฒ ์ฌ๋ก
-
์ธ์ด: PR ์ ๋ชฉ๊ณผ ์ค๋ช ์๋ ํญ์ ์์ด๋ฅผ ์ฌ์ฉํฉ๋๋ค
-
PR ์ ๋ชฉ ํ์: ์ด๋ชจ์ง์ ํจ๊ป Conventional Commit ํ์์ ์ฌ์ฉํฉ๋๋ค
- ํญ์ ์ ๋ชฉ ์์ ์ ์ ํ ์ด๋ชจ์ง๋ฅผ ํฌํจํฉ๋๋ค
- ์ค์ ์ด๋ชจ์ง ๋ฌธ์๋ฅผ ์ฌ์ฉํฉ๋๋ค (
:sparkles:๊ฐ์ ์ฝ๋ ํํ์ด ์๋) - ์์:
โจ(supabase): Add staging remote configuration๐(auth): Fix login redirect issue๐(readme): Update installation instructions
-
์ค๋ช ํ ํ๋ฆฟ: ํญ์ @.github/pull_request_template.md ์ PR ํ ํ๋ฆฟ ๊ตฌ์กฐ๋ฅผ ์ฌ์ฉํฉ๋๋ค
-
ํ ํ๋ฆฟ ์ ํ์ฑ: PR ์ค๋ช ์ด ํ ํ๋ฆฟ ๊ตฌ์กฐ๋ฅผ ์ ํํ ๋ฐ๋ฅด๋์ง ํ์ธํฉ๋๋ค:
- PR-Agent ์น์
(
pr_agent:summary๋ฐpr_agent:walkthrough)์ ์์ ํ๊ฑฐ๋ ์ด๋ฆ์ ๋ณ๊ฒฝํ์ง ๋ง์ธ์ - ๋ชจ๋ ์น์ ํค๋๋ฅผ ํ ํ๋ฆฟ์ ๋ํ๋ ๊ทธ๋๋ก ์ ์งํฉ๋๋ค
- ํ ํ๋ฆฟ์ ์๋ ์ปค์คํ ์น์ ์ ์ถ๊ฐํ์ง ๋ง์ธ์
- PR-Agent ์น์
(
-
Draft PR: ์์ ์ด ์งํ ์ค์ผ ๋๋ Draft๋ก ์์ํฉ๋๋ค
- ๋ช
๋ น์ด์
--draftํ๋๊ทธ๋ฅผ ์ฌ์ฉํฉ๋๋ค - ์๋ฃ๋๋ฉด
gh pr ready๋ฅผ ์ฌ์ฉํ์ฌ ๋ฆฌ๋ทฐ ์ค๋น ์ํ๋ก ์ ํํฉ๋๋ค
- ๋ช
๋ น์ด์
ํํ ์ค์ ํผํ๊ธฐ
- ์์ด ์ด์ธ์ ํ ์คํธ ์ฌ์ฉ: ๋ชจ๋ PR ๋ด์ฉ์ ์์ด๋ก ์์ฑํด์ผ ํฉ๋๋ค
- ์๋ชป๋ ์น์ ํค๋: ํญ์ ํ ํ๋ฆฟ์ ์ ํํ ์น์ ํค๋๋ฅผ ์ฌ์ฉํ์ธ์
- ์ปค์คํ ์น์ ์ถ๊ฐ: ํ ํ๋ฆฟ์ ์ ์๋ ์น์ ๋ง ์ฌ์ฉํ์ธ์
- ์ค๋๋ ํ ํ๋ฆฟ ์ฌ์ฉ: ํญ์ ํ์ฌ์ @.github/pull_request_template.md ํ์ผ์ ์ฐธ์กฐํ์ธ์
๋๋ฝ๋ ์น์
์ผ๋ถ๊ฐ "N/A" ๋๋ "None"์ผ๋ก ํ์๋๋๋ผ๋ ํญ์ ๋ชจ๋ ํ ํ๋ฆฟ ์น์ ์ ํฌํจํ์ธ์.
์ถ๊ฐ GitHub CLI PR ๋ช ๋ น์ด
PR ๊ด๋ฆฌ์ ์ ์ฉํ ์ถ๊ฐ GitHub CLI ๋ช ๋ น์ด๋ค์ ๋๋ค:
# ๋ด๊ฐ ์์ฑํ ์ด๋ฆฐ Pull Request ๋ชฉ๋ก ๋ณด๊ธฐ
gh pr list --author "@me"
# PR ์ํ ํ์ธ
gh pr status
# ํน์ PR ๋ณด๊ธฐ
gh pr view <PR-NUMBER>
# PR ๋ธ๋์น๋ฅผ ๋ก์ปฌ์ ์ฒดํฌ์์
gh pr checkout <PR-NUMBER>
# Draft PR์ ๋ฆฌ๋ทฐ ์ค๋น ์ํ๋ก ์ ํ
gh pr ready <PR-NUMBER>
# PR์ ๋ฆฌ๋ทฐ์ด ์ถ๊ฐ
gh pr edit <PR-NUMBER> --add-reviewer username1,username2
# PR ๋ณํฉ
gh pr merge <PR-NUMBER> --squash
PR ์์ฑ ์ ํ ํ๋ฆฟ ์ฌ์ฉํ๊ธฐ
์ผ๊ด๋ ์ค๋ช ์ผ๋ก PR ์์ฑ์ ๊ฐ์ํํ๋ ค๋ฉด ํ ํ๋ฆฟ ํ์ผ์ ๋ง๋ค ์ ์์ต๋๋ค:
- PR ํ
ํ๋ฆฟ์ผ๋ก
pr-template.mdํ์ผ์ ์์ฑํฉ๋๋ค - PR ์์ฑ ์ ํด๋น ํ์ผ์ ์ฌ์ฉํฉ๋๋ค:
gh pr create --draft --title "feat(scope): Your title" --body-file pr-template.md --base main