Platform API を使用した slug のコピー
最終更新日 2023年04月07日(金)
この記事では、あるアプリの slug を使用して別のアプリでリリースを作成する方法について説明します。ステージングアプリにコードをプッシュしているとします。コードのテストが完了して、本番環境にリリースする準備ができました。本番アプリにプッシュしてコードが再度ビルドされるのを待たなくても、ステージングアプリから本番アプリに slug をコピーするだけで済みます。
Heroku のユーザーが操作できる slug は、ユーザーがアクセスできるアプリ上で作成されたものだけです。アクセスできないアプリ上で作成された slug を使用してリリースを作成しようとすると、HTTP 403 Forbidden ステータスが返されます。詳細は、共同作業に関する Dev Center のセクションを参照してください。
まず、ステージングアプリ上のリリースを一覧表示して、本番アプリ上でリリースする slug の ID を取得します。
$ curl -H "Accept: application/vnd.heroku+json; version=3" -n \
https://api.heroku.com/apps/example-app-staging/releases
...
"slug":{ "id":"ff40c84f-a538-4b65-a838-88fdd5245f4b" }
次に、ステージングアプリからの slug を使用して、本番アプリ上で新しいリリースを作成します。
$ curl -X POST -H "Accept: application/vnd.heroku+json; version=3" -n \
-H "Content-Type: application/json" \
-d '{"slug": "ff40c84f-a538-4b65-a838-88fdd5245f4b"}' \
https://api.heroku.com/apps/example-app-production/releases
これで、新しいコードが example-app-production
アプリで実行されます。
アプリ間での slug のコピーはすでに、ベータ版の Pipelines プラグインと Heroku Fork を使用して実行できます。同じような機能を提供するサービスを構築するためにサードパーティの API 開発者に必要なプリミティブは、リリースエンドポイントによって公開されます。