前言¶
在 DeepSeek Harness(DSH)里做完一轮改动,目录还在本机,若要把同一套树建成 GitHub 仓库并完成首次提交与推送,通常要在终端里依次 git init、配置 remote、gh repo create、再 push。步骤不多,但会打断当前会话节奏。
下面介绍的 dsh-publish-github 把整条链路收成一条斜杠命令:在 Composer 里指定本地路径,由插件按序执行初始化、暂存、提交与推送(或创建远程仓库),并在会话里用 ✓/✗ 逐行回报每一步。插件归类为 DSH 社区目录中的「联网工具」,维护者为 lucyVan;仓库见 GitHub,目录页见 SkillHub。社区目录为独立站点,与 DeepSeek / 幻方无官方从属关系。
这是什么¶
dsh-publish-github 是面向 DeepSeek Harness 的 GitHub 发布插件。它通过宿主提供的 ctx.commands.register 注册 /publish,不依赖打包在 Electron app.asar 内的 @deepseek-ai/* 包,因此以磁盘挂载方式安装后即可使用。当前版本 0.1.0,许可证 MIT;engines 要求 Node >= 22,DSH >=0.2.2-rc.1 <0.3.0-0(资料记载在 0.2.2-rc.1 上验证过)。
核心功能¶
一条命令覆盖从本地目录到 GitHub 的首次发布流程:
/publish <dir> → git init(如需要)→ git add -A → commit(首次提交)
→ 已有 origin → push;否则 → gh repo create --source . --push
设计上强调安全边界:
- 拒绝 force-push、删分支、reset 历史等危险操作措辞;
- 远程
origin已存在时只做普通push,不会重建 remote; - 子进程环境中剥离
DSH_*变量,避免 Harness 配置传入gh; - 允许发布用户显式指定的任意目录(路径即授权范围)。
可选参数(摘自 README):
| Flag | 作用 |
|---|---|
--private |
创建私有仓库(默认公开) |
--name <repo> |
仓库名(默认取目录 basename) |
--message "<msg>" |
提交说明 / 仓库描述(默认 Publish <repo>) |
--author <name> |
首次提交作者名(默认 git 配置) |
--email <addr> |
首次提交作者邮箱(默认 git 配置) |
已知限制:仅提供 /publish,无设置页;只面向 GitHub,不发布 npm;远程已有不相关历史时推送失败且原样回报错误,不做冲突合并。
安装与启用¶
插件声明了 dsh.bundle,通过 dsh plugin add 会以 profile 层自动注册,无需手改 patch。
从 GitHub 安装(资料原文命令):
dsh plugin --profile desktop add github:lucyVan/dsh-publish-github
本地 checkout 安装:
dsh plugin --profile desktop add /absolute/path/to/dsh-publish-github
安装后需重启 DSH。完成 GitHub 授权任选其一:
- 安装 GitHub CLI 并登录:
# macOS
brew install gh
# Windows (PowerShell / winget)
winget install --id GitHub.cli
# Linux (Debian/Ubuntu)
sudo apt install gh
# 各平台相同
gh auth login
- 或在 DSH credentials 中保存
GITHUB_TOKEN;插件会将其作为GH_TOKEN注入gh子进程,从而可不依赖gh auth login。
卸载:
dsh plugin --profile desktop remove dsh-publish-github
然后重启 DSH。
若 DSH 升级后超出 engines.dsh 窗口,安装可能被拒绝;README 说明可用 dsh plugin --profile <name> allow-version ... --accept-risk 尝试未验证宿主,并建议先备份工作区。
典型用法¶
在 Composer 中指定要发布的目录:
/publish /path/to/your/project
路径含空格时加引号;Windows 与 Unix 路径写法 README 均有示例:
/publish "C:\Users\me\My Projects" --private
/publish "/Users/me/My Projects" --name my-project
组合私有仓库、自定义仓库名与说明:
/publish ~/IdeaProjects/my-plugin --private --name best-plugin --message "My first DSH plugin"
依赖项:git 与 gh 均须在 PATH 上;README 记载 macOS 上测过,Windows 未测但已实现多种 gh 可执行名探测与引号路径处理。
适用场景与注意¶
适合:在 DSH 桌面 profile 中快速把插件原型、脚本目录或小型项目首次推到 GitHub,且希望步骤可视、默认不做破坏性 git 操作的用户。
注意:
- 插件代码在 DSH 进程权限下运行;安装前应阅读 仓库源码 与 MIT 许可证,确认行为符合预期。
- 首次提交的默认作者为
DSH <dsh@localhost>(README 注明,可事后 amend);也可用--author/--email覆盖。 - 仅 GitHub;不与 npm 发布混用。
- 社区目录当前星标为 0,不代表质量结论,仅以文档与仓库声明为准。
结尾¶
经过上面的步骤,你可以在不大开终端编排的情况下,用 /publish 完成「初始化 → 提交 → 建库或推送」。进一步细节以 README 为准:
- 目录页:https://www.skillhub.cn/plugins/lucyVan/dsh-publish-github
- GitHub:https://github.com/lucyVan/dsh-publish-github