প্রকল্প সম্পর্কে

GitHub Trending Reporter হলো একটি ছোট অটোমেশন প্রজেক্ট যা প্রতিদিনের GitHub Trending পেজটিকে একটি ব্রাউজযোগ্য, AI-অ্যানোটেটেড রিপোর্ট সাইটে রূপান্তর করে। একটি নির্ধারিত সময়ে এটি ট্রেন্ডিং রিপোজিটরি তালিকা সংগ্রহ করে, GitHub API-এর মাধ্যমে অতিরিক্ত বিবরণ খুঁজে বের করে, একটি লার্জ ল্যাঙ্গুয়েজ মডেলকে (LLM) সংক্ষিপ্ত সারাংশ এবং ট্রেন্ড পর্যবেক্ষণ তৈরি করতে বলে, ফলাফলগুলোকে Markdown রিপোর্ট এবং JSON ডেটা হিসেবে লিখে রাখে এবং তারপর GitHub Pages-এ একটি Docusaurus সাইট তৈরি ও ডেপ্লয় করে। পুরো প্রক্রিয়াটি একটি GitHub Actions ওয়ার্কফ্লো দ্বারা পরিচালিত হয়, তাই সিক্রেট কনফিগার করার পর কোনো ম্যানুয়াল পদক্ষেপের প্রয়োজন হয় না। README-তে বর্ণিত মূল ক্ষমতাগুলো হলো: - প্রোগ্রামিং ল্যাঙ্গুয়েজ দ্বারা ফিল্টার করার এবং দৈনিক, সাপ্তাহিক বা মাসিক সময়সীমা বেছে নেওয়ার বিকল্পসহ GitHub Trending-এর স্বয়ংক্রিয় স্ক্র্যাপিং। - ঐচ্ছিক LLM-ভিত্তিক বিশ্লেষণ যা প্রতিটি রিপোজিটরি এন্ট্রিতে একটি AI-লিখিত সারাংশ (প্রায় ১৫-২৫ অক্ষরের) যোগ করে। - 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 ফ্ল্যাগ সহ 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 হিসেবে বর্ণিত।