dsh-github-panel:在 DeepSeek Harness 内完成 GitHub 日常操作

前言

用 DeepSeek Harness 做智能体开发时,议题、拉取请求、通知和仓库文件往往还要切到浏览器里的 github.com。令牌若只在网页里用,宿主进程里的 Agent 又无法直接调 GitHub API 或维护本地克隆与技能目录。下面介绍社区插件 dsh-github-panel(维护者 gpta76),它在 DSH 侧栏提供一块 GitHub 控制台:粘贴一次个人访问令牌,在应用内读写仓库相关数据,并支持克隆、自动同步与从 GitHub 安装技能项目。

这是什么

dsh-github-panel 是面向 DeepSeek Harness 的 web 侧栏插件,分类为「联网工具」。界面跑在 Web UI,但所有 GitHub 请求由宿主进程发出,不经过 CORS 代理,令牌也不会进入浏览器。数据每次刷新都从 GitHub REST API 读取;面板可见时后台约每 60 秒刷新一次,与 github.com 不易长期不一致。

插件当前版本为 1.2.0,许可证 MIT。社区目录页:skillhub.cn/plugins/gpta76/dsh-github-panel;源码与说明:github.com/gpta76/dsh-github-panel。DSH 生态强调「一切皆插件」;SkillHub 等目录为社区站点,与 DeepSeek / 幻方无官方从属关系。

核心功能

仓库与协作

能力 说明
仓库 列出可访问仓库,本地搜索,浏览目录树,预览文件(上限 300 KB)
Issues 开/关筛选,创建、评论、关闭或重新打开
Pull requests 列表、查看、评论、合并(普通 merge commit,暂无 rebase/squash 选项)
Commits 近期提交,含作者、说明与时间
Notifications 未读线程,单条或全部标已读,可跳到对应 issue/PR
Stars 星标列表,支持搜索与即时取消星标
Social 关注的人、粉丝、所属组织
Activity 你的公开动态与所关注用户的公开动态

克隆与自动同步

从「我的仓库 / 星标 / 搜索」可将仓库克隆到磁盘,并在上游更新时尽量保持同步:

  • 默认路径:$DSH_HOME/github-clones/<owner>/<repo>(即 ~/.dsh/github-clones/...);可用环境变量 DSH_GITHUB_CLONE_DIR 覆盖。
  • 同步策略:fetch + merge --ff-only;工作区干净则跟随上游分支;有本地改动则标记为 dirty 且不覆盖;分叉则报告而不强制 reset。
  • 默认每 15 分钟自动同步,可在面板关闭或调整间隔;克隆/拉取时显示整体进度与当前 git 阶段。
  • 本机需安装 git 且在 PATH 上;Windows 上插件会使用 http.sslBackend=openssl 以规避部分 Schannel 证书错误。

克隆与安装技能是两件独立的事:克隆只把仓库放到 github-clones;只有安装才会把含 SKILL.md 的内容写入 Agent 使用的 ~/.dsh/skills。

技能库

在「技能」视图或通过 Agent 工具,可将 GitHub 上的技能项目装进本地目录:

  • 单技能:owner/repo,可选子目录 dir 与 ref。
  • 整项目:把仓库内所有 SKILL.md 作为一组「项目」安装,并写入中文一行简介、用途大类(漫剧 / 图像设计 / 视频音频 / 开发工具 / 文档办公 / 数据分析 / 自动化)及小类,以及写入 whenToUse 的 AI 检索关键词。
  • 元数据落在 $DSH_HOME/plugin-data/github-panel-projects.json,技能目录旁有 .dsh-project.json。
  • 「检查更新」与 15 分钟自动同步会对比上游提交并重装已变动的项目;已安装技能的克隆行显示绿色「已安装」。

访客模式(邀请码)

连接卡片上的「邀请码」可进入只读访客视图:仅用公开 GitHub 数据展示资料、公开仓库、星标与动态,不保存令牌,宿主拒绝写操作。

提供给 Agent 的八项工具

宿主注册以下工具,便于对话中驱动 GitHub、克隆缓存与技能库:

工具 用途
github_api 用已存令牌调用任意 GitHub REST(method、path、可选 body)
github_skill_list 列出本地目录中的技能及来源仓库
github_skill_install 安装 owner/repo 到 ~/.dsh/skills
github_skill_remove 按名称移除已安装技能
github_skill_project 对整技能项目 list / install / remove
github_clone_list 列出本地克隆及分支、upstream、ahead/behind、dirty 状态
github_clone 克隆 owner/repo(可选 ref)
github_clone_sync 对单个克隆 fetch + 快进,或 all: true

安装与启用

官方安装命令(须带 --profile web):

dsh plugin --profile web add github:gpta76/dsh-github-panel

若使用本地检出目录,也可:

dsh plugin --profile web add /absolute/path/to/dsh-github-panel

安装后重启 DeepSeek Harness,在侧栏打开 GitHub。

连接 GitHub

  1. 在 GitHub Settings → Tokens 创建个人访问令牌。
    - Classic:勾选 repo、read:user、notifications。
    - Fine-grained:需仓库内容、issues 与 PR 读写,以及 profile 相关权限(见 README 说明)。
  2. 将令牌粘贴到面板,点击 连接 / Connect。宿主会先用 GET /user 校验再保存。

令牌存储位置:

$DSH_HOME/plugin-data/github-panel.json

默认即 ~/.dsh/plugin-data/github-panel.json,文件权限 0600。旧版本若曾写入共享凭据存储,首次读取会迁移到该文件并删除旧记录。点击 断开 / Disconnect 会删除令牌;插件不把令牌共享给其他组件。

典型用法

在面板内处理通知与 PR:连接后打开通知页,标已读后点进对应 issue 或 PR,在面板内评论或合并(受令牌权限与仓库策略约束)。

克隆并跟踪上游:在仓库或星标列表点「克隆」,观察进度条;之后依赖 15 分钟自动同步或手动触发同步,本地有未提交改动时不会被快进覆盖。

为 Agent 安装技能项目:克隆某技能仓库后,点该行「安装」,或于技能视图填写 owner/repo;Agent 匹配任务时会依据 whenToUse 与分类检索 ~/.dsh/skills/<name>/SKILL.md。

在对话里让 Agent 调 API:在具备工具权限的会话中,Agent 可通过 github_api 访问 REST,或用 github_clone / github_clone_sync 管理本地克隆。

适用场景与注意

适合希望在 DSH 内闭环 GitHub 读写、本地克隆与技能安装、且愿意自行管理 PAT 的开发者。单次安装绑定一个 GitHub 账号;合并策略目前仅为普通 merge。

安全与运行环境方面请留意:

  • 插件以当前 dsh 进程权限运行,安装前建议阅读 源码 与 MIT 许可证,确认路由校验、RPC 路径限制(仅接受以 / 开头的路径、拒绝绝对 URL)及令牌仅用于 api.github.com 等说明是否符合你的策略。
  • 无需 npm 发布;直接从 GitHub 仓库安装即可。

结尾

dsh-github-panel 把令牌校验、REST 访问、克隆同步和技能目录维护收进 DSH 侧栏与宿主工具,减少在浏览器与终端之间来回切换。需要详情时查阅社区目录 skillhub.cn/plugins/gpta76/dsh-github-panel 与仓库 README github.com/gpta76/dsh-github-panel。

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

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

小夜