前言¶
维护 DSH 插件时,从改完代码到用户能安装,往往要串起版本号、测试、Git 推送、npm 发布、registry 生效确认,以及可选的桌面版安装和目录提交。步骤多、凭据敏感,手工容易漏检或重复发布。@jojonadam/dsh-release 把这条链路收成一条命令,默认只读预检,写操作需显式 --yes;凭据从 macOS 钥匙串读取,不落盘、不打印。
这是什么¶
dsh-release 由 JOJO-Adam 维护,在 SkillHub 上归类为工作流插件。定位是 DSH 插件的一键发布流水线:check、bump、test、push、publish、verify、install。包名为 @jojonadam/dsh-release,MIT 许可,要求 Node.js >= 20、DSH >= 0.2.0-rc.2。
流水线顺序可概括为:
check → 升版本 → 测试 → commit → SSH push → npm publish → 等 registry 生效 →(可选)装桌面版
核心功能¶
环境体检:doctor 检查 token、SSH、dsh CLI 是否就绪。
预检(只读):check 针对目标插件目录做发布前校验;加 --scan 时对包内文件与 ~/.dsh/memory 做脱敏扫描,high 级命中会阻断(可用 --no-scan 跳过)。
发布计划预览:release 配合 --dry-run 预览 bump 与后续步骤,不写入。
正式发布:release 加 --bump(如 patch)与 --yes 执行升版本、测试、提交、推送、npm 发布并轮询 registry;加 --install 可在发完后安装到桌面版 profile。
仅安装已发布版本:install 只拉 registry 上已有版本,不 bump、不 publish。
目录提交:hub-issue 可向 dsh-plugin-hub 提交插件信息(需 --category 与 --value)。
凭据约定(macOS 钥匙串):
| 凭据 | 位置 |
|---|---|
| npm token | 钥匙串 generic dsh-npm-token |
| GitHub token | 钥匙串 internet password github.com |
| SSH key | ~/.ssh/id_ed25519_dsh |
换账号或改 scope 时,可改脚本顶部常量。
文档中归纳的常见问题包括:cordis.patch.yml 的 name 须与 package.json 的 name 一致;scoped 包须 publishConfig.access=public;npm pack 不能带 test/;首次发布 registry 有几分钟 202 延迟需轮询;npmmirror 对新包不同步,发布与安装应显式走 npmjs;pnpm 的 minimumReleaseAge 可能挡新版本;GitHub HTTPS 不通时可改用 SSH 并显式指定 key 与 known_hosts。
安装与启用¶
在 Web 或 Desktop profile 下通过 DSH 插件命令安装(勿用未在文档中出现的 github:owner/repo 拼接方式):
dsh plugin --profile web add @jojonadam/dsh-release
dsh plugin --profile desktop add @jojonadam/dsh-release
安装后,发布脚本位于插件内的 skills/dsh-release/scripts/release.mjs。插件以当前 dsh 进程权限运行,安装前请自行查看仓库源码与 MIT 许可证。
典型用法¶
先做一次环境体检:
node skills/dsh-release/scripts/release.mjs doctor
对目标插件目录只读预检:
node skills/dsh-release/scripts/release.mjs check --dir /path/to/dsh-xxx
预检并做脱敏扫描:
node skills/dsh-release/scripts/release.mjs check --dir /path/to/dsh-xxx --scan
预览 patch 级发布计划:
node skills/dsh-release/scripts/release.mjs release --dir /path/to/dsh-xxx --bump patch --dry-run
确认后真发布:
node skills/dsh-release/scripts/release.mjs release --dir /path/to/dsh-xxx --bump patch --yes
发完并装进桌面版:
node skills/dsh-release/scripts/release.mjs release --dir /path/to/dsh-xxx --bump patch --yes --install
只安装已发布版本、不重新 publish:
node skills/dsh-release/scripts/release.mjs install --dir /path/to/dsh-xxx
向 dsh-plugin-hub 提交条目示例:
node skills/dsh-release/scripts/release.mjs hub-issue --dir /path/to/dsh-xxx \
--category "Tools & Capabilities" --value "一句话价值"
适用场景与注意¶
适合经常发布自有 DSH 插件、希望把 check → publish → verify 固定成同一套步骤的维护者,尤其是已在 macOS 上用钥匙串管理 npm / GitHub / SSH 的环境。
注意:默认行为偏安全(只读、扫描可阻断);生产发布务必先 --dry-run 再 --yes。社区目录 SkillHub(https://www.skillhub.cn/plugins/JOJO-Adam/dsh-release)与 GitHub 仓库为独立信息源,与 DeepSeek / 幻方无官方从属关系;DSH 生态强调「一切皆插件」,本插件是工作流类辅助,不替代你对包内容与许可证的审查。
结尾¶
dsh-release 把 DSH 插件从本地改完到 npm 可装、可选桌面安装与 hub 提交,收成可重复的命令行流程。更多说明见 SkillHub 目录页 与 GitHub:JOJO-Adam/dsh-release。