We can setup hierarchy.

That controls people and how they access the repo. Also how they do on each step of development.

For example, the development team

And the project manager manages

Then there is a QA team to perform quality testing

There is one man in charge of deploying the code to master.