dsh-github-ops:让 DSH 可写可管你的 GitHub

前言

在 DeepSeek Harness(DSH)里接 GitHub,常见插件多半停留在只读:搜仓库、读文件、看 issue。你要的是「帮我把这个目录传上去」「改安装说明并提交推送」这类闭环操作时,往往还得自己开终端或切到 IDE。

dsh-github-ops 由维护者 Lzfbite 发布,分类为联网工具,目标是把 DSH 变成能建仓库、改文件、本地 git 提交推送、开 PR 和 issue 的 GitHub 操作面。Personal access token 放进 DSH credential store,而不是写进可被导出分享的插件配置。下文按安装、鉴权、七个工具与典型流程介绍用法;事实以仓库 README 与 package.json 为准。

这是什么

dsh-github-ops 是 DSH 的 host 侧插件(export function apply(ctx) + export const inject = ['tools']),当前版本 1.0.0,MIT 许可证。简介原文:Let DSH operate your GitHub: create and manage repos, read/write files, clone/commit/push, open PRs and issues. Token kept in the credential store.

插件在工具层给出三条路径:仓库级操作用 GitHub REST(github_repo);仓库内文件读写用 Contents API(github_file);需要在本地真实改代码再推上去时用你机器上的 git(github_git)。另提供 github_pr、github_issue、github_search 以及保存 token 的 github_auth,合计 7 个工具。

与「只读 GitHub 插件」的差异

README 中的对照可以概括为:已有插件多侧重检索与读取;本插件支持创建与删除仓库、直接改写远程文件、clone/commit/push,以及 PR、issue 的创建与管理。搜索仍可通过 github_search 完成,并支持 GitHub 搜索语法(例如 language:rust stars:>500)。

层次 走哪条路 工具
仓库本身(建 / 删 / 看 / 列) GitHub REST API github_repo
仓库里的文件(读 / 列目录 / 直接改写) GitHub Contents API github_file
本地改代码再推上去 本机 git github_git

安装与启用

官方给出三种安装方式,任选其一即可。

从 GitHub 源码一行安装

dsh plugin add github:Lzfbite/dsh-github-ops

插件市场(收录后)

插件已提交到 awesome-dsh-plugin 精选列表;收录后在 DSH 市场里打开分类 git,找到 dsh-github-ops 一键安装。DSH 社区目录是独立站点,与 DeepSeek / 幻方无官方从属关系,不宜理解为官方应用商店。

预构建包(无构建步骤)

dsh plugin add https://github.com/Lzfbite/dsh-github-ops/releases/latest/download/dsh-github-ops-1.0.0.tgz

说明:这是 host-only bundle,仅含 index.js,无依赖、无构建、无 postinstall。装完后重启 DSH,7 个工具会出现在工具列表。package.json 要求 Node >=22。

连接 GitHub 账号

插件不会代为生成 token。需要在 GitHub → Settings → Developer settings → Personal access tokens 自行创建,再调用:

github_auth action=login token=ghp_xxxxxxxx

README 推荐 fine-grained token,并按实际用到的工具勾选能力:

能力 用来做什么
Contents: Read & write github_file 读写、github_git 推送
Metadata: Read 列出/查看仓库
Pull requests: Read & write github_pr 建 PR / 合并 / 评论
Issues: Read & write github_issue 建 issue / 评论 / 关闭
Administration: Read & write 仅在创建或删除仓库时需要

若使用经典 token,README 写明 repo + workflow 基本够用。保存后可执行:

github_auth action=status

用于确认当前登录用户、token 来源(credential store / 环境变量 / 本次会话),以及本机 git 是否可用。logout 可清除已保存的 token。

七个工具概览

github_auth

status 查看状态;login 保存 token;logout 清除已保存 token。

github_repo

list、view、create、delete。删除仓库时必须在 confirm 参数中原样复述 owner/name,用于防误删。

github_file

read、list、write。write 会自动取已有文件的 sha 做更新;message 为提交说明。

github_git

在本机执行真实 git:clone、status、diff、log、commit、push、pull、fetch、checkout、branch。

  • clone 默认落到 ~/dsh-github/<owner>/<name>,可通过环境变量 DSH_GITHUB_DIR 修改根目录。
  • commit 默认 git add -A 后提交;push / pull 自动带上 token 认证。
  • 认证走一次性 header,origin 的 URL 里不会出现 token。

仅 github_git 需要系统已安装 git;纯 REST 类工具不依赖 git。

github_pr

list、view、create、merge、comment。

github_issue

list、view、comments、create、comment、close、reopen。

repos、code、issues,支持 GitHub 搜索语法。

典型用法(README 示例)

下面两段来自 README,展示对话式指令与工具链的对应关系,便于对照实现自己的 prompt。

把本地项目传到 GitHub:

你:把 D:\work\my-app 这个项目传到我 GitHub 上
它:github_repo create name=my-app  →  github_git clone  →  拷贝文件
    github_git commit message="初始提交"  →  github_git push
    仓库:https://github.com/you/my-app

改 CI 并开 PR:

你:给 my-app 加个 CI,跑完给我开个 PR
它:github_file write .github/workflows/ci.yml  →  github_git checkout -b ci
    github_git commit  →  github_git push  →  github_pr create ...

经过上面的步骤可以理解:简单单文件改动可走 github_file;需要分支、多条提交或本地目录同步时,应串联 github_git 与 github_pr。

安全边界与环境变量

Token 存放: 优先写入 DSH credential store(记录地址 dsh-github/token);取不到 store 时依次退回环境变量 GITHUB_TOKEN / GH_TOKEN,再退回本进程内存(仅当前会话有效,输出中会说明)。

刻意不做的事: token 不写进插件配置;不进 git remote URL(git 使用 http.https://github.com/.extraheader);工具输出中的 token 形态会被抹成 ***。删仓库需二次确认;README 强调其余写操作应为人可见的一步,不做后台批量动作。

可选环境变量:

变量 默认 说明
DSH_GITHUB_DIR ~/dsh-github github_git clone 的落点
GITHUB_API_URL https://api.github.com GitHub Enterprise 或代理端点
GITHUB_TOKEN / GH_TOKEN — 无 credential store 时的兜底

适用场景与注意

适合谁: 已在 DSH Desktop 或 dsh CLI 上开发智能体、希望用自然语言完成建库、推代码、开 PR/issue 的开发者。需要 Enterprise 或自定义 API 端点时,可配置 GITHUB_API_URL。

安装前建议: 插件以当前 DSH 进程权限在本机执行,包含调用 git、读写 DSH_GITHUB_DIR 下目录、调用 GitHub API。安装前应自行查看 GitHub 仓库 源码与 MIT 许可证,并只授予所需最小 token 权限。

兼容性: 支持 DSH Desktop / dsh CLI;无 peer 依赖、无构建、无 postinstall。修改插件源码后需重启 DSH 生效(开发说明见 README)。

结尾

dsh-github-ops 把 GitHub 从「只读查阅」扩展到「可写可管」,并用 credential store 隔离 token、用确认参数约束删库等高风险操作。若你要在 DSH 里闭环仓库与协作流程,可先按本文完成安装与 github_auth,再按任务选用 REST、Contents 或本机 git 三条路径。

  • 目录页:https://www.skillhub.cn/plugins/Lzfbite/dsh-github-ops
  • GitHub:https://github.com/Lzfbite/dsh-github-ops
羽毛球分组比赛记分
小程序二维码

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

Xiaoye