Protected Branches Improvements
github.com
github.com
I was crushed when they added support for protected branches but didn't include per-user permissions.
The protected branch behavior has two components to it. The primary protection is to prevent force-push to a branch, usually master. That one is a no-brainer.
The secondary behavior (AFAIK) is to enforce exactly what you are looking for, where you have to push to a branch before merging to master. The only way to make that happen is to integrate tests - if your branch passes tests, it can be merged. In my "copious free time" I plan to build a test hook that always reports "OK" so that I can enable that behavior on all of my repos, and it should end up as two or three clicks to set it up.