在没有 CLI 或 Web 的情况下切换 heroku 维护模式 UI

Toggle heroku maintenance mode without CLI or Web UI

我使用 Jenkins 运行 测试,然后使用 git 发布者插件部署到 Heroku。我想将我的部署夹在维护模式 ON/OFF 中,但不想在我的 jenkins 机器上安装 heroku toolbelt (reference)(我也不想访问 Web UI并手动切换维护模式)。我不想在 jenkins 上安装 heroku toolbelt,因为它增加了我需要对 jenkins 安装进行的自定义和配置,我想让我的 jenkins 实例尽可能一次性...由源代码驱动管道(Jenkinsfile)。

想法:

关于我如何实现这一点有什么建议或经验吗?

您可以使用 heroku 的平台 api 来执行此操作: https://devcenter.heroku.com/articles/platform-api-reference#app-update

以下 curl 请求将使您的应用程序进入维护模式:

curl -n -X PATCH https://api.heroku.com/apps/$APP_ID_OR_NAME \
  -d '{"maintenance": true}' \
  -H "Content-Type: application/json" \
  -H "Accept: application/vnd.heroku+json; version=3"
  -H "Authorization: Bearer <heroku token>

您只需要替换应用程序名称以及令牌。 您可以在本地使用 cli-oauth cli 插件生成 OAuth 令牌。