Mozilla 是否有用于更新已签名插件的 API?

Is there an API for Mozilla for updating signed addons?

我有一个我个人使用的签名插件,但想尝试通过 AMO 分发它。我已经通过 Developer Hub 上传了初始版本,现在我希望能够通过 CI 管道包含自动发布。

我已经研究了一段时间了,找到了 this article and API doc 但运气不佳。我绝对能够正确连接我的 JWT,因为我得到了 301(我认为这是因为文章中描述的 API 在过去两年中发生了变化)但是当我遵循时又得到了 400重定向。

每个请求 returns 多部分文件数据中缺少 "upload" 键。 我相信这是因为端点是 PUT 但期望多部分形式(我所有的研究都表明只有 POST 支持这一点)。我尝试了几种不同的方法,包括 cURL 和各种 Python 库 - 包括 PyCurl 尝试在 POST 请求中使用多部分并仅覆盖 PUT 的方法 - 但只是不要似乎无处不在。

我无法找到任何关于此的最新文档,因为旧文章暗示它已被弃用 API 但较新的文档似乎没有我正在寻找的答案。 this one 之类的问题表明它仍然是可能的,我已经看到提到 web-ext 但我想我只是想念如何将这些部分组合在一起。

我的要求是:

    curl -XPUT https://addons.mozilla.org/api/v3/addons/{myId}/versions/0.2 -F 'upload=../toolbox.api' -H 'Authorization: JWT <myToken>' -v -L

有没有人尝试过这样做并且对如何前进有任何建议?或者反过来知道肯定不可能

提前致谢!

您可以使用基于 node.js 的命令 web-ext 从命令行签署扩展。

与 curl 方法一样,您获得 issuer/secret,然后将它们用作给定参数或环境变量:

web-ext sign --api-key=$AMO_JWT_ISSUER --api-secret=$AMO_JWT_SECRET 

如果需要use a proxy:

web-ext sign --api-key=... --api-secret=... --api-proxy=https://yourproxy:6000

请参阅 details(及其其他功能)的链接文章。