عن المشروع

RepositoryScanner هو محلل لحسابات GitHub يستخدم GitHub API لقراءة إحصائيات اللغات من المستودعات العامة والخاصة، ثم يصدر بطاقة SVG لأبرز اللغات. وفقاً لملف README، تعيد واجهة برمجة تطبيقات اللغات في GitHub عدد البايتات من الكود لكل لغة، وتعتمد النسب المئوية في البطاقة على هذه الأحجام القائمة على البايت بدلاً من عدد الأسطر الخام. تعرض البطاقة الناتجة أعلى ست لغات من حيث إجمالي حجم الكود وإحصائيات المساهمة: إجمالي المساهمات، والسلسلة الحالية (streak)، وأطول سلسلة. يستخدم المشروع سمة مستوحاة من Kanagawa paper-ink ومصمم للتحديث تلقائياً كل أسبوع عبر GitHub Actions. الإعداد الموصى به هو عمل fork للمستودع، وإنشاء رمز وصول شخصي (personal access token) لـ GitHub بصلاحيات repo و read:user (أو public_repo إذا كانت المستودعات العامة فقط هي المهمة)، وإضافة أسرار المستودع (repository secrets) لـ GH_TOKEN و GITHUB_USERNAME، واختيارياً EXCLUDED_LANGS، ثم تشغيل سير عمل Update Language Stats يدوياً لمرة واحدة. يقع ملف سير العمل في .github/workflows/update-chart.yaml وهو مهيأ للعمل أسبوعياً يوم الأحد الساعة 00:00 بالتوقيت العالمي المنسق (UTC)، ويقوم بعمل commit للملف المحدث assets/languages.svg إلى فرع main، كما يدعم التشغيل عند الطلب. يمكن تغيير الجدول الزمني عن طريق تحرير سطر cron في ملف سير العمل هذا. يمكن تضمين ملف SVG الناتج في ملف تعريف README باستخدام رابط raw.githubusercontent.com، مع معامل استعلام اختياري مثل ?v=1 لتجاوز تخزين المتصفح المؤقت. للتطوير المحلي، يوصي ملف README باستخدام Python 3.10+ ويفضل 3.11. التبعيات الأساسية هي requests و python-dotenv. يمكن تقديم التكوين من خلال ملف .env أو متغيرات بيئة shell. يؤدي تشغيل python scripts/fetch_languages.py من جذر المستودع إلى إنشاء assets/languages.svg. يتم تعريف لوحة ألوان Kanagawa وألوان كل لغة في scripts/colors.py، بينما يتم التعامل مع تفاصيل تخطيط SVG داخل scripts/fetch_languages.py. يشير ملف README أيضاً إلى أن GITHUB_USERNAME هو المتغير الرئيسي، ولكن يتم دعم USERNAME للتوافق مع الإصدارات السابقة. إذا لم يتم تعيين GH_TOKEN، فسيتم تحليل المستودعات العامة فقط وتطبق حدود المعدل غير الموثقة لـ GitHub. توضح ملاحظات الأمان والخصوصية أن الأداة تستخدم GitHub API لقراءة قائمة المستودعات وإحصائيات اللغات لكل مستودع، ولكنها لا تقرأ محتوى الكود الفعلي. يتم قراءة الرموز (Tokens) من ملف .env المحلي أو متغيرات البيئة للتطوير المحلي ومن GitHub Secrets لـ Actions، ويجب عدم إضافتها أبداً إلى المستودع. تغطي أقسام استكشاف الأخطاء وإصلاحها أخطاء 401 Unauthorized وأخطاء API، وبيانات اللغة المفقودة بسبب الفروع المفلترة (filtered forks)، أو اللغات المستبعدة، أو وصول الرمز، أو حدود المعدل، وسير العمل الذي لا يعمل بسبب تعطيل Actions، أو مسار سير العمل الخاطئ، أو عدم صحة ملف YAML، أو عدم وجود التغييرات على الفرع المتوقع. المشروع مرخص بموجب رخصة MIT ويذكر أنه مستوحى من anuraghazra/github-readme-stats، مع تأثر سمة ألوان Kanagawa بـ rebelot/kanagawa-paper.nvim.