这个项目能做什么

GitHub Trending Reporter 是一个小型自动化项目,旨在将每日的 GitHub Trending 页面转换为一个可浏览且带有 AI 注释的报告站点。在预定的运行计划中,它会收集趋势仓库列表,通过 GitHub API 查询详细信息,请求大语言模型(LLM)生成简洁的摘要和趋势观察,将结果写入 Markdown 报告和 JSON 数据,随后构建并部署一个 Docusaurus 站点到 GitHub Pages。整个流程由 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 标志调用 main.py。网站预览则使用标准的 npm install 和 npm start 流程。配置通过环境变量完成,包括 LLM 密钥、基础 URL 和模型名称,以及用于获取详细仓库信息和推送生成数据的 GitHub tokens。这些值同样需要作为 GitHub Actions secrets 配置。 命令行选项包括语言过滤器、用于趋势窗口的 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。