私は最近、いくつかのネイティブの heroku 機能を利用して github 経由でコミット後のフックを実行する ruby アプリをデプロイしました。
https://github.com/ajlai/github-heroku-pusher .
今、私はそれがどのように機能するのか、おそらく別の言語でherokuに似た低レベルのプラグインを構築する方法に興味があります.
プログラムの機能の簡単な要約:
基本的に、この ruby プログラム:
github にプッシュするたびに heroku を自動的にデプロイする
4 つのパラメーターのみで構成されます (主なパラメーターは heroku API キーです)。
箱から出してすぐに完璧に動作します。heroku をいじる必要はありません。このアプリケーションを新しい heroku アプリとしてデプロイし、ポスト受信フックを github に追加しただけで、github にコミットするたびに heroku がアプリケーションを自動的にビルドしてくれることがわかりました。
この ruby スクリプト (https://github.com/ajlai/github-heroku-pusher/blob/master/web.rb) がどのように機能して、この github を heroku 自動デプロイ サービスに移行するかについての私の質問
シェルコマンドを実行しているようです。それはherokuでも許可されていますか?
github からの実際の「git pull」はどこで行われますか? 「GitPusher」オブジェクトが表示されますが、そのオブジェクトが定義されている場所が明確ではありません (クラスに静的にインポートされた ruby gem オブジェクトであると思われますが、どの gem から来ているのかわかりません)。
このプロジェクトを構築した勇敢な魂が、Heroku 用のこのような低レベルのフックを構築するために必要なドキュメントをどこで見つけたのか疑問に思っています。同じ同類のカスタム ワーカー フック (できれば Ruby 以外の言語) を構築する方法についてのヒントをいただければ幸いです。