发布脚本到社区
脚本发布到社区市场后,用户可一键安装。您只需配置好 Webhook,后续每次推送代码,社区市场都会自动更新版本,无需任何手动操作
开发者:推送代码至仓库,社区自动同步,无需额外操作。
用户:在盒子市场中直接搜索并安装,后续更新一键获取,省去手动下载和版本管理。
发布流程一览
1. 在 GitHub 创建一个公开仓库,把脚本代码推上去
2. 在盒子的「设置 → 发布」页面填写仓库 URL
3. 点击发布,拿到 Webhook URL 与 Secret
4. 到 GitHub 仓库的 Settings → Webhooks 中填入这些信息
5. 完成 — 以后每次 push,用户侧自动收到更新前置准备
1. 注册盒子账号
在盒子主界面底部点击「用户」→「登录」:
- 已有账号直接登录
- 没有账号则点击注册链接,在浏览器中完成注册
登录成功后,发布功能即可使用。
2. 准备 Git 仓库
脚本需要托管在公开的 Git 仓库中(目前仅支持 GitHub),仓库根目录需包含 bm-scripts-box-rc.toml:
file-sorter/
├── bm-scripts-box-rc.toml # 必须
├── main.py # 入口文件
├── pyproject.toml # Python 依赖
├── icon/
│ └── logo.png # 可选
└── README.md # 推荐仓库必须公开,盒子需要克隆代码进行安装。
发布脚本
第一步:进入发布页面
盒子主界面 → 左侧「设置」→ 切换到「发布」标签页
第二步:填写发布信息
| 字段 | 说明 |
|---|---|
| 仓库地址 | Git 仓库 URL,以 https:// 开头(如 https://github.com/yourname/file-sorter) |
| 分支 | 默认为 main,使用其他分支请填写 |
| 分类 | 选择脚本所属分类(如文件处理、图片工具等) |
第三步:发布
点击「发布」,盒子向服务器提交脚本信息。发布成功后你会看到:
- 脚本名称
- Webhook URL
- Webhook Secret
记下 Webhook 信息,下一步配置自动更新会用到。
配置 Webhook 自动更新
Webhook 是连接你的 Git 仓库和盒子的桥梁。配置后,每次你推送代码,盒子服务端会自动拉取最新版本,用户就能收到更新通知。
这是更新版本的唯一方式
不配 Webhook,用户永远看不到新版本。发布只是登记元数据,版本更新全靠 Webhook 触发。
GitHub 配置:
- 进入仓库 → Settings → Webhooks → Add webhook
- 填写:
| 字段 | 填写内容 |
|---|---|
| Payload URL | 发布成功后显示的 Webhook URL |
| Content type | application/json |
| Secret | 发布成功后显示的 Webhook Secret |
| Which events | Just the push event |
- 点击保存
用户如何获取更新
配置 Webhook 后,每次你推送代码:
- 盒子服务端自动拉取最新版本的元数据信息
- 用户的「脚本更新」页面显示可更新的脚本列表
- 用户可以点「更新全部」一键批量更新,也可以逐个更新
更新不影响用户已绑定的快捷键、右键菜单开关等个性化设置。
管理已发布的脚本
在「发布」页面的「我的脚本」中,可以管理所有已发布的脚本。
| 操作 | 说明 | 方法 |
|---|---|---|
| 查看详情 | 查看完整信息(ID、版本、Webhook 等) | 右键 →「详情」 |
| 下架 | 暂时从市场中移除,可重新上架 | 右键 →「下架」 |
| 重新发布 | 将已下架的脚本重新上架 | 右键 →「重新发布」 |
| 删除 | 永久从市场中删除,不可恢复 | 右键 →「删除」 |
下架和删除的区别:下架是临时的,可以恢复;删除不可逆。无论如何,已安装的用户不受影响,只是无法再从市场获取更新。
发布前检查清单
- [ ]
bm-scripts-box-rc.toml配置正确,本地安装测试通过 - [ ] 入口文件与
entry字段匹配 - [ ] 依赖文件(
pyproject.toml/package.json)完整 - [ ] 若声明了
[[bmscriptsbox.dependencies]],被依赖脚本须已发布到社区(否则用户安装会失败) - [ ] 仓库已设置为公开
- [ ] 代码已推送到远程仓库
- [ ] Webhook 已配置(否则用户收不到更新)
版本管理: 严格遵循语义化版本 x.y.z:
- 修复 bug → 递增
z(1.0.0→1.0.1) - 新增功能 → 递增
y(1.0.0→1.1.0) - 不兼容变更 → 递增
x(1.0.0→2.0.0)
每次版本变更后更新 bm-scripts-box-rc.toml 中的 version 字段。注意:如果用户本地版本高于或等于远程版本,盒子不会执行降级更新。
常见问题
Webhook 密钥是唯一的吗?
是的。每个脚本的 Webhook 密钥不同,盒子通过密钥识别仓库和脚本的绑定关系。
发布后多久能在市场中看到?
发布成功后立即出现。如果搜索不到,尝试刷新或检查分类筛选是否匹配。
发布后如何更新版本?
修改代码 → 更新 bm-scripts-box-rc.toml 中的 version → 推送仓库。前提是 Webhook 已配置。
更新后脚本市场未更新?
可能由于 CDN 缓存的原因,页面静态内容未实时更新。
可以发布私有仓库的脚本吗?
不支持。盒子需要克隆代码进行安装,仓库必须是公开的。
一个账号可以发布多个脚本吗?
可以,没有数量限制。