dsh-plugin-gh-trending:在 DSH 里盯 GitHub 日/周/月热榜

前言

做智能体或本地开发环境时,GitHub Trending 仍是很多人看「最近在涨什么仓库」的入口。常见做法是浏览器书签、RSS,或自己写脚本定时抓页面;这些方式要么缺少结构化变化记录,要么要把通知、翻译、详情再拼一套。DeepSeek Harness(DSH)把能力拆成插件后,可以在桌面宿主侧边栏直接挂一块面板,用只读 GET 拉趋势页和 REST 元数据,把榜单变化、中文描述和按需详情收在同一处。下面介绍社区插件 gh-gongjin/dsh-plugin-gh-trending 的定位、能力与安装用法。

这是什么

dsh-plugin-gh-trending 由维护者 gh-gongjin 发布,在 SkillHub 目录中归类为联网工具(当前 package 版本 0.1.0,MIT 许可证)。插件在 DSH 侧边栏「插件」区域增加入口,核心只做三件事:跟踪日榜 / 周榜 / 月榜各自怎么变、标出同时出现在多张榜的仓库、记录本机第一次见到的仓库。变化流水写在插件面板内,不推送外部通知。

对 github.com / api.github.com 的请求全程只读 GET:默认不带 key、不带 cookie、不 POST、不下载 zip、不 clone。常规检查轮每轮向三张趋势页各发一发(传输失败时单榜最多补发至 3 发);可选的「全站高星」搜索在出厂默认关闭,开启后检查轮最多再多一发,且与用户手动开启时的规则在 README 中有单独说明。

SkillHub 与 DeepSeek / 幻方无官方从属关系,社区目录是独立站点;安装前仍应自行阅读仓库源码与许可证。

核心功能

三榜监控与独立故障隔离

