Git 2026

فصل ۲۰ · Issues و Projects

Issues، Projects و Discussions — کار تیمی روی GitHub

Issue برای ثبت باگ و کار است، Project برای برد کارهای تیم، Discussion برای سؤال باز. این‌ها روی GitHub زندگی می‌کنند، نه داخل پوشهٔ .git.

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

  • Issue خوب بنویسی (بازتولید، انتظار، واقعیت)
  • برچسب، مایل‌استون و قالب را بچینی
  • GitHub Projects v2 را به PR وصل کنی
  • بدانی Discussion کی بهتر از Issue است

🐞 آناتومی Issue

.github/ISSUE_TEMPLATE/bug.yml — ایده
## شرح
## گام بازتولید
## انتظار
## واقعیت
## نسخه / محیط
## لاگ

قانون: یک Issue = یک مشکل. «همچنین این را هم درست کنید» را Issue جدا کن و لینک بده (blocked by #12).

کلیدواژه‌های جادویی در PR:

  • Fixes #12 — با merge، Issue بسته می‌شود
  • Refs #12 — فقط لینک

🏷️ لیبل‌های مفید

bug، feat، docs، good first issue، help wanted، security، wontfix. رنگ مهم نیست؛ قرارداد مهم است.

📊 Projects v2

Projects جدید روی جدول/بورد/زمان‌بندی است و فیلد سفارشی دارد (تخمین، ناحیه). می‌توانی با Actions وقتی PR باز شد کارت بسازی.

ایدهٔ اتوماسیون
# در workflow: gh project item-add

در سازمان‌ها Projects جایگزین Trello داخلی می‌شود چون به commit و PR وصل است.

💬 Discussions در برابر Issues

Discussions Issues
سؤال باز ✓ ضعیف
باگ مشخص ✓
RFC / ایده ✓ گاهی
قابل بستن با PR ✓
Security advisory

آسیب‌پذیری را Issue عمومی نکن. Security → Advisories یا SECURITY.md. افشای مسئولانه اعتبار می‌سازد.

سؤالات مصاحبه (با پاسخ)

Junior — Fixes #n کجا کار می‌کند؟ در پیام کامیت پیش‌فرض شاخه یا بدنهٔ PR، وقتی به همان ریپو merge شود.

Senior — Projects v2 داده را کجا نگه می‌دارد؟ جدا از Issue؛ GraphQL API. Issue می‌تواند در چند Project باشد.

✅ چک‌لیست فهم

  • قالب Issue داری
  • Fixes # را امتحان کرده‌ای
  • Discussion را برای سؤال باز نگه می‌داری

فصل بعد: استراتژی شاخه‌بندی — GitHub Flow و دوستان.

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