محتويات الدورة

Git وGitHub / المتقدم: الثقة والحجم والتعافي / الدرس 15

أمان المستودع والخطافات والاعتمادات

عامل أتمتة المستودع وإعداده كحدود تنفيذ وافصل الراحة المحلية عن سياسة الخادم المفروضة.

وقت القراءة التقريبي: 3 دقيقةتاريخ مراجعة المحتوى
في هذه الصفحة

أهداف الدرس

  • اشرح تنفيذ الخطافات وحدود الإنفاذ.
  • احمِ الاعتمادات وافحص الإعداد الحساس للثقة.

يؤثر المستودع في سير قابل للتنفيذ

ليست المصادر وحدها للمراجعة؛ تنفذ النصوص والاعتماديات والخطافات والأجزاء وCI بصلاحيات المستخدم. لا يثبت الاستنساخ عادة خطافات العميل النشطة من المتتبع تلقائياً لكن قد يفعل الإعداد. افحص غير المألوف بعزل وراجع الأوامر. لا يجعل رابط استضافة موثوق كل مساهمة آمنة. حد السلطة ولا تتجاوز فحص الملكية بثقة عامة لكل مسار.

استخدم الخطاف مساعدة محلية مركزة

يستدعي Git الخطاف بنقاط ودخل وسياق موثق. يرفض pre-commit الإيداع المحلي عند الفشل. يفحص المثال مسافات المرحل ويعيد النتيجة، وهو جسم ملف لا يثبت بالمشروع. يعتمد الاكتشاف على الإعداد وسلوك التنفيذ بالمنصة. اجعله سريعاً حتمياً وحدد الحالة؛ فقد يفحص الملف بينما الإيداع من الفهرس لقطة مختلفة.

bash فحص pre-commit للمحتوى المرحل
#!/bin/sh
# Synthetic lab hook body; not installed by the course.
exec git diff --cached --check

احفظه بمختبر فقط للتنفيذ اليدوي. تأتي الحالة من فحص المرحل ولا يتغير مسار خطاف أو إذن أو إعداد بالمشروع.

لا تعتمد على العميل لإنفاذ الخادم

قد تغيب خطافات العميل أو تتغير أو تتجاوز بخيارات موثقة. تحسن التغذية ولا تفرض سياسة المشترك وحدها. توفر فحوص الخادم وحماية الفرع أو القواعد طبقة أخرى بصلاحيات تجاوز مضبوطة. راجعها. لا يثبت نجاح المحلي سوى فحصه. احفظ السياسة بمكان موثوق وأظهر الغياب ولا تفترض أدوات محلية متماثلة للجميع.

افحص سؤال إعداد ضيقاً

توضح المصادر السلوك وقد يكشف التفريغ روابط وتفاصيل. اسأل المفتاح المناسب ونطاقه دون أسرار. يسأل المثال خطافات المختبر فقط وغياب المفتاح طبيعي ولا ينفي المجلد الافتراضي. تستحق مساعدات الاعتماد والتوقيع والمرشحات والدمج مراجعة. لا تضف wildcard عاماً لـ safe.directory لإسكات تحذير؛ افهم الملكية وصحح بضيق معتمد.

bash قراءة مصادر إعداد مختبر مختارة
git config --show-origin --get core.hooksPath
git config --show-origin --get core.autocrlf

قد يخرجان بـ 1 بلا نص عند غياب المفتاح ولا يعني فشل المستودع. يقرآن ولا يغيران الإعداد. لا تنشر المسارات الخاصة أو إعداد الاعتماد.

امنع تسريب الأسرار واستجب مستقلاً

يقلل التجاهل والفحص المحلي الترحيل العرضي ولا يضمن غياب السر عن التاريخ. راجع المرحل وأبقِ الاعتماد خارج المستودع. عند التسريب أبطل أو دوّر بمسار المالك قبل افتراض حل الكتابة. قد تبقى نسخ بالاستنساخ والمخابئ والطلبات والحزم. التنظيف تنسيق معطل بحدود منصة لا reset عادي. لا تستخدم الدورة اعتمادات أو فحص أسرار أو كتابة فعلية بل تعلم الحدود والاستجابة.

الأخطاء الشائعة وإصلاحها

يفترض إلزام خطاف العميل للجميع

لماذا يحدث؟
اختلطت التغذية بإنفاذ الخادم.
كيف تصلحه؟
أضف ضوابط مستضافة موثوقة وفق السياسة.
كيف تتجنب تكراره؟
اختبر غياب وتجاوز المحلي مخبرياً.

يثبت إعداد المستودع شيفرة غير متوقعة

لماذا يحدث؟
نُفذت الأتمتة دون مراجعة الثقة.
كيف تصلحه؟
أوقف التنفيذ وافحص النطاق معزولاً.
كيف تتجنب تكراره؟
راجع الإعداد والخطافات والاعتماد.

يُعامل حذف السر كإبطال

لماذا يحدث؟
اختلط ظهور الملف بصلاحية الاعتماد.
كيف تصلحه؟
اتبع الإبطال والاستجابة المفوضين.
كيف تتجنب تكراره؟
أبعد الأسرار عن الإيداع والتشخيص.

اختبر فهمك

1. يستخدم مساهم --no-verify. ما يحمي المشترك؟

اعرض الحل المشروح

فحوص موثوقة وسياسة فرع أو قواعد بصلاحيات وتجاوز مراجع. يفيد المحلي سريعاً ولا يضمن الإنفاذ بآلة أخرى.

2. لا يطبع core.hooksPath شيئاً. هل يثبت التعطيل؟

اعرض الحل المشروح

لا؛ يوجد موضع افتراضي عند غياب التجاوز. افحص السياق والملفات بأمان؛ يختلف غياب التجاوز عن التعطيل.

أهم ما تعلمته

  • تعمل الأتمتة بقدرات العملية الفعلية.
  • تساعد الخطافات ويفرض الخادم الموثوق قواعد التعاون.
  • استجابة الاعتماد منفصلة عن ظهور التاريخ.

المراجع الرسمية