数据源是 GitHub 趋势页的 HTML(https://github.com/trending?since=daily|weekly|monthly),属于非官方页面解析:站点改版可能导致解析失效,README 中说明了不选用 Search API 复刻「趋势名次」的原因。

日、周、月三榜各有一份状态:某一榜抓取或解析失败时,只冻结该榜,显示最后一次成功数据与故障原因,其它两榜照常更新。可配置检查间隔(设置页,出厂默认 60 分钟)、每榜条数(5~25,默认 15)、语言过滤(合法 slug 保存时会用周榜试拉验证)。

变化流水与跨榜分析

插件在本地面板记录事件类型,例如进榜、出榜、位次大幅变动、首次上榜、改名(靠 record_id 识别同一仓库换 owner/name)、跨榜升温/回落、数据源错误与恢复等。位次变动阈值:日/周榜 ≥3、月榜 ≥2 才记「挪动」。三张榜在同一次检查中取得,跨榜同现分析不额外请求 GitHub。

页签与典型界面

安装并重启宿主后,面板为页签结构(README 当前为九个签):总览 / 日榜 / 周榜 / 月榜 / 明星仓库 / 收藏 / 检索 / 变化记录 / 设置。总览给三榜状态与速览;各榜为表格,含描述列;明星仓库基于本地三榜行与观测史,打开该签零请求;收藏存收藏时刻快照(星数、描述不随榜面刷新);检索为按需 GitHub 搜索,结果不入库;变化记录为全量流水。

点榜面上的仓库名才会打开详情对话框,此时才访问 api.github.com 拉元数据与 README,并组装为四段结构化内容(项目是什么、热度与元数据、仓库自述、中文摘要/节译)。详情有 TTL 缓存(出厂默认 24 小时,可调),并支持条件请求;可选填 GitHub 令牌(仅进 Authorization 请求头,用于详情 REST 配额,榜面趋势页仍匿名)。

中文描述与现译

  • 内置离线预译表(lib/desc-zh.js):命中则显示人工预译中文,带「内置离线预译 · 日期」;判据为仓库主键 + 原文与表内逐字相同,原文被作者改掉则退回英文描述。
  • 现译引擎五档(设置页选一):免费接口、百度、腾讯、阿里、宿主模型;描述现译出厂开启,摘要现译出厂关闭。现译发生在「点开详情时」与「每轮检查后对榜面未命中内置表的描述补批」两处;读面板路径不因翻译额外出网,补译预算为每轮最多 12 发、并发 2(与 README §8.7 一致)。

需要代理时,插件可走自有的 CONNECT 隧道(lib/services/net.js),不修改系统代理、不监听端口。

安装与启用

DSH 生态理念是「一切皆插件」;下面命令来自仓库 README 原文。

方式 A:官方 CLI

CLI 内部使用 pnpm,需保证 pnpm 在 PATH 中。

dsh plugin --profile desktop add github:gh-gongjin/dsh-plugin-gh-trending

本地开发目录也可指向绝对路径安装:

dsh plugin --profile desktop add <本仓库的绝对路径>

方式 B:手工挂载

编辑桌面 profile 的 package.json(Linux 一般为 ~/.dsh/profiles/desktop/package.json),在 dependencies 增加 link: 依赖并在 dsh.profile.bundles 追加包名,再在 profile 的 node_modules 下建立目录联接。具体字段与 PowerShell 示例见 README「安装」一节。

宿主侧(index.js、lib/**)改动后需重启 dsh;仅改 client.js 时刷新面板即可。

临时停用可在 ~/.dsh/profiles/desktop/cordis.patch.yml 写入:

- id: gh-trending
  disabled: true

典型用法

  1. 完成安装并重启 dsh desktop,在侧边栏打开 GitHub 热榜插件入口。
  2. 在设置页确认检查间隔、出网方式(跟随系统 / 自定义代理地址 / 直连)、语言过滤;若直连 GitHub 超时,可改为跟随系统或填写形如 127.0.0.1:7897 的 HTTP 代理地址。
  3. 使用页头 「立即检查」 手动触发一轮抓取(与定时检查同属一轮出网账);在日榜 / 周榜 / 月榜浏览描述列(内置预译与现译可能并存,悬停可看原文与来源)。
  4. 需要深入某仓库时,点击仓库名打开详情;若频繁点开详情,可在设置中配置 GitHub 令牌与详情缓存时长,并留意 REST 速率限制(匿名档 README 记载为 60 次/小时/IP,带令牌时按 GitHub 返回的限额显示)。
  5. 用 ☆ 收藏感兴趣的项目(三榜行尾、明星屏、详情标题处均可);收藏列表为快照,要最新星数或描述需再点进详情链。
  6. 可选:在明星仓库签查看反复上榜与走势;按需开启「全站高星」或到检索签输入关键词后回车或点「搜一下」(检索结果不持久化,切签或重启后消失)。

适用场景与注意

适合谁:希望在 DSH 工作台内长期盯 Trending、看跨榜升温、本地留变化流水,并偶尔点开详情读 README 中文节译/摘要的开发者;不想自己维护爬虫和通知通道,且接受「非官方 HTML 解析可能失效」这一前提。

权限与安全:插件以当前 dsh 进程权限运行,会访问 GitHub 与(若配置)翻译云 API;云厂商密钥与 GitHub 令牌只进请求签名或请求头,README 对回显与日志有约束。安装前应阅读 GitHub 仓库 源码与 MIT 许可证,再决定是否填入第三方凭据。

边界:不是 GitHub 官方产品;榜单名次以趋势页为准。不做外部推送;现译与模型调用消耗各自额度(云厂商计费以官网为准)。内置描述预译表条目有限且会随时间衰减,新上榜仓库可能长期只显示英文描述,直到命中预译或补译成功。

结尾

dsh-plugin-gh-trending 把 GitHub 日/周/月热榜监控、变化流水、跨榜分析与中文描述/详情阅读收进 DSH 侧边栏,并在设计上强调只读 GET、分榜故障隔离与按需拉详情。目录介绍与安装说明见 SkillHub 插件页,完整行为与配置口径以 GitHub README 为准。

羽毛球分组比赛记分
小程序二维码

欢迎使用《羽毛球分组比赛记分》微信小程序

Xiaoye