通过API在Heroku上部署分支

时间:2019-02-07 17:12:13

标签: github heroku

我在heroku上设置了一个应用程序,该应用程序通过GitHub自动部署。该设置很棒,我不想更改任何内容。

现在有一个用例,我需要在不更改代码的情况下不时部署应用程序(构建过程会获取一些最新数据)。

我可以通过转到用户界面并单击“部署分支”来轻松地重新部署应用程序。但是我很想通过API做到这一点。在Heroku Platform API Documentation中找不到任何有助于实现这一目标的东西。

我可以通过GitHub deployment API创建一个部署,但这似乎不会触发Heroku上的部署。

关于如何在Heroku上触发特定应用程序部署的任何线索?

编辑:我无法真正使用答案Redeploy Heroku app without code changes,因为没有答案可以通过HTTP API提供此功能。

1 个答案:

答案 0 :(得分:2)

Heroku当前没有用于GitHub Sync的公共API。因此,您将需要使用其平台API来create a build

GitHub在URL https://github.com/<organization>/<repository>/archive/master.zip下为您提供tar.gz(您当然需要在标题中传递一个授权令牌)。

使用curl,您可以执行以下操作:

curl -n -v https://github.com/<organization>/<repository>/archive/master.zip

该URL将重定向到GitHub上经过身份验证以允许下载的URL。重复使用该URL创建Heroku构建:

curl -n -X POST https://api.heroku.com/apps/<app name>/builds \
  -d '{
  "source_blob": {
    "url": "<the URL fetched before>",
    "version": "<the version of the code you're trying to deploy>"
  }
}' \
  -H "Content-Type: application/json" \
  -H "Accept: application/vnd.heroku+json; version=3"

这将触发一个新的构建,从GitHub下载代码。内部有效地执行与GitHub Sync相同的操作。

您还可以看到本教程:https://devcenter.heroku.com/articles/build-and-release-using-the-api

相关问题