We use Gitlab, nobody is allowed to commit to master, you need to make a merge request for new features and then somebody on the team needs to +1 your merge request before it's accepted. In Jira we use a Kanban board, after you've made a merge request, you need to move a task to In Review. If the number of tasks in review are too many, you can't start a new task until tasks are reviewed.
New projects doesn't require merge requests, they are committed straight to master, the reviewer must then checkout the project and any fixes must be done on a branch and once again +1 before they can be accepted.
It's not perfect, stuff sometimes slips through if you only review in Gitlab itself, to see the full impact of a change and minimise things slipping through, the best is to checkout the project and see a change in its context.