مستودعات Git

ربط GitHub أو GitLab، وتحديد من في المؤسّسة يجوز له البناء من مستودعاتك، وما يحدث حين تغادر.

تُبنى التطبيقات من مستودعات يُوصَل إليها عبر حساب GitHub أو GitLab ربطه أحد أعضاء مؤسّستك. وكل استنساخ تجريه المنصّة يمرّ عبر بيانات اعتماد ذلك الحساب. لذا فإن الشخص الذي ربط الحساب هو من يقرّر من غيره يجوز له البناء من مستودعاته، لا مسؤولو المؤسّسة.

ربط حساب

يربط كل عضو حسابه الخاص، من صفحة Integrations (التكاملات) في وحدة التحكّم. يستطيع المطوّرون فعل ذلك؛ ولا يحتاج الأمر إلى مسؤول.

GitHub. تثبّت تطبيق ISOGrid على GitHub في حسابك أو في مؤسّسة GitHub تديرها، وتختار المستودعات التي يجوز له قراءتها. ولا يظهر للمنصّة إلا تلك المستودعات. ويمكنك توسيع الاختيار لاحقًا في GitHub.

GitLab. تسجّل الدخول إلى GitLab وتوافق على الوصول، أو تلصق رمز وصول لمجموعة أو مشروع أو رمز وصول شخصيًا. وتعمل نسخ GitLab المستضافة ذاتيًا بالطريقة نفسها، بما في ذلك المشاريع داخل مجموعات متداخلة.

بعد الربط، تظهر مستودعاتك في وحدة التحكّم وفي isogrid repos list، وأنت مالكها.

لا تربط إلا ما تنوي نشره. اختيار بضعة مستودعات في GitHub لا يكلّف شيئًا، ويعني أن أي خطأ هنا لا يكشف شيئًا آخر.

من يستطيع الوصول إلى مستودع

لكل مستودع درجة ظهور.

درجة الظهور من يستطيع استخدامه
Private (خاص) أنت، ومن تدعوه. لا أحد غيركم، ولا حتى مالك المؤسّسة.
Administrators (المسؤولون) إضافةً إلى مالك المؤسّسة ومسؤوليها.
Organization (المؤسّسة) إضافةً إلى كل عضو، بالقدرات التي اخترتها.

تُضاف الدعوات إلى أيّ من الثلاث: فالمستودع الخاص يمكن مع ذلك منحه لمتعاقد واحد أو لمجموعة واحدة.

تحت Administrators وOrganization، يملك المالك والمسؤولون كل شيء على المستودع باستثناء تحديد من يدخل أيضًا. فذلك يبقى لك.

تحت Organization، يملك كل عضو ما اخترته. وما لم تختر غير ذلك، فهو: رؤيته، وإنشاء تطبيقات منه، وبناؤها ونشرها، وتعديل إعداداتها. دون حذف تطبيقات بناها آخرون منه، ودون مشاركته مع غيرهم.

المستودع الخاص ليس مخفيًا من القوائم فحسب. فهو لا يستجيب لاسمه، فلا يستطيع أحد معرفة وجوده بالتخمين.

الإعدادات الافتراضية، والإعدادات لكل مستودع

تُضبط درجة الظهور في مكانين:

  • على الاتصال، كقيمة افتراضية لكل مستودع يأتي عبره. تبدأ الاتصالات الجديدة خاصة. غيّر القيمة الافتراضية من إعدادات الاتصال في صفحة Integrations.
  • على مستودع واحد، متجاوزًا القيمة الافتراضية. أعِده إلى inherit ليتبع الاتصال مجدّدًا.
isogrid repos access acme/api --visibility organization
isogrid repos access acme/api --visibility inherit

يعلّم isogrid repos list المستودع الذي يتبع اتصاله بـ (default).

الاتصالات التي أُنشئت قبل وجود هذه الإعدادات مفتوحة للمؤسّسة كلّها. كانت متاحة لكل عضو من قبل، وتبقى كذلك حتى يغيّرها مالكها. إن كنت ربطت حسابًا منذ مدّة، فراجعه.

دعوة الأعضاء والمجموعات

امنح المستودع لعضو واحد أو لمجموعة صلاحيات، بإعداد مسبق:

الإعداد المسبق القدرات يستطيعون
repo-viewer repo:view رؤيته، ورؤية فروعه وإيداعاته.
repo-deployer إضافةً إلى repo:create-app، repo:deploy إنشاء تطبيقات منه، وبناؤها ونشرها.
repo-maintainer إضافةً إلى repo:update إضافةً إلى تعديل إعدادات تلك التطبيقات وأسرارها.
repo-admin إضافةً إلى repo:delete إضافةً إلى حذف تلك التطبيقات.
isogrid repos grant acme/api --member contractor@partner.example --preset repo-deployer
isogrid repos grant acme/api --group backend --preset repo-maintainer
isogrid repos grants acme/api
isogrid repos revoke acme/api contractor@partner.example

