There's a number of startups doing some variation of this.<p>What many don't seem aware of is that plain pull requests, in combination with CI, entirely kill the need for a deploy app/bot.<p>This is how I do it at my current company:<p><pre><code> * use plain git flow (master/develop, hotfixes, etc)
* use additional explicit branches per deployment target (e.g. master-spain for http://myapp.es, master-mexico for http://myapp.mx).
* Protect these branches using github/bitbucket 'protected branches'.
* open a PR from master to master-spain for performing a deploy of said target, detailng nicely what is being deployed and why.
* instruct CI to deploy my app on each build of master-spain. master and develop are never deployed.
</code></pre>
This setup has the same benefits (and then some more) than competitors:<p><pre><code> * Explicit deployment authors, reasons, timestamps
* Impossible to deploy red code
* Impossible to deploy code not in master
* Impossible to deploy concurrently to the same target
</code></pre>
Hope it helps someone!