منصوبے کے بارے میں
RepositoryScanner ایک GitHub اکاؤنٹ اینالائزر ہے جو عوامی اور نجی ریپوزٹریز سے زبان کے اعداد و شمار پڑھنے کے لیے GitHub API کا استعمال کرتا ہے، اور پھر ٹاپ زبانوں کا ایک SVG کارڈ ایکسپورٹ کرتا ہے۔ README کے مطابق، GitHub کی لینگویج API ہر زبان کے لیے کوڈ کے بائٹس واپس کرتی ہے، اور کارڈ کے فیصد ان بائٹ-بیسڈ سائزز پر مبنی ہوتے ہیں نہ کہ خام لائنوں کی گنتی پر۔ تیار کردہ کارڈ کل کوڈ سائز کے لحاظ سے ٹاپ چھ زبانیں اور کنٹری بیوشن کے اعداد و شمار دکھاتا ہے: کل کنٹری بیوشنز، موجودہ اسٹریک (streak)، اور طویل ترین اسٹریک۔ یہ Kanagawa پیپر-انک سے متاثرہ تھیم استعمال کرتا ہے اور اسے GitHub Actions کے ذریعے ہر ہفتے خودکار طور پر اپ ڈیٹ ہونے کے لیے ڈیزائن کیا گیا ہے۔
تجویز کردہ سیٹ اپ یہ ہے کہ ریپوزٹری کو فورک (fork) کریں، repo اور read:user اسکوپس (یا اگر صرف عوامی ریپوزٹریز اہم ہیں تو public_repo) کے ساتھ ایک GitHub پرسنل ایکسیس ٹوکن بنائیں، GH_TOKEN، GITHUB_USERNAME، اور اختیاری طور پر EXCLUDED_LANGS کے لیے ریپوزٹری سیکریٹس شامل کریں، اور پھر Update Language Stats ورک فلو کو ایک بار دستی طور پر چلائیں۔ ورک فلو فائل .github/workflows/update-chart.yaml پر موجود ہے اور اسے اتوار کو 00:00 UTC پر ہفتہ وار چلانے، اپ ڈیٹ شدہ assets/languages.svg کو main میں واپس کمٹ کرنے، اور آن-ڈیمانڈ رنز کو سپورٹ کرنے کے لیے کنفیگر کیا گیا ہے۔ اس ورک فلو فائل میں cron لائن کو ایڈٹ کر کے شیڈول تبدیل کیا جا سکتا ہے۔ نتیجے کے طور پر حاصل ہونے والے SVG کو raw.githubusercontent.com URL کا استعمال کرتے ہوئے پروفائل README میں ایمبیڈ کیا جا سکتا ہے، جس میں براؤزر کیشنگ سے بچنے کے لیے ?v=1 جیسا اختیاری کوئری پیرامیٹر استعمال کیا جا سکتا ہے۔
مقامی ڈویلپمنٹ کے لیے، README میں Python 3.10+ کی سفارش کی گئی ہے جس میں 3.11 کو ترجیح دی گئی ہے۔ بنیادی ڈیپینڈنسیز requests اور python-dotenv ہیں۔ کنفیگریشن ایک .env فائل یا شیل انوائرمنٹ ویری ایبلز کے ذریعے فراہم کی جا سکتی ہے۔ ریپوزٹری رُوٹ سے python scripts/fetch_languages.py چلانے سے assets/languages.svg تیار ہوتا ہے۔ Kanagawa کلر پیلیٹ اور ہر زبان کے رنگ scripts/colors.py میں بیان کیے گئے ہیں، جبکہ SVG لے آؤٹ کی تفصیلات scripts/fetch_languages.py کے اندر سنبھالی گئی ہیں۔ README میں یہ بھی نوٹ کیا گیا ہے کہ GITHUB_USERNAME مین ویری ایبل ہے، لیکن پیچھے کی مطابقت (backwards compatibility) کے لیے USERNAME بھی سپورٹڈ ہے۔ اگر GH_TOKEN سیٹ نہیں ہے، تو صرف عوامی ریپوزٹریز کا تجزیہ کیا جاتا ہے اور GitHub کی غیر تصدیق شدہ ریٹ لمٹس لاگو ہوتی ہیں۔
سیکیورٹی اور پرائیویسی نوٹس بتاتے ہیں کہ یہ ٹول ریپوزٹری کی فہرست اور فی ریپوزٹری زبان کے اعداد و شمار پڑھنے کے لیے GitHub API کا استعمال کرتا ہے، لیکن یہ اصل کوڈ مواد کو نہیں پڑھتا۔ ٹوکنز مقامی ڈویلپمنٹ کے لیے مقامی .env یا انوائرمنٹ ویری ایبلز سے اور Actions کے لیے GitHub Secrets سے پڑھے جاتے ہیں، اور انہیں کبھی بھی کمٹ نہیں کیا جانا چاہیے۔ ٹربل شوٹنگ سیکشنز 401 Unauthorized اور API ایررز، فلٹر شدہ فورکس کی وجہ سے زبان کے ڈیٹا کی کمی، خارج کردہ زبانوں، ٹوکن ایکسیس، یا ریٹ لمٹس، اور ورک فلو کے نہ چلنے کی وجوہات (جیسے Actions کا غیر فعال ہونا، ورک فلو پاتھ کا غلط ہونا، YAML کا غیر درست ہونا، یا تبدیلیوں کا متوقع برانچ پر نہ ہونا) کا احاطہ کرتے ہیں۔ یہ پروجیکٹ MIT لائسنس کے تحت ہے اور بیان کرتا ہے کہ یہ anuraghazra/github-readme-stats سے متاثر تھا، جبکہ Kanagawa کلر تھیم rebelot/kanagawa-paper.nvim سے متاثر ہے۔
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.