منصوبے کے بارے میں

GitHub Trending Reporter ایک چھوٹا آٹومیشن پروجیکٹ ہے جو روزانہ کے GitHub Trending صفحے کو ایک قابلِ براؤز، AI-annotated رپورٹ سائٹ میں تبدیل کرتا ہے۔ ایک شیڈولڈ رن پر، یہ ٹرینڈنگ ریپوزٹری کی فہرست جمع کرتا ہے، GitHub API کے ذریعے اضافی تفصیلات تلاش کرتا ہے، ایک لارج لینگویج ماڈل (LLM) سے مختصر خلاصے اور رجحانات کے مشاہدات تیار کرنے کو کہتا ہے، نتائج کو Markdown رپورٹس اور JSON ڈیٹا کے طور پر لکھتا ہے، اور پھر GitHub Pages پر ایک Docusaurus سائٹ بناتا اور تعینات کرتا ہے۔ یہ پورا سلسلہ GitHub Actions ورک فلو کے ذریعے چلایا جاتا ہے، لہذا ایک بار سیکریٹس (secrets) کنفیگر ہونے کے بعد کسی دستی مرحلے کی ضرورت نہیں ہوتی۔ README میں بیان کردہ کلیدی صلاحیتیں: - GitHub Trending کی خودکار اسکریپنگ، جس میں پروگرامنگ زبان کے ذریعے فلٹر کرنے اور روزانہ، ہفتہ وار یا ماہانہ وقت کے وقفے منتخب کرنے کے اختیارات موجود ہیں۔ - اختیاری LLM پر مبنی تجزیہ جو ہر ریپوزٹری انٹری میں AI کا لکھا ہوا خلاصہ (تقریباً 15-25 حروف) شامل کرتا ہے۔ - Docusaurus فرنٹ اینڈ کے ذریعے بصری پیشکش، جس میں رپورٹس Markdown فائلوں کے طور پر اور خام ڈیٹا JSON کے طور پر محفوظ کیا جاتا ہے۔ - GitHub Actions کے ذریعے اینڈ-ٹو-اینڈ آٹومیشن، جس میں ڈیٹا اکٹھا کرنا، اسے بہتر بنانا، تجزیہ، رپورٹ کی تیاری اور سائٹ کی تعیناتی شامل ہے۔ - ایک شائع شدہ ڈیٹا اینڈ پوائنٹ، تاکہ اسی JSON آؤٹ پٹ کو صرف ویب سائٹ پر پڑھنے کے بجائے بیرونی ایجنٹس یا ایپلی کیشنز کے ذریعے استعمال کیا جا سکے۔ ریپوزٹری کو ایک Python سائیڈ (main.py, trending_scraper.py, llm_analyzer.py, data_pusher.py, config.py, requirements.txt) اور ایک Docusaurus/Node سائیڈ (src, docusaurus.config.js, package.json) میں تقسیم کیا گیا ہے، جبکہ reports/ اور data/ میں تیار کردہ آؤٹ پٹ اور .github/workflows/daily_report.yml میں شیڈولڈ جاب موجود ہے۔ رپورٹ کی تیاری کے لیے اسے مقامی طور پر چلانے کے لیے Python ڈیپینڈنسز انسٹال کرنا، .env.example کو .env میں کاپی کرنا اور API کی فراہم کرنا، پھر --local اور --no-push جھنڈوں (flags) کے ساتھ main.py کو کال کرنا ضروری ہے۔ ویب سائٹ کا پری ویو معیاری npm install اور npm start فلو استعمال کرتا ہے۔ کنفیگریشن LLM کی، بیس URL اور ماڈل کے نام کے لیے انوائرمنٹ ویری ایبلز کے ذریعے ہوتی ہے، ساتھ ہی GitHub ٹوکنز ریپوزٹری کی تفصیلی معلومات حاصل کرنے اور تیار شدہ ڈیٹا کو پش کرنے کے لیے استعمال ہوتے ہیں۔ یہی اقدار GitHub Actions سیکریٹس کے طور پر متوقع ہیں۔ کمانڈ لائن آپشنز میں زبان کا فلٹر، ٹرینڈنگ ونڈو کے لیے since آپشن، پش کرنے سے بچنے یا مقامی طور پر محفوظ کرنے کے جھنڈے، YYYY-MM-DD فارمیٹ میں ایک واضح تاریخ کا پیرامیٹر، اور فی پروجیکٹ تفصیلی تجزیے کو چھوڑنے کا سوئچ شامل ہے۔ انٹیگریشنز کے لیے، پروجیکٹ دو URL پیٹرنز کی دستاویزات فراہم کرتا ہے: reports/YYYY/MM/YYYY-MM-DD کے تحت ایک HTML رپورٹ صفحہ اور data/YYYY/MM/YYYY-MM-DD.json کے تحت ایک خام JSON فائل۔ JSON پے لوڈ میں تاریخ، جنریشن ٹائم اسٹیمپ، کل ریپوزٹریز کی تعداد اور ایک ریپوزٹری ارے شامل ہے جس میں full_name, url, description, llm_summary, language, stars, stars_today, forks, topics اور license جیسے فیلڈز ہیں۔ ایک مختصر Python مثال requests کے ذریعے اس JSON کو حاصل کرنے اور ٹاپ انٹریز کو پرنٹ کرنے کا طریقہ دکھاتی ہے۔ README میں ai-git-trending پروجیکٹ کو بطور تحریک کریڈٹ دیا گیا ہے اور بتایا گیا ہے کہ اس کے اسکریپنگ طریقہ کار، LLM تجزیہ ورک فلو، رپورٹ جنریشن اسکیم اور مجموعی آرکیٹیکچر کو بطور حوالہ استعمال کیا گیا۔ متعلقہ لنکس GitHub Trending، Docusaurus اور اس سورس پروجیکٹ کی طرف اشارہ کرتے ہیں۔ اس کے اسٹیک کو Python اور Docusaurus کے طور پر بیان کیا گیا ہے۔