前言¶
在 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。
github_search¶
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