I'd like to enforce that any development be done by branching the code, putting it through review and then performing a pull request to merge with the master branch. How exactly do I need to set this up?
It looks like the repository permissions *write* setting grants *both* the ability to merge and the ability to push. Is there any way around that? I really don't want it to be possible to push directly to master without going through a review. I'm guessing some kind of hook is necessary but I'm more of a sysadmin.