أداة checkowners تستنتج ملكية الكود من تاريخ git وتقارنها بملف CODEOWNERS
في أغلب المشاريع البرمجية ملف أو ملفان لا يفتحهما إلا شخص واحد، وإذا غاب هذا الشخص توقف العمل على ذلك الجزء. وتتعامل أداة جديدة مفتوحة المصدر باسم checkowners مع هذه المشكلة من زاوية مختلفة: لا تسأل الفريق من المسؤول عن ماذا، بل تقرأ تاريخ git وتستنتج بنفسها من كتب كل مسار في المشروع، ثم تقارن ما استنتجته بملف CODEOWNERS المحفوظ في المستودع.
وملف CODEOWNERS هو الملف الذي يحدد في GitHub من يُطلب منه مراجعة التغييرات على كل جزء من الكود. والمشكلة أنه يُكتب مرة واحدة، ثم يتغير الفريق ويبقى الملف كما هو.
وتعمل الأداة بعدة أوامر. فأمر drift يُظهر المواضع التي يختلف فيها الملف عن الواقع. وأمر risk يرتب مسارات المشروع بحسب المخاطر، أي الأجزاء التي تتركز معرفتها في شخص واحد، وهو ما يُعرف بالـ bus factor. وأمر suggest يقترح الأنسب لمراجعة تغيير بعينه.
والأداة مكتوبة بلغة Python، وتُثبَّت عبر pip، ورخصتها MIT. وتقرأ تاريخ git محليًا على جهاز المستخدم، ومع خيار offline لا تفتح أي اتصال بالشبكة، وهو ما يهم الفرق التي لا تريد إرسال تاريخ مستودعاتها إلى أي خدمة خارجية.
واللافت أن صاحب الأداة كتب في بداية ملف README أنها أداة لقياس مخاطر المعرفة، لا لقياس أداء الأفراد، وأن استخدامها في تقييم الأشخاص ضار ولا يدعمه. فالأرقام نفسها التي تكشف تركّز المعرفة يمكن أن تتحول بسهولة إلى مقياس لمن كتب أكثر.
وبالنسبة للفرق الصغيرة، حيث يغطي كل شخص جزءًا كاملًا من المنتج، يصبح السؤال عن الأجزاء المعلقة بشخص واحد سؤالًا عن استمرارية العمل نفسه، لا عن تنظيم الملفات فقط.