herokuからcloneできないソースコードをサルベージする

太古の昔にデプロイしていたサービスでgit管理もしていなくて、でもherokuにはソースコードがあるはず…。といったコードをサルベージする方法を書き残します。
heroku remoteからgit cloneできればよかったんですが、できなかった(時間が経ちすぎた?)ので、この方法をとりました。

heroku run '/bin/bash -c "tar -czf /opt/app.tgz ./ && base64 /opt/app.tgz"' --app $HEROKU_APP > app.base64 && \
base64 -d ./app.base64 > app.tgz && \
mkdir -p app && tar -xzf app.tgz -C app

要はアーカイブにしたものをbase64でホストコンピュータにリダイレクション、そしてアンアーカイブしてるだけです。 ファイルが大きすぎる…ということであれば、.git を諦めればVCS管理下のファイルだけを取得することもできます。

heroku run '/bin/bash -c "git archive HEAD -o /opt/app.zip && base64 /opt/app.zip"' --app $HEROKU_APP > app.base64 && \
base64 -d ./app.base64 > app.zip && \
unzip app.zip -d ./app

dynoを起動する必要があるので、無料期間終了の11月27日までにクローズするサービスについてはサルベージしておきたいですね。
そもそもGithubにプッシュしとけっつー話よな