ключ ssh загружается в gitlab с кабинета (настроек) пользователя. Далее под этим ключем он пушит/пулит код. В gitlabe ты настраиваешь пользователю уровень доступа к проекту (master,developer,reporter). В самом проекте можно настроить роли пользователей, которым доступен пуш в репозиторий (protected branches).
То есть, создав пользователя %user% с ролью master в роэкте (настроив protected branches на ветку master) ты разрешаешь ему пушить в мастер, все остальные пушить туда не смогут, пока ты не поднимешь привилегии других пользователей в спейсе проекта
То есть, создав пользователя %user% с ролью master в роэкте (настроив protected branches на ветку master) ты разрешаешь ему пушить в мастер, все остальные пушить туда не смогут, пока ты не поднимешь привилегии других пользователей в спейсе проекта