انتقل إلى المحتوى

Permissions

تُدار الصلاحيات في ليڤانت غيت (LevantGit) على مستويين: الـ units، أي أجزاء الـ repository مثل Code و Issues و Wiki، ومستوى الوصول لكل unit: read أو write أو admin. في الـ repository الشخصي تمنح المستوى لكل collaborator على حدة، وفي الـ organization تمنحه عبر الـ teams، بصلاحية مستقلة لكل unit.

الـ units

كل repository مقسوم إلى أجزاء فرعية تسمّى units؛ هي التبويبات التي تراها في أعلى صفحة الـ repository تقريبًا. لكل unit مستوى وصول خاص بها، ويمكنك تعطيل بعضها من Settings إن لم تحتج إليها.

الـ unit الوصف المستويات المتاحة
Code الكود: الملفات والـ commits والـ branches read، write
Issues تقارير الأخطاء والمهام والـ milestones read، write
Pull Requests الـ pull requests ومراجعة الكود read، write
Releases الإصدارات وملفات التنزيل read، write
Wiki صفحات تكتبها وتشاركها مع الـ collaborators read، write
ExternalWiki رابط إلى wiki خارجي read
ExternalTracker رابط إلى متتبّع issues خارجي read
Projects لوحات المشاريع read، write
Packages الـ packages المرتبطة بهذا الـ repository read، write
Actions سجلات التشغيل وإعادة التشغيل أو الإلغاء read، write
Settings إعدادات الـ repository admin

ماذا يتيح كل مستوى؟

ثلاثة مستويات أساسية: read وwrite وadmin. المستوى الأعلى يشمل ما تحته دائمًا.

الـ unit read write admin
Code تصفّح الملفات والـ commits والـ branches، وتنفيذ clone تنفيذ push بالكود -
Issues عرض الـ issues وفتح issues جديدة إضافة labels، تعيين assignees، إغلاق الـ issues -
Pull Requests عرض الـ pull requests وفتح طلبات جديدة إضافة labels، تعيين assignees، إغلاق الطلبات -
Releases عرض الإصدارات وتنزيل الملفات إنشاء الإصدارات وتعديلها -
Wiki عرض صفحات الـ wiki وتنفيذ clone لـ repository الـ wiki إنشاء الصفحات وتعديلها وتنفيذ push إليها -
ExternalWiki فتح رابط الـ wiki الخارجي - -
ExternalTracker فتح رابط المتتبّع الخارجي - -
Projects عرض أعمدة اللوحات نقل الـ issues بين الأعمدة -
Packages عرض الـ packages رفع الـ packages وحذفها -
Actions عرض سجلات التشغيل الموافقة، الإلغاء، إعادة التشغيل -
Settings - - إدارة الـ repository كاملًا

ملاحظة

صلاحية write على الكود لا تعني بالضرورة أنك تستطيع تنفيذ push إلى أي branch. إن كان الـ branch protected فقواعد الحماية هي التي تحسم؛ راجع Protected branches.

الـ repository الشخصي

في الـ repository الذي تنشئه تحت حسابك أنت الـ owner الوحيد: تستطيع تغيير أي شيء فيه، ونقله إلى حساب آخر، أو حذفه. ولتتعاون مع غيرك تضيف collaborators من SettingsCollaborators، وتمنح كل واحد منهم مستوى: read أو write أو admin.

ماذا يرى الـ collaborator؟

  • بمستوى read على repository خاص (private)، يرى ما يراه أي زائر لـ repository عام: ينفّذ clone للكود، ويفتح الـ issues ويعلّق عليها، ويرسل pull requests.
  • بمستوى write يستطيع فوق ذلك تنفيذ push إلى الـ branches (ضمن ما تسمح به قواعد الحماية) وتعديل صفحات الـ wiki.
  • بمستوى admin يستطيع تعديل إعدادات الـ repository.

لكن حذف الـ repository أو نقله يبقى حقًّا للـ owner وحده، مهما كان مستوى الـ collaborator.

repositories الـ organization

