前言¶
DSH 插件的发布与跨设备协作通常涉及繁琐的手动操作。这个插件通过 GitHub 提供了一套自动化的发布与协作流程。它为 DSH 智能体提供了注册的工具,用于检查插件合规性、发布到仓库、以及在多台机器间同步开发状态。
插件概览¶
- 名称: gty2408/dsh-plugin-publisher
- 维护者: Gty2408
- 许可: MIT
- 类别: 联网工具
- 核心价值: 将插件一键上传到 GitHub,并支持多台电脑协作开发同一个仓库。
安装¶
安装命令如下:
dsh plugin --profile desktop add <本目录路径>
安装完成后必须重启 DSH,新增的 bundle 只在启动时读取。
功能与命令¶
插件注册了以下七个工具,用于不同的开发阶段:
- check_plugin: 检查插件目录是否符合要求(只读,不联网)。
- publish_plugin: 创建 GitHub 仓库、上传代码、设置 topic。
- share_project: 将本机目录变为协作项目(写入
main,建立本机分支)。 - join_project: 在另一台电脑加入已有项目(建立本机分支、安装 SSH key)。
- sync_project: 日常同步流程(拉取
main→ 合并 → 推送本机分支)。 - merge_project: 将其他机器的分支合并进来(本地三方合并)。
- project_status: 报告本机在该项目中的状态(只读)。
注意事项¶
使用时需注意以下限制和特性:
- 传输限制: API 传输模式下,单文件上限为 40 MB。超大会报错并建议使用 release asset。
- 文件模式: API 传输会丢失文件模式,例如符号链接和特定权限位(如 100755)。
- 权限限制:
repo权限无法删除仓库,也无法管理账号级的 SSH key(仅限仓库级 deploy key)。 - 冲突处理: 二进制文件冲突无法自动合并,必须手动选择保留哪一个。
- 可见性: 公开仓库推送到 GitHub 时即可见,草稿状态无法隐藏。
- 默认行为: 发布时默认
replace_existing: false,不会覆盖已有代码。若仓库已有提交,发布会被拒绝。
结语¶
该工具通过 Git 和 REST API 双传输回退机制,解决了网络不稳定导致上传失败的问题。它为 DSH 插件的版本管理和多机协作提供了基础支撑。