لا يتضمّن أي إعداد مسبق repo:share: فمن تدعوه لا يستطيع دعوة غيره. وكما في كل منح، لا يمكنك أن تعطي إلا ما تملكه؛ انظر الأدوار ومجموعات الصلاحيات والوصول.

ما تسمح به قدرة المستودع على تطبيقاته

تصل القدرة على مستودع إلى كل تطبيق مبني منه، بما في ذلك التطبيقات المُنشأة بعد المنح. ولا حاجة إلى إضافة أحد إلى كل تطبيق على حدة.

على المستودع على كل تطبيق مبني منه
repo:view لا شيء بعد: رؤية المستودع وفروعه وإيداعاته.
repo:create-app إنشاء تطبيقات جديدة منه.
repo:deploy رؤيته، وقراءة سجلّاته، وبناؤه ونشره، وتشغيله وإيقافه.
repo:update رؤيته، وقراءة سجلّاته، وتعديل إعداداته وأسراره.
repo:delete رؤيته وحذفه.
repo:share تحديد من غيرك يجوز له استخدام المستودع.

تُضاف هذه إلى كل ما يملكه الشخص على التطبيق نفسه.

النشر يمرّ عبر بوّابة المستودع

بناء تطبيق أو نشره يحتاج إلى repo:deploy على مستودعه، أيًّا كان ما يملكه الشخص على التطبيق. فالبناء يستنسخ ببيانات اعتماد من ربط الحساب، لذا تكون الكلمة الأخيرة لسياسته.

وهذا ما يجعل لجعل المستودع خاصًا معنى. أغلقه، فتتوقّف التطبيقات المبنية منه عن أن تكون قابلة للنشر من قِبل أي أحد لم تدعُه — بما في ذلك المسؤولون، وبما في ذلك الأعضاء الذين أنشؤوا تلك التطبيقات حين كان مفتوحًا. تستمرّ التطبيقات في العمل؛ لكن لا يمكن إعادة بنائها أو نشرها من قِبل من أُغلق المستودع أمامهم.

حين يغادر من ربط الحساب

حين يغادر العضو الذي ربط حسابًا المؤسّسةَ أو يُعلَّق فيها، لا يبقى أحد ليقرّر بشأن مستودعاته. فيتولّى الأمر من يجوز له إدارة اتصالات git في المؤسّسة (المالكون والمسؤولون): يملكون كل شيء على تلك المستودعات، ويستطيعون تغيير درجة ظهورها، ودعوة الأشخاص وإزالتهم، أو فصل الحساب.

كل ما ضبطه من ربط الحساب يبقى ساريًا حتى يغيّره أحد. فالمستودع المفتوح للمؤسّسة كلّها يبقى كذلك؛ والمستودع الخاص يبقى مغلقًا أمام الجميع باستثناء المدعوّين، ويستطيع المسؤولون فتحه.

أمّا الحساب نفسه فما زال لمن ربطه. فإن ألغى التطبيق في GitHub أو الرمز في GitLab، تتوقّف عمليات البناء، مهما قالت الإعدادات هنا. خطّط لإعادة ربط تلك المستودعات عبر شخص باقٍ.

فصل الحساب

يستطيع من ربط الحساب فصل حسابه؛ ويستطيع المسؤول فصل حساب أي أحد. تستمرّ التطبيقات المبنية من مستودعاته في العمل، لكن لا يمكن بناؤها مجدّدًا حتى يصبح الوصول إلى المستودعات ممكنًا عبر اتصال آخر.

حالات حدّية يحسن معرفتها قبل أن تصادفها

"is not a repository you have been given access to". المستودع خاص، أو مفتوح للمسؤولين ولست منهم. اطلب من المالك، الظاهر في isogrid repos list لمن يستطيع رؤيته، أن يدعوك.

"You do not have 'repo:deploy' on acme/api". تستطيع رؤية المستودع لكن لا البناء منه. قد تملك app:deploy على التطبيق؛ لكن يجب أن يسمح المستودع بذلك أيضًا.

نشر نجح بالأمس ويُرفض اليوم. جُعل المستودع خاصًا، أو سُحب منحك. التطبيق لم يُمسّ؛ اسأل المالك.

لا يستطيع مسؤول تغيير درجة ظهور مستودع. ما دام من ربطه عضوًا، فهو وحده يستطيع. ويتولّى المسؤولون الأمر بعد مغادرته.

لا يظهر مستودع على الإطلاق. لم يُختر حين ثُبّت تطبيق GitHub، أو أن رمز GitLab لا يستطيع قراءته. وسّع الاختيار في GitHub أو GitLab؛ لا شيء يحتاج إلى تغيير هنا.

تُرفض الـ CLI حيث تعمل وحدة التحكّم، على مستودع مفتوح للمسؤولين. يقوم وصول المسؤولين إلى المستودعات على صلاحية github:manage. وافِق على بيانات اعتماد تتضمّنها.

ماذا تقرأ بعد ذلك