Об этом проекте
GitHub Trending Reporter — это небольшой проект по автоматизации, который превращает ежедневную страницу GitHub Trending в доступный сайт с отчетами, аннотированными ИИ. По расписанию он собирает список трендовых репозиториев, запрашивает дополнительные сведения через GitHub API, просит большую языковую модель (LLM) создать краткие резюме и наблюдения за трендами, записывает результаты в виде Markdown-отчетов и JSON-данных, а затем собирает и развертывает сайт Docusaurus на GitHub Pages. Вся последовательность управляется рабочим процессом GitHub Actions, поэтому после настройки секретов ручные действия не требуются.
Ключевые возможности, описанные в README:
- Автоматический скрапинг GitHub Trending с возможностью фильтрации по языку программирования и выбора временных интервалов (день, неделя или месяц).
- Опциональный анализ на базе LLM, который добавляет краткое резюме, написанное ИИ (примерно 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-ключ, затем вызвать main.py с флагами --local и --no-push. Предварительный просмотр веб-сайта осуществляется через стандартный поток npm install и npm start. Конфигурация выполняется через переменные окружения для ключа LLM, базового URL и названия модели, а также токенов GitHub, используемых для получения подробной информации о репозиториях и отправки сгенерированных данных. Те же значения ожидаются в качестве секретов GitHub Actions.
Опции командной строки включают фильтр языка, параметр since для окна трендов, флаги для пропуска отправки данных или сохранения локально, явный параметр даты в формате ГГГГ-ММ-ДД и переключатель для пропуска детального анализа каждого проекта.
Для интеграций в проекте описаны два шаблона URL: страница HTML-отчета по адресу reports/YYYY/MM/YYYY-MM-DD и необработанный JSON-файл по адресу data/YYYY/MM/YYYY-MM-DD.json. JSON-нагрузка содержит дату, временную метку генерации, общее количество репозиториев и массив репозиториев с такими полями, как full_name, url, description, llm_summary, language, stars, stars_today, forks, topics и license. Короткий пример на Python показывает, как получить этот JSON с помощью requests и вывести верхние записи.
В README указано, что вдохновением для проекта послужил ai-git-trending, и отмечено, что его подход к скрапингу, рабочий процесс анализа LLM, схема генерации отчетов и общая архитектура использовались в качестве ориентиров. Соответствующие ссылки ведут на GitHub Trending, Docusaurus и этот исходный проект. Стек описан как Python плюс Docusaurus.
Comments
0 Rating appears after 10 ratings
Sign in to join the discussion.