These permission types do not exist in GitLab.
As an alternative approach: you can make the user unable to commit in the main repository, and then use the project branch workflow , which allows him to fork the repository into his own namespace, on which they can do their work, and then send a pull request . It looks like the workflow that follows GitHub.
source share