دسترسیها (Permissions)
گیتییار کنترل دسترسی دقیق در سطوح مختلف ارائه میدهد: مخزن، تیم و سازمان. درک دسترسیها برای حفظ امنیت و در عین حال امکان همکاری ضروری است.
سطوح دسترسی
سطح مخزن
دسترسی خواندن
- مشاهده محتوای مخزن
- Clone مخزن
- مشاهده مسائل و درخواستهای تغییر
- کامنتگذاری روی مسائل و PR ها
- مشاهده ویکی
- دانلود انتشارها
دسترسی نوشتن
- تمام دسترسیهای خواندن
- Push به مخزن
- ایجاد و مدیریت branch ها
- ایجاد و مدیریت مسائل
- ایجاد و مدیریت درخواستهای تغییر
- افزودن برچسبها و نقاط عطف
- ویرایش صفحات ویکی
- مدیریت انتشارها
دسترسی مدیریت
- تمام دسترسیهای نوشتن
- تغییر تنظیمات مخزن
- مدیریت همکاران
- حذف مخزن
- انتقال مالکیت
- مدیریت وبهوکها
- مدیریت Git hooks
- فعال/غیرفعال کردن ویژگیها (ویکی، مسائل و غیره)
- مدیریت کلیدهای استقرار
سطح سازمان
مالک
- کنترل کامل روی سازمان
- مدیریت تنظیمات سازمان
- ایجاد و حذف مخازن
- مدیریت تمام تیمها
- افزودن و حذف اعضا
- مدیریت هزینههای سازمان (در صورت کاربرد)
عضو
- دسترسی به مخازن تیم تخصیصیافته
- ایجاد مخازن (اگر مجاز باشد)
- مشارکت در تیمها
- مشاهده صفحه سازمان
تنظیم دسترسیها
مخزن فردی
- به تنظیمات مخزن بروید
- روی "همکاری" کلیک کنید
- کاربر را جستجو کنید
- سطح دسترسی را انتخاب کنید:
- روی "افزودن" کلیک کنید
از طریق تیمها
- به تیمهای سازمان بروید
- تیم را انتخاب یا ایجاد کنید
- سطح دسترسی تیم را تنظیم کنید
- اعضا را به تیم اضافه کنید
- دسترسی مخزن را به تیم اعطا کنید
تنظیمات سازمان
ایجاد مخزن:
- اجازه به تمام اعضا برای ایجاد مخازن
- محدود کردن به فقط مالکان
ایجاد تیم:
- اجازه به تمام اعضا برای ایجاد تیمها
- محدود کردن به فقط مالکان
دسترسیهای ویژه
محافظت Branch
محافظت از branch های مهم (مثل main):
- به تنظیمات → Branch ها بروید
- قانون محافظت branch اضافه کنید
- پیکربندی:
- نیاز به بررسی درخواست تغییر
- نیاز به بررسیهای وضعیت
- نیاز به commit های امضاشده
- محدود کردن کسانی که میتوانند push کنند
کلیدهای استقرار
اجازه دسترسی خواندن یا خواندن-نوشتن برای استقرار:
- به تنظیمات → کلیدهای استقرار بروید
- روی "افزودن کلید استقرار" کلیک کنید
- کلید عمومی SSH را اضافه کنید
- انتخاب کنید:
- فقط خواندن: میتواند فقط 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 محافظتشده است
نمیتوانم مخزن را ببینم:
- تأیید کنید به عنوان همکار اضافه شدهاید
- عضویت تیم را بررسی کنید
- از مالک سازمان دسترسی بخواهید
نمیتوانم مخزن را حذف کنم:
- فقط مدیریت یا مالک میتواند حذف کند
- بررسی کنید مخزن متعلق به سازمان است
نمیتوانم همکار اضافه کنم:
- نیاز به دسترسی مدیریت به مخزن دارید
- مالکان سازمان میتوانند به هر مخزنی اضافه کنند
مراحل بعدی