First and foremost for me are protected branches. For everywhere I've worked, giving someone commit access to the main repository means giving them the ability to rewrite history on the release branch as well. GitLab solves that nicely by allowing committers to append only to protected branches by default.
I'm also warming to the idea of treating CI as "pipelines", and find myself thinking of tooling more in that way.
GitHub has that too, I noticed the other day. I still think Gitlab is much better, and use it by default for everything new, but fair's fair :P
I love the integrated CI, though, and the use cases it enables. I love that I can just make a pipeline that lints, tests and compiles my code and then, if all of those pass, ends with deploying it to production.
There are many more Gitlab features I like a lot, and the fact that they're all integrated is icing on the cake.
It took forever for GitHub to get anything, until Gitlab lit a fire under their ass. GitHub were perfectly content just resting on their laurels while every essential feature was handled by a different $15/mo third party service.
I'm also warming to the idea of treating CI as "pipelines", and find myself thinking of tooling more in that way.