gh برنامهٔ رسمی GitHub برای ترمینال است. با آن میتوانی بدون باز کردن مرورگر ریپو بسازی، PR باز کنی، و وضعیت Actions را ببینی.
🎯 اهداف یادگیری
- با
ghچرخهٔ کامل PR را طی کنی - Issue و Release بسازی
- خروجی را با
--jsonوjqاسکریپت کنی - از
gh apiبرای چیزهایی که فرمان آماده ندارند استفاده کنی
⚙️ ورود و پیشفرض
gh auth login gh auth setup-git # credential helper gh config set editor "code --wait" gh alias set pv "pr view --web"
🔁 چرخهٔ PR
gh pr checkout 42 gh pr status gh pr checks gh pr diff gh pr comment --body "nit: نام تابع را rotateTokens بگذار" gh pr merge 42 --squash --delete-branch gh pr list --author "@me" --state open
gh pr create --fill از عنوان کامیتها بدنه میسازد — بعد دستی ویرایش کن.
🎫 Issue و پروژه
gh issue create -t "PDF build fails on Windows" -b "steps..." -l bug gh issue develop 18 --checkout # شاخه از روی issue gh issue close 18 --reason completed
🚀 Release و Actions
gh release create v1.0.0 --generate-notes --title "v1.0.0" gh run list --branch main gh run watch gh run view --log-failed
🧪 اسکریپتسازی
gh pr list --json number,title,reviewDecision,statusCheckRollup gh api repos/:owner/:repo/actions/runs --jq '.workflow_runs[0].html_url' gh api -X PUT repos/:owner/:repo/actions/permissions -f enabled=true
gh cs create / gh cs ssh محیط ابری را بدون UI میسازد — مفید وقتی لپتاپ ضعیف است یا از موبایل فقط ترمینال داری.
در VS Code ترمینال یکپارچه همان gh را اجرا میکند؛ افزونهٔ PR و CLI مکملاند نه رقیب.
Junior — gh جایگزین git است؟ خیر. git تاریخچه؛ gh API گیتهاب.
Mid — --json چرا مهم است؟ خروجی انسانی ناپایدار است؛ JSON برای CI پایدار است.
Senior — app token در برابر user token؟ GitHub App برای ربات و Actions امنتر است؛ least privilege و audit بهتر.
✅ چکلیست فهم
- PR را بدون مرورگر merge کردهای
gh run watchرا دیدهای- یک
aliasشخصی ساختهای
فصل بعد: Issues، Projects و Discussions.