Skip to content

发布脚本到社区

脚本发布到社区市场后,用户可一键安装。您只需配置好 Webhook,后续每次推送代码,社区市场都会自动更新版本,无需任何手动操作

  • 开发者:推送代码至仓库,社区自动同步,无需额外操作。

  • 用户:在盒子市场中直接搜索并安装,后续更新一键获取,省去手动下载和版本管理。


发布流程一览

plaintext
1. 在 GitHub 创建一个公开仓库,把脚本代码推上去
2. 在盒子的「设置 → 发布」页面填写仓库 URL
3. 点击发布,拿到 Webhook URL 与 Secret
4. 到 GitHub 仓库的 Settings → Webhooks 中填入这些信息
5. 完成 — 以后每次 push,用户侧自动收到更新

前置准备

1. 注册盒子账号

在盒子主界面底部点击「用户」→「登录」:

  • 已有账号直接登录
  • 没有账号则点击注册链接,在浏览器中完成注册

登录成功后,发布功能即可使用。

2. 准备 Git 仓库

脚本需要托管在公开的 Git 仓库中(目前仅支持 GitHub),仓库根目录需包含 bm-scripts-box-rc.toml

plaintext
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 配置:

  1. 进入仓库 → SettingsWebhooksAdd webhook
  2. 填写:
字段填写内容
Payload URL发布成功后显示的 Webhook URL
Content typeapplication/json
Secret发布成功后显示的 Webhook Secret
Which eventsJust the push event
  1. 点击保存

用户如何获取更新

配置 Webhook 后,每次你推送代码:

  1. 盒子服务端自动拉取最新版本的元数据信息
  2. 用户的「脚本更新」页面显示可更新的脚本列表
  3. 用户可以点「更新全部」一键批量更新,也可以逐个更新

更新不影响用户已绑定的快捷键、右键菜单开关等个性化设置。


管理已发布的脚本

在「发布」页面的「我的脚本」中,可以管理所有已发布的脚本。

操作说明方法
查看详情查看完整信息(ID、版本、Webhook 等)右键 →「详情」
下架暂时从市场中移除,可重新上架右键 →「下架」
重新发布将已下架的脚本重新上架右键 →「重新发布」
删除永久从市场中删除,不可恢复右键 →「删除」

下架和删除的区别:下架是临时的,可以恢复;删除不可逆。无论如何,已安装的用户不受影响,只是无法再从市场获取更新。


发布前检查清单

  • [ ] bm-scripts-box-rc.toml 配置正确,本地安装测试通过
  • [ ] 入口文件与 entry 字段匹配
  • [ ] 依赖文件(pyproject.toml / package.json)完整
  • [ ] 若声明了 [[bmscriptsbox.dependencies]]被依赖脚本须已发布到社区(否则用户安装会失败)
  • [ ] 仓库已设置为公开
  • [ ] 代码已推送到远程仓库
  • [ ] Webhook 已配置(否则用户收不到更新)

版本管理: 严格遵循语义化版本 x.y.z

  • 修复 bug → 递增 z1.0.01.0.1
  • 新增功能 → 递增 y1.0.01.1.0
  • 不兼容变更 → 递增 x1.0.02.0.0

每次版本变更后更新 bm-scripts-box-rc.toml 中的 version 字段。注意:如果用户本地版本高于或等于远程版本,盒子不会执行降级更新。


常见问题

Webhook 密钥是唯一的吗?

是的。每个脚本的 Webhook 密钥不同,盒子通过密钥识别仓库和脚本的绑定关系。

发布后多久能在市场中看到?

发布成功后立即出现。如果搜索不到,尝试刷新或检查分类筛选是否匹配。

发布后如何更新版本?

修改代码 → 更新 bm-scripts-box-rc.toml 中的 version → 推送仓库。前提是 Webhook 已配置。

更新后脚本市场未更新?

可能由于 CDN 缓存的原因,页面静态内容未实时更新。

可以发布私有仓库的脚本吗?

不支持。盒子需要克隆代码进行安装,仓库必须是公开的。

一个账号可以发布多个脚本吗?

可以,没有数量限制。


相关文档

文档版本 0.3.0 · MIT License