So we have a team of about 10-12 developers and we are wanting to move to a Fork / Pull request style workflow, primarily so that there is a code review process before code is committed to the upstream (build / ci) repository, but also so that we can keep the upstream repo lean and clean and have private collaborations etc.
The code reviews are peer reviews, and with such a small team we would prefer not to have just 1 or 2 "gatekeepers" with write access to the upstream repo, we'd prefer all devs to be able to respond to a pull request do the review and merge into upstream.
Some issues / questions on this
1./ How to we ensure that devs don't bypass the process and simply push directly to upstream, is there an ability to only provide read access except when responding to a pull request ? Or is this purely a discipline thing. (IMO if it can be done, at some point it will be done)
2./ We mostly have our Bitbucket accounts attached to our private email accounts with team access to the company repository, is it possible to have notifications of pull requests / merge failures to go to the company email address instead of (or as well as) the private email address?
3./ Is there any other notification mechanism available? (slack or sms or something else) or is email the only one?
4./ Given what we are hoping to achieve, is this the right approach, or should we stay on a central repo type model and protect build branches from unreviewed code some other way?