Git 2026

فصل ۱۹ · GitHub CLI

GitHub CLI — gh به‌جای کلیک اضافه

gh برنامهٔ رسمی GitHub برای ترمینال است. با آن می‌توانی بدون باز کردن مرورگر ریپو بسازی، PR باز کنی، و وضعیت Actions را ببینی.

🎯 اهداف یادگیری

  • با gh چرخهٔ کامل PR را طی کنی
  • Issue و Release بسازی
  • خروجی را با --json و jq اسکریپت کنی
  • از gh api برای چیزهایی که فرمان آماده ندارند استفاده کنی

⚙️ ورود و پیش‌فرض

auth و تنظیم
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 و پروژه

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

عرضه و CI
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

🧪 اسکریپت‌سازی

JSON
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
Codespaces و CLI

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.

فصل ۱۹ از ۳۶ · مرجع جامع و حرفه‌ای Git و GitHub · ویرایش 1.0.0