我在heroku上设置了一个应用程序,该应用程序通过GitHub自动部署。该设置很棒,我不想更改任何内容。
现在有一个用例,我需要在不更改代码的情况下不时部署应用程序(构建过程会获取一些最新数据)。
我可以通过转到用户界面并单击“部署分支”来轻松地重新部署应用程序。但是我很想通过API做到这一点。在Heroku Platform API Documentation中找不到任何有助于实现这一目标的东西。
我可以通过GitHub deployment API创建一个部署,但这似乎不会触发Heroku上的部署。
关于如何在Heroku上触发特定应用程序部署的任何线索?
编辑:我无法真正使用答案Redeploy Heroku app without code changes,因为没有答案可以通过HTTP API提供此功能。
答案 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