GitHub vs. GitLab (en waarom we GitLab prefereren)

Maarten Draijer

GitLab is een zogenaamde repository management tool. Je gebruikt het bij softwareontwikkeling en het ondersteunt de complete DevOps-cyclus. Ontwikkelteams die software bouwen kunnen praktisch niet meer zonder zo’n tool: ze zijn cruciaal om succesvol te kunnen ontwikkelen.

GitLab is niet de enige partij die zo’n tool aanbiedt. Een andere grote speler is GitHub. Bij het zoeken naar de beste repository management platforms vergelijken veel ontwikkelaars dan ook de twee meest populaire diensten: GitHub en GitLab.

Wij werken samen met GitLab, en dat doen we niet zomaar. Ben je benieuwd waarom? In dit artikel leggen we je uit wat de belangrijkste verschillen tussen GitLab en GitHub zijn en waarom wij voor GitLab hebben gekozen. Zodat ook jij een die keuze kunt maken die aansluit op jouw wensen.

Wat is GitHub?

Laten we beginnen met GitHub. GitHub is de oudste van de twee platformen. Het programma werd in 2008 gelanceerd en is op dit moment het grootste platform als je kijkt naar het aantal gebruikers. GitHub stimuleert en ondersteunt het hosten van opensource-code, maar het is niet volledig opensource.

De meeste projecten die binnen het platform gebouwd zijn, zijn voor iedereen toegankelijk. Als je je project echter af wilt schermen voor andere gebruikers, dan kan dat. Je hebt dan wel een betaald pakket nodig. Prijzen beginnen vanaf 7 dollar voor individuele developers en 9 dollar voor teams, per gebruiker per maand.

In 2018 kwam het bericht dat Microsoft GitHub voor 7,5 miljard dollar (zo’n 6,4 miljard euro) overneemt. Niet alle gebruikers werden daar enthousiast van. Sommige ontwikkelaars vreesden namelijk dat met het aan boord brengen van de tech-gigant, GitHub’s focus op de wensen van de gebruiker zou afnemen.

Wat is GitLab?

In onze vorige blogpost hebben we uitgebreid verteld over wat GitLab is, maar hier nog even een samenvatting. GitLab werd wat later dan GitHub gelanceerd, namelijk in 2011. GitLab wordt steeds populairder onder developers en vooral onder opensource-enthousiastelingen. De ‘Community Edition’ van GitLab is namelijk volledig opensource, wat betekent dat developers zelf mee kunnen werken aan het verbeteren van de functionaliteiten van GitLab.

GitLab biedt, in tegenstelling tot GitHub, wel gratis afgeschermde omgevingen voor opensource-projecten aan.

Logischerwijs moet je wel een betaald account nemen als je gebruik wilt maken van bepaalde extra functionaliteiten, zoals het hangen van een ‘gewicht’ aan een issue of het aanwijzen van meerdere personen die iets goed moeten keuren bij een code-review.

Toen het bericht kwam dat Microsoft GitHub zou overnemen, besloten veel developers hun projecten over te zetten naar andere platformen, voornamelijk GitLab.

Een vergelijking tussen GitHub en GitLab

De belangrijkste overeenkomsten

Ook al zijn wij fan van GitLab en hebben we bewust voor dit platform gekozen, dat betekent niet dat we niets met GitHub kunnen. De pakketten zijn namelijk aan elkaar gewaagd: de belangrijkste features voor het succesvol bouwen van softwareproducten zijn in beide diensten geïntegreerd. Veel functionaliteiten die GitLab en GitHub bieden, komen dus met elkaar overeen:

  • Het aanmaken van pull requests: vertel teamleden over de veranderingen die je hebt doorgevoerd naar de repository
  • Koppelingen met externe programma’s, zoals Slack
  • Mogelijkheid tot forken of klonen van repositories
  • Code reviewen
  • Code-snippets: kleine, herbruikbare onderdelen van de broncode aanmaken en gebruiken
  • Het tracken van issues
De belangrijkste verschillen
Continuous Integration / Continuous Delivery

Eén van de grootste verschillen tussen GitLab en GitHub is de ingebouwde Continuous Integration/Delivery-functionaliteit in GitLab. Met Continuous Integration (CI) wordt de code van het team geïntegreerd in een gedeelde repository. Ontwikkelaars delen die nieuwe code in een Merge (Pull) Request. Deze triggert vervolgens een pijplijn om de nieuwe code te bouwen, testen en valideren, voordat er veranderingen in de repository doorgevoerd worden.

Met Continuous Delivery (CD) wordt de code die door CI gevalideerd is, naar de applicatie doorgevoerd.

GitLab levert die CI gratis, het is dus niet nodig om hiervoor een externe CI-service in te schakelen. Mocht je al een extern CI-programma gebruiken, dan is het wel eenvoudig te integreren met GitLab.

GitHub heeft daarentegen geen ingebouwde CI/CD-functionaliteit. Het is wel mogelijk om hiervoor te koppelen met externe partijen, zoals Travis CI of CircleCI.

Rollen en authenticatie

In GitLab is het mogelijk om de authenticatie van gebruikers aan te passen aan de hand van bepaalde rollen. Je kunt bijvoorbeeld aangeven dat iemand toegang krijgt tot de issue tracker, zonder dat hij of zij de source code kan aanpassen. Dat is vooral handig voor grotere teams waarvan de gebruikers verschillende rollen hebben.

In GitHub zijn er per gebruiker twee authenticatie-opties: het is alleen mogelijk om iemand een lees- of schrijven-toegang tot het systeem te geven.

De GitHub/GitLab community

GitHub is onder andere ontzettend populair geworden door de grote community van actieve developers. Ook GitLab is hiermee aan de slag gegaan. Er werden bijvoorbeeld verschillende GitLab-events en -meetups georganiseerd om GitLab’s opensource-ontwikkelaars met elkaar te verbinden.

Mocht je een grote community van developers belangrijk vinden, dan is GitHub waarschijnlijk de beste keuze, ook al timmert het jongere GitLab hiervoor hard aan de weg.

Onze keuze

Zo op het eerste gezicht lijken GitHub en GitLab niet veel van elkaar te verschillen. Beide programma's bevatten de basisfunctionaliteiten die een goede repository management tool nodig heeft.

GitHub is tot op de dag van vandaag nog steeds het meest populaire programma als je kijkt naar het aantal gebruikers en projecten. Maar wat voor ons heel belangrijk is, is het feit dat GitLab zo goed naar de wensen van haar gebruikers luistert. Ze werken continu aan de verbetering van hun software en doen echt iets met suggesties van hun gebruikers. Over het algemeen vinden wij het programma gebruiksvriendelijker. Daarnaast bevat het nét wat meer functionaliteiten die we van belang vinden voor het succesvol ontwikkelen van software, zoals de ingebouwde CI/CD-integratie.

Om die reden zijn wij dan ook zo enthousiast over GitLab.

Jouw nieuwe GitLab instance is binnen 5 minuten online
Registreer