dsh-release:DSH 插件一条命令发布流水线

前言

维护 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。

羽毛球分组比赛记分
小程序二维码

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

Xiaoye