My only gripe with gitlab is that gitlab-runner config is mutated by the runner itself. This makes it extremely hard to deploy gitlab-runners reliably and reproducibly in a declarative fashion which is kind of ironic given their whole sales pitch is "ci/cd".
Apart from that it is great so far