前言¶
在 DSH 里做完一个插件,真正费时间的往往不在写代码,而在重复发布:每个代码托管站各建仓库、补 README 与 package.json 元数据、git push、打 tag、建 Release;若要上 npm,还要再核对版本占用、npm publish 与 registry 回查。发新版时版本 bump 与多远端同步更容易漏一步。手工走完十几步,平台之间字段大同小异却要对每一遍。
下面介绍维护者 wodaimnd 的 multi-platform-releaser(DSH 侧栏名「多代码平台发布插件」),把「选插件 → 勾平台 → 填一套发布要素 → 预检 → 一次发布」收进同一页面,并暴露 Agent 工具与 HTTP API。本文事实均来自 GitHub 仓库 README 与仓库内 package.json。
这是什么¶
multi-platform-releaser 是 DeepSeek Harness(DSH)的 Web 插件,分类属「联网工具」。定位是:把本机上的 DSH 插件一次发布到多个代码平台(GitHub / Gitee / Codeberg,可多选,外加 npm):左侧栏打开发布台,勾选目标平台,补全一套发布要素后,同一个 commit 推到各远端,各自建仓、各自发 Release;某一平台失败不阻断其余平台,结果按平台分列。依赖本机 git、Node 自带的 npm 与各平台 REST API,无额外构建步骤。
社区目录页:skillhub.cn 插件页。源码与说明:github.com/wodaimnd/multi-platform-releaser。许可证为 MIT(package.json 所载)。
核心功能¶
界面与发现¶
- 左侧栏入口「多代码平台发布插件」,中央页签:发布 / 平台配置 / 版本同步,主题随宿主浅色/深色切换。
- 本地插件自动发现:扫描 profile 的
link:/file:依赖、已注册工作区、当前目录与自定义扫描目录,识别带dsh.bundle/dsh.client的包;展示版本、README/LICENSE 状态、git 状态与已发布平台。
一套元数据 + 平台矩阵¶
name、version、description、descriptionZh、topics、license、README、releaseNotes 统一填写;每平台一行勾选,带状态徽章(未启用 / 未配凭据 / token 掩码)。勾选 npm 后展开 access、dist-tag、2FA OTP;未勾选 GitHub 时仓库字段只读且不参与校验(可仅发 npm)。
一键发布与容错¶
按钮文案随勾选变化(例如「发布到 GitHub + npm registry」)。任务按平台分组:GitHub 侧校验 → 建仓/复用 → topics → commit → push → tag + Release;npm 侧校验 → 版本守卫(与 registry latest 比较,同名或更低版本直接阻塞)→ npm publish → 回查。单平台失败不中断其他平台。
版本同步¶
矩阵维度:插件 × 平台 × 本地版本 × 远端版本 × 状态(已同步 / 落后 / 未发布等)。落后行可「发布到落后平台」,或先「只提升版本」做 patch/minor/major bump。
辅助能力¶
- AI 补全发布信息:用 DSH 已配置的 DeepSeek 模型读 package.json / README / 文件列表,生成英文描述、中文简介、topics、Release 说明(只消耗模型额度,不自动发布)。
- 仓库文件完善(预览后写入):README 双语模板、标准 LICENSE、Node/DSH
.gitignore、package.json只补缺失字段。 - 预检:平台选择、git/npm CLI、凭据、包名、远端版本占用、工作区脏状态等;阻塞项标红并定位到设置或表单。
- 演练模式:本地准备与提交,不建仓、不推送、不 Release;npm 用
--dry-run,可无凭据完整走通配置。 - 嵌套仓库安全:插件位于父 git 仓库内时,在插件目录建独立 git 仓库,预检会提示父仓库可见的文件改动。
- 凭据:GitHub 支持
GITHUB_TOKEN/GH_TOKEN、gh auth token、git credential自动检测;npm 支持NPM_TOKEN环境变量兜底。持久化目录为~/.dsh/github-publisher/(config.json0600)。 - Agent 工具
multi_platform_releaser:state/scan/preflight/publish/job/cancel/settings/token/history/suggest等,与 UI 共用同一Publisher服务。 - HTTP API:
/dsh-github-publisher/api/*(同源 + CSRF);含platforms、platforms/verify、version/bump、sync/plan等,细节见仓库CONTRACT.md。
安装与启用¶
官方 README 给出的安装方式为通过 DSH 的 bundle 安装(需本机已有插件目录的绝对路径):
# 在 DSH 中执行(Agent 或插件管理器同款入口):
plugin_manager action=install_bundle target=/absolute/path/to/dsh-github-publisher
安装后刷新 DSH Web 页面(或重启 Desktop),左侧栏应出现「多代码平台发布插件」。卸载:设置 → 插件 → GitHub Publisher → 移除,或:
plugin_manager action=remove_bundle
说明:README 示例路径名为 dsh-github-publisher,与 npm 包名 multi-platform-releaser 并存;安装时 target 须指向你本机解压或构建后的 bundle 目录,勿凭插件名拼接未出现在文档中的命令。
首次配置与典型发布流程¶
连接平台¶
- 打开发布台,按「上手向导」:绑定 GitHub 令牌 → 选中插件 →(可选)绑定 npm 令牌。
- GitHub:经典 PAT 需
repo(私有仓库必须),可选workflow;细粒度 PAT 需 Contents/Administration 写权限等(详见 README 表格与申请链接)。 - npm:在「平台配置」启用平台,填 Registry(默认
https://registry.npmjs.org)与 Access Token,「保存并验证」。自建 registry(Verdaccio 等)走npm login+ 从~/.npmrc复制 token 的路线,界面会切换对应指引。
DeepSeek API token 不能替代 GitHub 或 npm 凭证;仅用于「AI 补全信息」。
一键发布(README 流程摘要)¶
- 左侧选择要发布的插件(可「重新扫描」或加扫描目录)。
- 「发布平台」勾选 GitHub / Gitee / Codeberg / npm;未配凭据的平台会提示「去配置」。
- 检查「发布信息」,按需展开 npm 的
access/dist-tag/ OTP。 - 「发布选项」勾选生成 README/LICENSE、完善 package.json、创建 Release 等;首次可勾「演练」。
- 点「预检」,通过后再点发布按钮。
也可在 DSH Agent 中调用 multi_platform_releaser,由 form.platforms 决定本次目标平台。
适用场景与注意¶
适合谁:需要把自研 DSH 插件同时推到多个 forge 并可选上 npm;希望减少重复填表与手动 bump 版本;希望在 monorepo 子目录里安全地单独发一个插件包。
运行与权限:插件在当前 DSH 进程权限下执行本机 git、npm 子进程与 HTTPS 调用,并可写工作区文件与 ~/.dsh/github-publisher/。安装前应阅读源码、dsh.forge 声明的 effects(如 fs:write:workspace、child:git、child:npm、net:https)及 MIT 许可证,确认与自身环境策略一致。
生态说明:DSH 社区目录(如 skillhub.cn)为独立站点,与 DeepSeek / 幻方无官方从属关系;本文不引用未在 README 中出现的用户案例或运营数据。
结尾¶
multi-platform-releaser 把多平台建仓、推送、Release 与 npm 发布收成一套发布要素和一次按钮操作,并用预检、演练、版本同步与 Agent/API 接入降低重复劳动。若要查看分类与简介,可打开 目录页;安装命令、凭据说明与接口契约以 GitHub 仓库 为准。