في الـ organization لا يوجد owner فرد؛ الـ owners هم أعضاء فريق Owners، وكل الـ permissions الأخرى تُدار عبر الـ teams. يمكن للعضو الواحد أن ينتمي إلى أكثر من team.

فريق Owners

يُنشأ تلقائيًا مع إنشاء الـ organization، ويكون منشئها أول أعضائه. لا يمكن حذف هذا الـ team، ويجب أن يبقى فيه عضو واحد على الأقل. أعضاؤه يستطيعون كل شيء في الـ organization و repositories التابعة لها.

team الإدارة

عند إنشاء team جديد تختار بين نوعين: Administrator أو team عادي. team الإدارة يُكلَّف بـ repositories معيّنة (أو بكلها) ويستطيع أعضاؤه فعل أي شيء فيها. إنشاء الـ teams الجديدة محصور بأعضاء فريق Owners و teams الإدارة.

الـ team العادي

الـ team العادي هو الأكثر مرونة: تحدّد له صلاحية لكل unit على حدة (read أو write أو لا شيء)، وتحدّد نطاقه:

  • إمّا أن يصل إلى كل repositories الـ organization، أو إلى repositories محدّدة تختارها.
  • ويمكنك أن تسمح له بـإنشاء repositories جديدة في الـ organization أو تمنعه.

مثال عملي: team «المراجعون» بصلاحية write على الـ issues والـ pull requests فقط، و read على الكود؛ و team «المطوّرون» بصلاحية write على كل شيء.

مقارنة سريعة

repository شخصي repository organization
الـ owner مستخدم واحد أعضاء فريق Owners
كيف تمنح الـ permissions collaborator بعد collaborator عبر الـ teams
صلاحية لكل unit لا (مستوى واحد للـ collaborator) نعم (للـ team العادي)
حذف الـ repository أو نقله الـ owner فقط فريق Owners

أسئلة شائعة

ما الفرق بين read و write و admin في ليڤانت غيت؟

مستوى read يتيح تصفّح الكود وتنفيذ clone وفتح الـ issues والتعليق. ويضيف مستوى write تنفيذ push وإغلاق الـ issues وتعديل الـ wiki وإنشاء الإصدارات. ويضيف مستوى admin إعدادات الـ repository كاملة. والمستوى الأعلى يشمل ما تحته دائمًا، لكن حذف الـ repository أو نقله يبقى حقًّا للـ owner وحده.

كيف أضيف collaborator إلى repository؟

افتح الـ repository ثم SettingsCollaborators، واكتب اسم المستخدم واختر له مستوى: read أو write أو admin. يستطيع بعدها العمل في الـ repository حتى لو كان private، ضمن ما يسمح به مستواه وقواعد حماية الـ branches. ولإزالته احذفه من القائمة نفسها في أي وقت.

ما الفرق بين صلاحيات الـ repository الشخصي و repositories الـ organization؟

في الـ repository الشخصي أنت الـ owner الوحيد، وتمنح كل collaborator مستوى واحدًا يشمل كل الـ units. أمّا في الـ organization فلا owner فرد؛ الـ owners هم أعضاء فريق Owners، وتُمنح الصلاحيات عبر الـ teams، ويمكن تحديد read أو write لكل unit على حدة ولكل مجموعة repositories.

لماذا لا أستطيع تنفيذ push رغم أن لي صلاحية write؟

غالبًا لأن الـ branch محمي. قواعد الـ protected branches تسبق مستوى الصلاحية: قد يكون الـ push المباشر معطّلًا على main، أو محصورًا بقائمة مسموح بها، أو مشروطًا بعدد approvals قبل الـ merge. راجع SettingsBranches في الـ repository، أو مرّر تغييرك عبر pull request.

ماذا بعد؟

  • Protected branches لتقييد الـ push والـ merge على branches مهمة.
  • Protected tags لتحديد من يستطيع إنشاء الـ tags.
  • CODEOWNERS لطلب review من أشخاص محدّدين تلقائيًا.

هذه الصفحة مبنية على وثائق Gitea (رخصة MIT) بعد ترجمتها وتبسيطها.