Hacker News new | ask | show | jobs
by shimms 2604 days ago
I want to like GitLab, but the (comparative) lack of integrations is a showstopper.

For instance in our Github, Code Climate runs against all pull requests and adds comments on files when it detects quality issues (as a bot user).

I get this is up to companies like Code Climate to build, but having done a bit of integration building myself, the platform and marketplace strategy at Github is just so much more mature and thought out. The GitLab marketplace/integrations capability feels very much like an afterthought (no bot users for one thing).

Would love to see GitLab focus on making a broader platform & marketplace play, and working with big ecosystem players to really enhance the GitLab offering.

2 comments

Interesting feedback. Could you give a few more examples? For instance, if you could build your DevOps toolchain and add any 3rd party integrations to GitLab, what would they be?
DevOps toolchain you've got covered. Your pipelines are pretty neat.

One thing I really like about GitLab is seeing pipeline errors in the merge request. For instance, we have rspec bubble up failures and they're right there in the test summary on the merge request. GitLab shows us a check failed, but we have to click through to Circle CI to see what the actual failures were.

One thing GitHub does well is the idea of checks. The entire pipeline in GitLab is a binary pass or fail. To see which bits failed, you have to dig into the pipeline.

Would be great to see that (similar to test results) in the merge request, in a similar way that GitHub checks are displayed.

Our typical DevOps set up is Jira for issues, GitHub for source and peer reviews. The pull requests are set up to include a few things like Quality (usually Code Climate), CI (usually Circle CI, sometimes Buildkite), a security auditor, a dependency auditor etc. At the other end, we use a service like Codefresh or whatnot to handle deployment to our environments.

Obviously, GitLab does all this in one ALM, which makes it closer to Azure DevOps than GitHub for direct feature comparisons, so this is more about the source code peer review through merge/pull requests than other aspects of the ALM process.

In GitHub pull requests, when checks fail, we get immediate visibility right on the pull request screen which checks failed, rather than having to go into the pipeline to look at jobs.

From a DevOps perspective, GitLab far exceeds GitHub (obviously). From idea to code, to review to build and publish is great. The pipelines (as I said above) are good.

I'd just like more integration points in the merge request process for external services to augment the functionality provided out of the box, such as Code Climate, Hound, Dependabot, LGTM/GuardRails/Snyk etc. Whilst you can wire these up (kinda) yourself - you could just use rubocop instead of Hound - you don't get the deep merge request integration. When Hound finds a rubocop violation it adds a contextual comment on the pull request at the line of code that is offending. In GitLab with rubocop, you simply fail the pipeline and then trawl through log output.

As I said in reply to sytse above, I think that is the main difference between cultivating a thriving eco-system of integrations vs providing an API and instructions.

There are many products that integrate with GitLab, see https://about.gitlab.com/partners/ There are not as many as GitHub since more is part of GitLab itself. But we're open to supporting anything, even if it competes with GitLab functionality.

Regarding the example you gave for wanting Code Climate. GitLab has similar functionality as a part of the product, it is called code quality and is based on Code Climate engines, see https://docs.gitlab.com/ee/user/project/merge_requests/code_... for more information.

Thanks for the reply sytse.

I don't think it's fair to say that GitHub has more simply because it has less built-in functionality as compared to GitLab.

I agree that GitLab has broader functionality than GitHub, but it isn't so broad as to cover the breadth of functionality provided by all of GitHub's integrations combined.

Code Climate is a good example - yes you're right you have builtin quality reports, but setting it up is significantly more complex than on GitHub, and as an example serves to illustrate what I see as the very different attitudes and approaches towards building an eco-system.

Referring to your docs on code quality[1], you need to edit the CI configuration file, understand what a docker-in-docker executor is on runners etc.

Compare this to GitHub's Code Climate integration[2]: single button "Set up a plan" that guides you through s small number of screens and links your account and presto done.

Things that successful marketplaces like Heroku, GitHub, Atlassian, Slack etc get right are the ease with which to add integrations and the seamlessness of the experience.

Single button provisioning, combined billing, single sign-on etc. Just the way GitLab position the idea of integrations makes it seem to me that creating a platform isn't a priority for you (which is totally fine obviously, you're focusing on your priorities, and clearly doing pretty damn well doing so).

GitHub makes their marketplace and integrations front and centre, have extensive developer guides, etc. GitLab's are a bit more... spartan. They're lacking any real spark, they're not inviting. Compare your overview[3] page to the best equivalent I think I could find on GitHub[4]. They're chalk and cheese.

Again this isn't to say GitLab's approach is wrong, its just a different focus.

More specific feedback (and this may have changed since we evaluated it a year ago) a GitLab integration could only perform API actions as a real user of a GitLab account. We wanted to build an integration that would add comments to merge requests, but not be attributed to a real user, but a bot user for the integration. That wasn't (or at least wasn't easily discoverable) possible back then, and was a show stopper for our integration.

1: https://docs.gitlab.com/ee/ci/examples/code_quality.html 2: https://github.com/marketplace/code-climate 3: https://about.gitlab.com/partners/integrate/ 4: https://developer.github.com/