前言¶
在 DeepSeek Harness(DSH)里用智能体改代码、推到 GitHub,常见做法是每次在会话里口述「先 commit 再 push」。网络代理时通时断、凭据是否已缓存、推完有没有和远端 HEAD 对齐、tag 是否打在正确提交上——这些判断容易因会话不同而重复踩坑,也缺少统一回执。
dsh-github-flow 由维护者 JiangHuai24 发布,分类为工作流。它向 DSH 全局 skill 层注册 github-push 及配套脚本,使各会话在说到「推到 GitHub」时走同一套固定流程,而不是临时拼凑命令。
这是什么¶
插件在 Host 侧注册名为 github-push 的 skill(含 scripts/gh-push.ps1),catalog 会实时刷新,所有会话可见。README 中的定位是:把「提交 → 推送 → 校验 → 发 Release」固化成共用流程,替代 ad-hoc 的 Git 操作。
社区目录页:https://www.skillhub.cn/plugins/JiangHuai24/dsh-github-flow
源码与说明:https://github.com/JiangHuai24/dsh-github-flow
核心功能¶
全局 github-push skill¶
| 内容 | 说明 |
|---|---|
github-push skill |
全局层注册,所有会话可见 |
scripts/gh-push.ps1 |
一键执行:探测网络 → 提交 → 推送(带重试)→ 校验 sha → 打 tag → 发 Release |
流程要点(来自 README):
- 推完后校验
remote refs/heads/<branch> == local HEAD。 - 不猜测网络:直连与
127.0.0.1:7890交替失效时,先探测再选路。 - 凭据不落库:token 只从 Git Credential Manager 取,不写进仓库、不回显。
会话内一键推送¶
输入框左侧有 GitHub 按钮:点击后会在当前会话输入框填入推送指令(不会自动发送,需按回车)。填入的指令会:
- 使用
github-pushskill 推送当前工作区; - 推送前检查 README、LICENSE、
package.json中是否含个人账号、token、绝对路径,有则替换成占位符; - 提交信息与仓库描述不出现个人账号;
- 推完后给出回执(分支、sha、校验、Release)。
侧边栏「↑ GitHub」面板¶
侧边栏底部有「↑ GitHub」按钮。打开面板后会列出所有 git 工作区(分支、改动数、路径),填写提交信息后点「提交并推送」即可。
- 与 skill 走同一条
gh-push.ps1流程:探测网络 → 提交 → 推送 → 校验 sha。 - 有改动时提交信息必填;无改动时按钮变为「只推送」。
- 面板底部显示脚本输出,成功或失败可直接查看。
多账号管理¶
设置页「GitHub 推送流程」→「GitHub 账号」:可添加账号名、切换当前账号、移除、按仓库绑定账号。
插件不保存任何 token,只记录账号名与提交身份;登录凭据由系统 Git Credential Manager 保管,推送时按需重新登录。
推送前脱敏扫描¶
POST /github-flow/scrub 会扫描将要推送的文件,报告个人账号(URL 之外)、GitHub token、Bearer token、私钥、邮箱等敏感项。只读检查,不会擅自修改文件。
设置页与 Host 接口¶
「设置 → GitHub 推送流程」展示 skill 名称、脚本路径与仓库地址,并支持一键复制命令;数据来自 Host 只读接口 /github-flow/info。
UI 尺寸与交互规范见仓库内 docs/ui-standard.md。
安装与启用¶
安装命令以 README 为准(需使用本仓库的绝对路径,不要用名称拼接其他 install 形式):
plugin_manager action=install_bundle target=<本仓库绝对路径>
插件行 id 为 github-flow。
package.json 中当前版本为 1.8.1,许可证为 MIT。插件在 DSH 的 skills 服务(Host 内置)之上工作;客户端配置为 web 平台、immediately: true。
安装前请自行阅读源码与许可证。插件以当前 dsh 进程权限运行,安装与启用前应确认是否符合你的安全策略。
典型用法¶
会话中自然语言触发¶
任意会话中说「推到 GitHub」,模型会加载 github-push 并执行类似下面的 PowerShell 调用:
powershell -NoProfile -ExecutionPolicy Bypass -File "<本仓库>\scripts\gh-push.ps1" `
-RepoPath "<repo path>" `
-Message "feat: ..." `
-Tag "v1.2.3" `
-ReleaseName "v1.2.3 - ..."
| 参数 | 说明 |
|---|---|
-RepoPath |
仓库路径,默认当前目录 |
-Message |
有未提交改动时必填 |
-Tag |
可选,推送后在 HEAD 上打 tag |
-ReleaseName |
可选,配合 -Tag 创建或更新 GitHub Release |
-DryRun |
只探测与打印,不提交、不推送 |
依赖环境¶
README 列出的依赖如下:
- Windows PowerShell 5.1+(脚本保持纯 ASCII,避免无 BOM UTF-8 被按 ANSI 解析)
git、curl.exe(Windows 10+ 自带)- DSH 的
skills服务(Host 内置)
适用场景与注意¶
适合在 Windows 环境下、频繁通过 DSH 会话把本地仓库推到 GitHub,并希望提交信息脱敏、推送后校验 sha、可选打 tag 与发 Release 的开发者。
不适合期望在 Linux/macOS 上直接运行 gh-push.ps1 的场景(脚本与依赖说明面向 Windows PowerShell)。多账号场景下仍需自行通过 Git Credential Manager 完成登录,插件只管理账号名与绑定关系。
DSH 生态强调「一切皆插件」;SkillHub 等社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系,本文仅介绍该插件在资料中写明的能力。
结尾¶
dsh-github-flow 把 GitHub 推送相关的重复判断写进全局 github-push skill 与 gh-push.ps1,并通过侧边栏面板、设置页与脱敏扫描接口补齐操作入口。若你需要统一各会话的推送流程,可在核对源码后按 README 安装 bundle。