DeepSeek Harness 插件:GitHub Trending 数据获取与可视化面板 (wang-junjian/dsh-github-trending)

在 DeepSeek Harness (DSH) 的插件生态中,开发者常需要获取 GitHub Trending 的最新数据,但 GitHub 官方并未提供开放 API,依赖第三方爬虫或手动解析 HTML 既繁琐又不稳定。下面介绍 wang-junjian/dsh-github-trending 插件,它通过直接抓取 GitHub Trending 页面,为模型提供了结构化的数据接口,同时为 Web Profile 渲染了可视化的侧边栏。

插件定位

这是一个 DeepSeek Harness bundle 插件,由用户 wang-junjian 维护。它主要解决两个问题:
1. 模型侧:提供一个名为 github_trending 的工具,让 Agent 能够按语言和时间窗口获取 Trending 仓库的结构化列表。
2. 前端侧:在 web profile 中渲染一个可停靠的右侧面板,方便开发者直接查看数据。

核心功能

该插件实现了以下具体能力:

  1. 数据获取与结构化:插件直接抓取 GitHub Trending 页面,返回包含排名、所有者、仓库名、绝对链接、描述、主要语言、总星标数、Fork 数以及今日新增星标的列表。
  2. 工具注册:在 DSH 框架中注册了 github_trending 模型可调用工具。
  3. Web 可视化面板:在 web profile 中渲染一个可停靠的右侧面板。该面板支持每日/每周/每月的 Tab 切换,支持调整大小,并可折叠至侧边栏。后台使用内存缓存,并通过 /github-trending HTTP 路由提供数据。

安装与启用

安装该插件需要使用 DSH 的命令行工具。安装后,bundle 会自动追加到 dsh.profile.bundles 配置中。

若仅需在 Headless Profile 中使用数据获取能力:

dsh plugin --profile headless add @wangjunjian/dsh-github-trending

若希望在 Web Profile 的浏览器界面中看到可视化面板,请使用:

dsh plugin --profile web add @wangjunjian/dsh-github-trending

典型用法

模型调用

在对话中,可以直接调用注册的 github_trending 工具。例如:

Show me today's trending Python repositories.

工具参数

调用时可以指定以下参数:

参数名 类型 是否必填 说明
language string 否 编程语言筛选,如 python, typescript, go。
since string 否 时间窗口,可选 daily(默认)、weekly 或 monthly。
maxResults integer 否 返回的最大仓库数量(默认 10,上限 25)。

配置调整

插件的默认配置位于 cordis.patch.yml。如果需要调整超时时间、最大结果数或缓存刷新间隔,可以在 DSH 的 Profile 配置文件中覆盖:

- id: github-trending
  config:
    enabled: true
    timeoutMs: 30000
    maxResults: 10
    refreshIntervalMs: 14400000
配置项 默认值 说明
enabled true 是否注册工具、缓存和 Web 路由。
timeoutMs 30000 每个 HTTP 请求的协同超时时间(毫秒)。
maxResults 10 工具返回的最大仓库数(上限 25)。
refreshIntervalMs 14400000 UI 缓存的后台刷新间隔(毫秒,即 4 小时)。

注意事项

  1. 无官方 API:GitHub Trending 没有官方 API,插件依赖解析当前服务器渲染的 HTML 布局。如果 GitHub 更新页面结构,解析器可能需要更新。
  2. 速率限制:未认证的请求受 GitHub IP 速率限制约束。
  3. 直接抓取:插件直接抓取 GitHub,而非通过 ctx.web,因此不继承 Harness Web 能力的 Fetch 策略。
  4. 面板实现:右侧面板通过 shell.overlay 实现,DSH 目前尚未提供原生的右侧插槽,因此面板以悬浮层形式展示。
  5. 许可:插件采用 MIT 许可证。

总结

wang-junjian/dsh-github-trending 插件填补了 DeepSeek Harness 生态中 GitHub Trending 数据获取的空白。通过将非结构化的 Trending 页面转化为结构化数据接口,它降低了开发者获取开源趋势信息的门槛。同时,Web 端的可视化面板也为开发者提供了直观的数据查看方式。

更多详情可查阅插件目录页或源码仓库:
* 插件目录页
* GitHub 仓库

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

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

小夜