Bors-NG: my first Elixir/Phoenix app

Bors is a robot that integrates with GitHub pull requests. Basically, instead of clicking the merge button, privileged users leave a comment (bors r+). It queues up the pull requests and tests them in a staging branch. If the staging branch passes, it gets pushed over the top of master.

This way, master branch always passes CI. If a pull request (or combination of mutually incompatible pull requests) breaks the build, it never gets to master. If it gets to master, it already passed the test suite.

This isn’t a replacement for CI runners like Travis CI; it’s basically a wrapper on top of it. It actually just pushes to the staging branch and waits for GitHub Status Notifications (GH status is the closest thing I know of to a universal CI protocol).

I’m already using it to develop itself. I’m in the process of moving stuff off of an older Rust-based version of the same concept (contrary to what /r/rust might want you to think, Rust is really not a good choice for non-CPU-bound web apps, and this is about as non-CPU-bound as you can get; it spends most of its time waiting for your test suite to run).

p.s. I would very much appreciate some amount of code review, since this is my first Elixir project. You might also be interested in using it…


Contributors are more than welcome, BTW. There’s a list of easy tasks to get started marked E-easy.


It looks useful, a good Elixir Github bot. :slight_smile:

Oh good grief, I knew I should’ve proofread it more. I never linked to it!

1 Like