前言¶
在 DeepSeek Harness(DSH)里做智能体或日常开发时,经常需要快速扫一眼 GitHub Trending:今天哪些仓库上榜、增速如何、技术栈大概是什么。手动打开 trending 页面再逐个点开 README,费时且缺少统一维度。社区插件 dsh-github-trending(维护者 Royalsan,分类:联网工具)把日榜 / 周榜 / 月榜抓取、规则化分析和 Web UI 卡片报告收进一个可长期安装的 Cordis bundle,并同时暴露工具、斜杠命令与 HTTP 路由,方便在 Harness 内一键查看或在脚本里二次消费 JSON。
这是什么¶
dsh-github-trending 是一个 Cordis 插件:从 github.com/trending 抓取榜单(可选 23 种常用编程语言),对每个仓库做确定性规则分析(不额外调用模型),在 Harness Web UI 侧边栏注册「GitHub 趋势」面板,渲染可翻页、可筛选的卡片报告。npm 包名为 @royalsan/dsh-github-trending,当前资料中版本为 1.0.1,许可 MIT,要求 Node >= 20。
说明:本 Harness 版本中不存在名为 dsh-genui 的包;插件自带 host 侧结构化数据 + client 侧 React 面板(sidebar.panellist + main),不依赖未安装的 genui 包。
核心功能¶
榜单与增强¶
- 周期:
daily/weekly/monthly;语言筛选共 23 种。 - 解析 star 总数、fork、周期增量、贡献者、语言色等 Trending 页字段。
- 可选 GitHub token 通过 API 增强 topics、license、issue、README 等;未认证时限额 60 次/小时,插件会降级,核心榜单与增长率仍可用。
结构化分析(规则引擎)¶
对每个仓库输出:项目简介(description + README 摘要清洗)、star 增量与周期增长率、核心技术栈、亮点、风险点与风险等级,以及赛道分类(如 AI / 大模型、开发者工具、Web、基础设施等)。分析文案用于快速筛选,不构成选型或投资建议。
交互面板与数据出口¶
- 侧边栏「GitHub 趋势」→ 主面板:KPI 概览、周期切换、语言下拉、搜索、分类筛选、仓库卡片分页(每页 6 条)。
- 工具名
github_trending、命令/github-trending、HTTPGET /dsh-github-trending/report返回同一套报告 JSON(含repos[]、summary、Mermaid 图表源码字段mermaid);面板本身不展示条形图源码与下载入口,图表数据供脚本或二次渲染使用。
缓存与网络¶
报告缓存 10 分钟(同周期并发请求合并);GitHub API 事实缓存 6 小时;遇 403/429 后 5 分钟内跳过增强。直连 github.com 失败时可回退 Harness 配置的 ctx.web.fetch 传输通道。
安装与启用¶
在 DSH 中通过 plugin_manager 安装 bundle(任选一种来源,装的是同一份编译产物):
本地目录:
plugin_manager(action="install_bundle", target="<绝对路径>/dsh-github-trending")
从 GitHub:
plugin_manager(action="install_bundle", target="github:Royalsan/dsh-github-trending")
从 npm:
plugin_manager(action="install_bundle", target="@royalsan/dsh-github-trending")
从 Release 预构建 tarball(适合网络受限、不拉源码不构建):
plugin_manager(action="install_bundle", target="https://github.com/Royalsan/dsh-github-trending/releases/latest/download/dsh-github-trending.tgz")
安装会写入当前 profile 的 package.json 与 cordis.patch.yml(插入 dsh-github-trending),Web UI 中出现侧边栏入口、工具 github_trending 与命令 /github-trending。
配置¶
在 cordis.yml / bundle patch 的 config: 中可覆盖(均有默认值):
| 字段 | 类型 | 默认 | 说明 |
|---|---|---|---|
token |
string | $GITHUB_TOKEN / $GH_TOKEN |
可选,提升 API 限额;勿把 token 写进仓库 |
defaultSince |
daily|weekly|monthly |
daily |
工具/命令未指定周期时使用 |
defaultLimit |
number | 15 |
抓取条数(3–25) |
defaultFocus |
number | 3 |
深度融合解读的仓库数(1–6) |
典型用法¶
斜杠命令:
/github-trending # 今日榜,全语言
/github-trending weekly rust # 周榜,Rust
工具调用等价参数示例:
{ "since": "weekly", "language": "rust", "limit": 20, "focus": 4, "refresh": false }
HTTP(同源,供面板与外部脚本):
GET /dsh-github-trending/report?since=daily&language=&limit=15&focus=3&refresh=0
适用场景与注意¶
适合需要在 DSH 会话或 Web UI 内定期查看 Trending、并按统一维度(增速、技术栈、风险标签)粗筛仓库的开发者。榜单条数随 GitHub 返回变化,通常约 10–16 条;star 增量以 Trending 页面给出的周期内新增为准。
安装前请自行审阅 GitHub 仓库 源码与 MIT 许可证。插件以当前 DSH 进程权限运行,会访问 GitHub 与 Trending 页面;若配置 token,请仅通过环境变量传入。DSH 社区插件目录(如 SkillHub 条目)为独立站点,与 DeepSeek / 幻方无官方从属关系。
结尾¶
dsh-github-trending 把 Trending 抓取、规则化分析和 Harness 内卡片报告串成一条链路,并保留 JSON / Mermaid 出口供自动化使用。进一步了解可查看目录页 SkillHub 与源码 Royalsan/dsh-github-trending。