dsh-publish-github:在 DSH 会话里用 /publish 把本地目录推到 GitHub

前言

在 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 授权任选其一:

  1. 安装 GitHub CLI 并登录:
# macOS
brew install gh

# Windows (PowerShell / winget)
winget install --id GitHub.cli

# Linux (Debian/Ubuntu)
sudo apt install gh

# 各平台相同
gh auth login
  1. 或在 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 操作的用户。

注意:

  1. 插件代码在 DSH 进程权限下运行;安装前应阅读 仓库源码 与 MIT 许可证,确认行为符合预期。
  2. 首次提交的默认作者为 DSH <dsh@localhost>(README 注明,可事后 amend);也可用 --author / --email 覆盖。
  3. 仅 GitHub;不与 npm 发布混用。
  4. 社区目录当前星标为 0,不代表质量结论,仅以文档与仓库声明为准。

结尾

经过上面的步骤,你可以在不大开终端编排的情况下,用 /publish 完成「初始化 → 提交 → 建库或推送」。进一步细节以 README 为准:

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

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

小夜