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

تفترض الخطوات التالية أن قالب عميل قيد النظر للتحكم في الإصدارات. نفّذها بالترتيب، وتوقّف قبل إيداع أي شيء لا يمكنك إبطال صلاحيته.

اقرأ الملف الذي أنت على وشك تجهيزه

ابدأ بالبايتات الفعلية، لأن الملف الذي يشير إلى ملفات منفصلة يبدو مختلفًا جدًا عن الملف الذي يضمّها. ابحث عن علامات كتلة PEM وعن الوسوم المضمّنة المسماة ca وcert وkey وtls-auth وtls-crypt، وستكشف لك المرحلة نفسها الحالتين معًا. لا يزال المفتاح الخاص المشفَّر مادة حساسة، ومفتاح tls-auth أو tls-crypt المشترك بيانات اعتماد وإن لم يكن هوية مستخدم. طبّق المراجعة نفسها على كل ما يُجهَّز إلى جانب الملف، بما في ذلك الأرشيفات ونصوص الإعداد التي تشير إلى ملف بيانات اعتماد.

ثم انظر إلى المجموعة المجهَّزة بدلًا من شجرة العمل. يعرض git diff --cached ما سيحتويه الإيداع فعلًا، وهو النسخة الوحيدة المهمة لهذا القرار.

حدِّد ما يُسمح للمستودع بتوزيعه

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

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

إذا كانت المادة موجودة في السجل بالفعل

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

للحالتين نطاقا أثر مختلفان جدًا، وينبغي أن تذكر الخطة أيّهما تنفّذه قبل أن تبدأ. حدِّد الإيداع الذي أدخل المادة ببحث بالمعول مثل git log --all -S 'BEGIN PRIVATE KEY'، حتى يكون نطاق التنظيف معروفًا لا مُخمَّنًا. قد يحتفظ نسخ زميل أو تفريعة بالكائن القديم بالفعل، ولهذا يأتي إبطال الصلاحية أولًا والتنظيف ثانيًا.

نظِّف بعد الاحتواء فقط

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

بعد ذلك، تحقّق من الشجرة الحالية والسجل المتبقي بدلًا من الثقة بملخّص الأداة.

احتفظ بالنتيجة كأثرين: القالب الآمن للمشاركة، وجرد بيانات الاعتماد الصادرة خلال عملية التسجيل. لا يحتاج أي منهما إلى وجود هوية صالحة للاستخدام في المستودع.

هذا الفصل هو الإصلاح الحقيقي، وسيصمد أمام الشخص التالي الذي يريد إيداع ملف شخصي.

مقالات ذات صلة