دسترسی‌ها (Permissions)

گیتی‌یار کنترل دسترسی دقیق در سطوح مختلف ارائه می‌دهد: مخزن، تیم و سازمان. درک دسترسی‌ها برای حفظ امنیت و در عین حال امکان همکاری ضروری است.

سطوح دسترسی

سطح مخزن

دسترسی خواندن

  • مشاهده محتوای مخزن
  • Clone مخزن
  • مشاهده مسائل و درخواست‌های تغییر
  • کامنت‌گذاری روی مسائل و PR ها
  • مشاهده ویکی
  • دانلود انتشارها

دسترسی نوشتن

  • تمام دسترسی‌های خواندن
  • Push به مخزن
  • ایجاد و مدیریت branch ها
  • ایجاد و مدیریت مسائل
  • ایجاد و مدیریت درخواست‌های تغییر
  • افزودن برچسب‌ها و نقاط عطف
  • ویرایش صفحات ویکی
  • مدیریت انتشارها

دسترسی مدیریت

  • تمام دسترسی‌های نوشتن
  • تغییر تنظیمات مخزن
  • مدیریت همکاران
  • حذف مخزن
  • انتقال مالکیت
  • مدیریت وب‌هوک‌ها
  • مدیریت Git hooks
  • فعال/غیرفعال کردن ویژگی‌ها (ویکی، مسائل و غیره)
  • مدیریت کلیدهای استقرار

سطح سازمان

مالک

  • کنترل کامل روی سازمان
  • مدیریت تنظیمات سازمان
  • ایجاد و حذف مخازن
  • مدیریت تمام تیم‌ها
  • افزودن و حذف اعضا
  • مدیریت هزینه‌های سازمان (در صورت کاربرد)

عضو

  • دسترسی به مخازن تیم تخصیص‌یافته
  • ایجاد مخازن (اگر مجاز باشد)
  • مشارکت در تیم‌ها
  • مشاهده صفحه سازمان

تنظیم دسترسی‌ها

مخزن فردی

  1. به تنظیمات مخزن بروید
  2. روی "همکاری" کلیک کنید
  3. کاربر را جستجو کنید
  4. سطح دسترسی را انتخاب کنید:
    • خواندن
    • نوشتن
    • مدیریت
  5. روی "افزودن" کلیک کنید

از طریق تیم‌ها

  1. به تیم‌های سازمان بروید
  2. تیم را انتخاب یا ایجاد کنید
  3. سطح دسترسی تیم را تنظیم کنید
  4. اعضا را به تیم اضافه کنید
  5. دسترسی مخزن را به تیم اعطا کنید

تنظیمات سازمان

ایجاد مخزن:

  • اجازه به تمام اعضا برای ایجاد مخازن
  • محدود کردن به فقط مالکان

ایجاد تیم:

  • اجازه به تمام اعضا برای ایجاد تیم‌ها
  • محدود کردن به فقط مالکان

دسترسی‌های ویژه

محافظت Branch

محافظت از branch های مهم (مثل main):

  1. به تنظیماتBranch ها بروید
  2. قانون محافظت branch اضافه کنید
  3. پیکربندی:
    • نیاز به بررسی درخواست تغییر
    • نیاز به بررسی‌های وضعیت
    • نیاز به commit های امضاشده
    • محدود کردن کسانی که می‌توانند push کنند

کلیدهای استقرار

اجازه دسترسی خواندن یا خواندن-نوشتن برای استقرار:

  1. به تنظیماتکلیدهای استقرار بروید
  2. روی "افزودن کلید استقرار" کلیک کنید
  3. کلید عمومی SSH را اضافه کنید
  4. انتخاب کنید:
    • فقط خواندن: می‌تواند فقط pull کند
    • خواندن-نوشتن: می‌تواند push و pull کند

توکن‌های دسترسی شخصی

دسترسی دقیق برای دسترسی API:

  • read:user - خواندن نمایه کاربر
  • write:user - تغییر نمایه کاربر
  • read:repo - خواندن مخزن
  • write:repo - تغییر مخزن
  • delete:repo - حذف مخزن
  • read:org - خواندن سازمان
  • write:org - تغییر سازمان

ارث‌بری دسترسی

سلسله مراتب

سازمان
  └─ تیم
      └─ مخزن
          └─ فردی

قوانین

  • دسترسی‌های فردی دسترسی‌های تیم را لغو می‌کنند
  • دسترسی‌های تیم برای تمام اعضای تیم اعمال می‌شوند
  • مالکان سازمان دسترسی مدیریت به تمام مخازن دارند
  • محدودکننده‌ترین دسترسی زمانی اعمال می‌شود که چندین منبع وجود دارد

بهترین شیوه‌ها

امنیت

  • ✅ اصل حداقل امتیاز
  • ✅ حسابرسی منظم دسترسی‌ها
  • ✅ حذف دسترسی وقتی دیگر لازم نیست
  • ✅ استفاده از تیم‌ها به جای دسترسی‌های فردی
  • ✅ فعال‌سازی محافظت branch برای branch های اصلی
  • ✅ نیاز به بررسی PR برای تغییرات مهم

همکاری

  • ✅ ساختار دسترسی را مستند کنید
  • ✅ ایجاد تیم‌ها بر اساس عملکرد یا پروژه
  • ✅ استفاده از دسترسی خواندن برای مشارکت‌کنندگان خارجی
  • ✅ استفاده از دسترسی نوشتن برای توسعه‌دهندگان قابل اعتماد
  • ✅ ذخیره مدیریت برای نگهدارندگان مخزن

مدیریت سازمان

  • ✅ محدود کردن تعداد مالکان سازمان
  • ✅ بررسی عضویت تیم‌ها هر سه ماه
  • ✅ بایگانی مخازن غیرفعال
  • ✅ مستند کردن خط‌مشی‌های دسترسی
  • ✅ آموزش اعضای تیم درباره دسترسی‌ها

عیب‌یابی

مسائل رایج

"Permission Denied" هنگام push:

  • بررسی کنید دسترسی نوشتن یا مدیریت دارید
  • اعتبارنامه صحیح را تأیید کنید
  • بررسی کنید branch محافظت‌شده است

نمی‌توانم مخزن را ببینم:

  • تأیید کنید به عنوان همکار اضافه شده‌اید
  • عضویت تیم را بررسی کنید
  • از مالک سازمان دسترسی بخواهید

نمی‌توانم مخزن را حذف کنم:

  • فقط مدیریت یا مالک می‌تواند حذف کند
  • بررسی کنید مخزن متعلق به سازمان است

نمی‌توانم همکار اضافه کنم:

  • نیاز به دسترسی مدیریت به مخزن دارید
  • مالکان سازمان می‌توانند به هر مخزنی اضافه کنند

مراحل بعدی