Github hat die Welt des Codehosting im Laufe nur weniger Jahre stark verändert. Nun aber melden sich Kritiker zu Wort und fordern Nachbesserungen. Einige kündigen auch ihren Wechsel an, doch wohin? Die Bitparade nimmt Github und aussichtsreiche Alternativen unter die Lupe.
Github [1] ist in den letzten Jahren zur weltgrößten Codeplattform aufgestiegen und hostet sowohl Open-Source- als auch proprietäre Softwareprojekte. Dahinter steht das Unternehmen Github Inc., das den Filehosting-Dienst 2008 als Onlineplattform gründete. Er basiert auf dem Versionsverwaltungssystem Git [2], später kam Subversion [3] dazu.
Derzeit pflegt das Unternehmen nach eigenen Angaben rund 12 Millionen Teilnehmeraccounts mit insgesamt 31 Millionen Repositories auf der Plattform. Den Löwenanteil davon machen kleine Projekte meist einzelner Entwickler aus, jedoch tummeln sich auf Github auch größere Unternehmungen wie der Linux-Kernel, Joomla, Django, Puppet, Bitcoin, PHP, Ruby on Rails, Linux Mint und dergleichen. Schätzungen vermuten Githubs aktuellen Marktwert bei etwa zwei Milliarden US-Dollar [4].
Doch in den acht Jahren seit Bestehen der Plattform beschwerten sich Entwickler auch immer wieder über den Dienst. Erst kürzlich machte ein auf Github selbst veröffentlichter und an die Betreiber gerichteter offener Brief [5] die Runde, den rund 1800 aktive und einflussreiche Entwickler unterzeichneten (siehe Kasten “Dear Github”). Sie machten darin ihrem Ärger über mangelnde Kommunikation und fehlende Funktionen Luft.
Dear Github
Die in dem offenen Brief [5] geschilderten Probleme betreffen hauptsächlich die größeren auf Github gehosteten Projekte. Die Unterzeichner bemängeln vor allem, dass Github auf Eingaben und Beschwerden keinerlei Rückmeldung gebe oder erkennen lasse, ob sich jemand aktiv mit dem geschilderten Problem beschäftigt und wie der aktuelle Status ist. Das sei nicht im Sinne von Offenheit und sehr frustrierend.
Ein weiteres Hauptproblem liege aus Sicht der Entwickler bei den Issues genannten Bugreports. Das dafür vorgesehene Template reiche nicht aus. So fehlen den Entwicklern insbesondere Pflichtfelder, die vom Fehler-Reporter eine Eingabe verlangen, bevor er den Report abschickt. Sie sollen sicherstellen, dass die Issue-Meldung alle notwendigen Angaben enthält, um einen Fehler ohne zeitaufwändige Nachfragen zu debuggen.
Github hat in diesem Fall bereits Abhilfe geschaffen. Seit Kurzem erstellen Entwickler bei Bedarf auf ihr Projekt zugeschnittene Formulare, die vom Bugreporter alle notwendigen Informationen abfragen, mit denen der Entwickler das Problem beheben kann [12].
Inzwischen haben die Betreiber geantwortet, sich entschuldigt, Abhilfe versprochen und einige Probleme bereits gelöst. Dennoch suchen gerade einige größere Projekte nach einer Alternative. Ein willkommener Anlass für die Bitparade, neben Github selbst auch ein paar konkurrierende Lösungen ins Visier zu nehmen, konkret: Bitbucket [6], Phabricator [7] und Gitlab [8].
Ferner liefen
Die hier vorgestellten Codeverwaltungssysteme zeigen nur eine populäre Auswahl an. Es gibt noch einige weitere, zu nennen sind etwa Codeplane [9], Beanstalk [10] und Kiln [11]. Firmen und größere Projekte pflegen zudem nicht selten eigene Lösungen: Microsoft setzt beispielsweise Codeplex ein (ist aber zum großen Teil auf Github gewechselt), Debian bevorzugt Alioth, während Canonical Launchpad entwickelt und verwendet.
Github
Github (Abbildung 1, [1]) bietet kostenfreie, in ihrer Anzahl unbeschränkte Repositories an, aber nur für freie Software. Jedes Codesilo bietet 1 GByte Speicherplatz sowie 1 GByte Bandbreite. Die Anzahl der Teilnehmer an einem Projekt schränkt Github nicht ein.
Private Repositories schlagen monatlich mit 7 US-Dollar zu Buche, was fünf private Exemplare einschließt. Für 50 private Repositories zahlen Nutzer 50 US-Dollar, dürfen in ihnen aber auch proprietäre Softwareprojekte umsetzen. Für jeweils 5 US-Dollar erhöhen sie den Speicher und die Bandbreite jeweils auf 50 GByte.
Github liefert auch grafische Tools zum Auswerten der Daten sowie Elemente sozialer Netzwerke. Anwender folgen einem Projekt auf Wunsch und bleiben so über Fortschritte auf dem Laufenden. Auch eine Like-artige Funktion fehlt nicht. Jedes Projekt darf über die Plattform zudem je eine statische Webseite anbieten. Obwohl Github überwiegend Open-Source-Projekte hostet, verwendet die Plattform Closed-Source-Code.
Einfache Teilhabe
Anwender tragen zu einem Projekt bei, indem sie einen Fork erstellen, ihre Änderungen einbringen und dem Projekteigner diese über Pull Requests zur Übernahme anbieten. Besucher, die lediglich die Software eines Projekts herunterladen möchten, erledigen das über den Button »Download Zip« . Oder sie verwenden unter Linux die Kommandozeile und laden eine Software wie den Kernel über
git clone https://github.com/torvalds/ linux.git
herunter. Auf der Webseite springen all diese Features selbst Außenstehenden ohne Git-Kenntnisse ins Auge. Für Windows und OS X gibt es mit Github Desktop [13] einen Client, um an Github und den Projekten teilzuhaben. Linuxer greifen dafür zu externen Clients wie Gitter [14] oder Smart Git HG [15].
Wem die Funktionalität von Github samt Issue-Tracker, Wiki, der LDAP-Integration, der im Browser möglichen Bearbeitungsfunktion sowie dem Teilen von Code-Snippets nicht reicht, der verbindet Github mit Jenkins, Jira, Confluence, Bugzilla, Trello und anderen.
Die Unternehmensversion Github Enterprise [16] lässt sich bei mehreren Cloudanbietern hosten oder auf hauseigenen Servern betreiben, in Form einer vorgefertigten VM (OVF) auf Hypervisoren wie VMware oder Virtualbox. Bare-Metal-Installationen fehlen. Github Enterprise unterstützt LDAP und den Central Authentication Service (CAS) und bietet ein Backupsystem an. Der Preis liegt bei 5000 US-Dollar jährlich für 20 Anwender.
Licht und Schatten
Eine Plattform dieser Größe hat natürlich Vor- und Nachteile. Die unschlagbaren Vorteile von Github sind die Millionen Entwickler, zudem besticht die Plattform mit vielen Zusatzdiensten. Das schließt die 2012 geschaffene Option ein, statische Webseiten auszuliefern. Github dient den dort versammelten Entwicklern als soziales Netzwerk.
Zu den Nachteilen zählten in der Vergangenheit Wachstumsschmerzen. So hagelte es 2009, ein Jahr nach der Gründung, Kritik, weil die Plattform wachstumsbedingt nicht nur langsam, sondern auch zunehmend instabil werde. Nach einem Wechsel zum Webhoster Rackspace besserte sich die Situation.
2013 bemängelten Entwickler, Github nehme Open Source nicht ernst. Das machten sie an der großen Zahl von Projekten fest, die keinerlei Lizenz unterlagen (Abbildung 2). Nach Untersuchungen waren es hauptsächlich jüngere Entwickler der Post-Open-Source-Bewegung (POSS), die auf Lizenzen pfeifen [17]. Viele von ihnen vertraten fälschlich die Meinung, Projekte ohne Lizenz seien frei verwendbar. Die Nutzungsbedingungen von Github sprachen jedoch eine andere Sprache. Dort stand explizit, dass Projekte ohne Lizenz automatisch urheberrechtlich geschützt seien.
Die Github-Macher reagierten, indem sie eine Webseite online stellten, welche die Wahl einer passenden Lizenz per Drop-down-Menü erlaubte [18]. Auch wer ein neues Repository erstellt, kann jeweils eine Lizenz aussuchen (Abbildung 3).
Im goldenen Käfig
Weil Github nicht offen ist, müssen Entwickler von Open-Source-Projekten warten, bis die Betreiber ihre Verbesserungswünsche einpflegen, und können nicht selbst aktiv werden (siehe Kasten “Dear Github”). Das widerspricht unter anderem der Forderung des Linux-Entwicklers Benjamin Mako Hill, der 2010 “Freie Tools für freie Software” forderte [19]. Nicht zuletzt baut sich das Unternehmen gerade selbst um und angesichts einer internen Straffung der Hierarchien sind einige leitende Angestellte in den letzten Monaten gegangen [20].
Vergleichbare Alternativen
Während für die meisten, vorwiegend kleinen Projekte die Vorteile überwiegen, sehen sich einige größere wie ES-Lint [21] aufgrund der Probleme nach Alternativen um. Sind sie bereits eine Weile auf Github, fällt es aber relativ schwer, die Plattform zu wechseln.
Das liegt weniger an technischen Hürden. Vielmehr muss die Projekt-Community mitziehen und die auf Github geknüpften Verbindungen gehen verloren. Eine Alternative zu Github muss wie der Platzhirsch selbst umfassende Funktionen mitbringen und einen niedrigschwelligen Einstieg erlauben.
Ginge es nur darum, mit freier Software eigene Repositories zu hosten, gäbe es Auswahl genug. Open-Source-Projekte wie Gitblit (Abbildung 4, [22]) oder das strukturell stark an Github erinnernde Gogs (Abbildung 5, [23]) sind Beleg hierfür. Das aber reicht der sprunghaft wachsenden und stark vernetzten Open-Source-Szene nach der Github-Erfahrung nicht mehr. Das merken auch Projekte, die Githubs goldenen Vendor-Lock-in verlassen wollen, recht schnell. Dennoch gibt es durchaus ein paar brauchbare proprietäre wie freie Alternativen.
Bitbucket
Bitbucket (Abbildung 6, [6]), das wie Github proprietär ist, existiert seit 2008 und beschränkte sich ursprünglich auf das Versionsverwaltungssystem Mercurial [24]. Das australische Unternehmen Atlassian [25] erwarb Bitbucket 2010 und erweiterte es 2011 um die Versionsverwaltung Git.
Bitbucket ist, wie Github auch, ein Web-basierter Filehosting-Dienst, der ebenfalls – anders als Filehoster wie Sourceforge – den Nutzer mit seinen Softwarequellen in den Vordergrund stellt. Ähnlich wie Github vereinfacht Bitbucket die Mitarbeit an Projekten durch Forks und Pull Requests. Es fördert zudem die Teamarbeit, indem Teams von bis zu fünf Mitgliedern ein kostenfreies Abonnement abschließen können. Die Webinterfaces der beiden Konkurrenten ähneln sich ebenfalls, wer eines kennt, kommt mit dem anderen leicht zurecht.
Größere Teams müssen eine monatliche Gebühr entrichten, wobei ein Mitglied (bis zu einer Größe von 100) 1 US-Dollar zahlt. Für 200 US-Dollar monatlich darf die Teamgröße beliebig wachsen. Im Gegensatz zu Github stellt Bitbucket jedem Benutzer kostenlos eine unbegrenzte Anzahl privater Repositories zur Verfügung (Abbildung 7). Für die Projektverwaltung und als Bugtracker besteht Zugriff auf Atlassians Webanwendung Jira [26]. Diese bietet im Verein mit Bitbucket Server die Möglichkeit, den Dienst auch auf eigenen Servern zu verwenden.
Neben Atlassian selbst setzen Paypal, The New York Times, Tesla Motors, DHL und andere die Software ein. Bitbucket fehlt gegenüber Github jedoch die Möglichkeit, den Sourcecode eines Quellcode-Speichers zu durchsuchen. Auch Anwenderstatistiken fragen Nutzer häufig nach, sie fehlen aber noch immer. Was die Größe angeht, verwaltete Bitbucket im Jahr 2014 rund 200 TByte Code und zählte rund 2,5 Millionen Entwickler in mehr als 330000 Teams.
Gitlab
Eine freie Alternative zu den beiden Dickschiffen stellt die 2011 entstandene Open-Source-Lösung Gitlab (Abbildung 8, [8]) dar. Die Weboberfläche verwaltet Softwareprojekte nur mit Git als Versionsverwaltung. Die Software bringt wie die proprietäre Konkurrenz diverse Management- und Bugtracking-Funktionen mit, darunter eine Code-Review-Komponente, einen Bugtracker sowie ein Wiki.
Gitlab bietet kostenfrei beliebig viele öffentliche und private Repositories mit einer jeweils unbegrenzten Anzahl an Mitgliedern. Zudem ermöglicht es die LDAP-Integration und lässt sich mit externen Ticketsystemen wie Redmine sowie Gitlab Continuous Integration (CI, [27]) verknüpfen.
Gitlab hat mit Gitlab CE eine von rund 700 Entwicklern getragene Community-Edition unter MIT-Lizenz im Angebot und mit Gitlab EE eine Unternehmensversion unter proprietärer Lizenz. Beide kann der Administrator, wenn er keinen Support benötigt, kostenfrei auf eigenen Servern betreiben (Abbildung 9). Die Unternehmensversion verkauft Gitlab auch als Software as a Service (SaaS). Zu den Kunden von Gitlab gehören Red Hat, IBM, Bell, Interpol, die Nasa, O’Reilly Media, das Cern sowie das Forschungszentrum Jülich. Im Jahr 2015 kaufte Gitlab den Konkurrenten Gitorious hinzu.
Wer die Funktionen von Gitlab und Github vergleicht, stößt bei der Open-Source-Alternative kaum auf weniger Funktionen als beim Platzhirsch, diese aber in verfeinerter Ausführung. Mit den Protected Branches schützt der Entwickler bestimmte Zweige eines Projekts besser, indem er nur einem ausgewählten Personenkreis das Einfügen und Löschen von Code erlaubt. Die feingranularen Zugriffsrechte ermöglichen es auch, einem Anwender Rechte für den Bugtracker zu geben, ohne dass er direkt auf den Code des Projekts zugreifen darf.
Zudem erlaubt es Gitlab, Dateien an Issues oder Kommentare anzuhängen und Code sowie Commit-Messages zu durchsuchen. Gitlab besitzt zudem eine Zwei-Faktor-Authentifizierung und erlaubt den direkten Import von Projekten von Github, Bitbucket, Gitorious und anderen. Das Preismodell von Gitlab ist für Unternehmen um einiges günstiger als das von Github. Es bietet die Level Basic, Standard und Plus für rund 40 beziehungsweise 150 US-Dollar pro Anwender und Jahr.
Phabricator
Phabricator (Abbildung 10, [7]) ist eher eine Sammlung von Open-Source-Werkzeugen zur kollaborativen Software-Entwicklung als eine integrierte Plattform. Die Toolsammlung verbindet Codemanagement, Projektmanagement und Teamkommunikation miteinander. Dabei kümmern sich etwa Differential um Codereviews, Maniphest um Aufgabenverwaltung sowie Bugreports und Diffusion um das Hosten und Browsen von Repositories. Das Wiki trägt den Namen Phriction. Daneben erwarten den Admin noch rund 20 kleinere Werkzeuge (Abbildung 11).
Phabricator diente ursprünglich als internes Werkzeug bei Facebook, sein Hauptentwickler lagerte es 2010 aber in die Firma Phacility Inc. aus. Die Werkzeugsammlung ist freie Software unter der Apache-Lizenz und in PHP umgesetzt. Sie lässt sich wahlweise über eine Weboberfläche oder ein Kommandozeilen-Interface bedienen und bringt ein API für die Kommunikation mit externen Skripten mit.
Konzeptuell unterscheidet sich Phabricator von den im Artikel vorgestellten Projekten, indem es sich hauptsächlich auf Aufgaben (Tasks) und nicht so sehr auf Entwickler ausrichtet. Ein Anwender darf Phabricator kostenlos selbst hosten, das Unternehmen bietet mit Phacility Hosting [28] an, aber auch Supportpläne für 10 und 20 US-Dollar pro Anwender und Monat.
Phabricator arbeitet mit den Versionsverwaltungssystemen Git, Mercurial und Subversion (SVN) zusammen. Als eher lose Sammlung konzipiert, kombinieren Admins Phabricator gern mit weiteren Werkzeugen. Sie verknüpfen etwa Github oder einen anderen Codehoster mit den Phabricator-Werkzeugen (Abbildung 12). Zu den Kunden der Software zählen unter anderem Wikimedia, das sich 2014 von Bugzilla verabschiedete, Bloomberg, Quora, Dropbox und Facebook.
Fazit
Die vorgestellten Plattformen und Toolsammlungen haben jeweils ihren eigenen Fokus und richten sich damit an unterschiedliche Zielgruppen. Github ist klar der Platzhirsch, zählt viele Unternehmen zu seinen Kunden und hostet mehr freie Projekte als alle anderen zusammen. Die Plattform unterstützt Git und SVN als Versionskontrollsysteme.
Positiv ist, dass fast jeder, der sich etwas intensiver mit Open-Source-Software beschäftigt, Github bereits kennt und mit der Oberfläche zurechtkommt. Zudem vereint es dank seiner sozialen Komponenten eine riesige Entwicklerschar. Die Nachteile sind eine gewisse Behäbigkeit ob der schieren Größe – und vor allem die Lizenz, dank der Entwickler keine Möglichkeit haben, die Plattform nach ihren Bedürfnissen zu gestalten. Private Repositories sind generell kostenpflichtig, die Preise starten bei 7 US-Dollar. Im Vergleich ist Github relativ teuer. Aber sowohl Unternehmen als auch kleine Projekte, die sich an der Lizenz nicht stören, sind dort gut aufgehoben.
Tabelle 1
Quellcode-Hoster im Vergleich
|
Github |
Bitbucket |
Gitlab |
Phabricator |
|
|---|---|---|---|---|
|
URL |
||||
|
Lizenz |
proprietär |
proprietär |
MIT |
Apache v2 |
|
Sprache |
Ruby |
Python, Django |
Ruby |
PHP |
|
Versionskontrolle |
Git, SVN |
Git, Mercurial |
Git |
Git, Mercurial, SVN |
|
Am Markt seit |
2008 |
2008 |
2012 |
2010 |
|
Öffentliches Repository |
frei |
frei |
frei |
frei |
|
Privates Repository |
ab 7 US-Dollar |
frei |
frei |
k. A. |
|
Codereview |
ja |
ja |
ja |
ja |
|
Bugtracking |
ja |
ja |
ja |
ja |
|
Wiki |
ja |
ja |
ja |
ja |
|
Webseite hosten |
ja, statisch |
ja, statisch |
ja, statisch |
ja, statisch |
Ebenfalls proprietär ist Bitbucket und unterliegt damit denselben Begrenzungen wie Github. Neben Git unterstützt es Mercurial. Zu seinen Vorzügen zählt, kostenlos unbegrenzt viele private Repositories eröffnen zu können. Bei Projekten mit mehr als fünf Teilnehmern fallen Kosten an.
Als größter Vorteil entpuppt sich meist die direkte Anbindung an Tools aus Atlassians Portfolio, allen voran mit dem Aufgabenmanagement Jira. Auch die Verbindung mit Crucible, Fisheye, Bamboo, Clover, Sourcetree, Hipchat oder dem Confluence-Wiki fällt ins Gewicht, hinzu kommt der Support der Firma. Somit bietet sich Bitbucket vor allem für Freiberufler, größere Teams und Unternehmen an. Nachteil ist neben der proprietären Lizenz der relativ hohe Preis.
Rund 700 Entwickler tragen die freie Software Gitlab. Sie beschränkt sich in Sachen Versionskontrolle auf Git und steht in einer kostenfreien Community Edition (CE) sowie einer Enterprise Edition (EE) bereit. Bei den verfügbaren Funktionen verzeichnet Gitlab leichte Vorteile gegenüber Github. Deren Anzahl ist fast gleich, hinzu kommen aber Funktionen wie die Protected Branches oder die Option, Dateien und Ordner an Issues zu hängen. Die Oberfläche kupfert klar beim Konkurrenten Github ab, was bei Umsteigern aber die Vertrautheit steigert.
Gitlab bietet kostenfrei beliebig viele öffentliche und private Repositories mit einer jeweils unbegrenzten Anzahl an Mitgliedern an. Admins installieren die Plattform bei Bedarf auf eigener Hardware. Betreiben Projekte und Unternehmen eine Gitlab-Instanz auf eigenen Servern, erhalten sie bezahlten Support ab 40 US-Dollar pro Anwender und Jahr. Gitlab ist damit um einiges günstiger als Github. Projekte und Unternehmen, die Wert auf die Offenheit der verwendeten Plattform legen, finden in Gitlab einen mit Github vergleichbaren, preiswerten Codehoster.
Phabricator, ebenfalls Open Source, richtet sich als lose Sammlung von Werkzeugen vor allem an Anwender, die sich gern ihre Toolchain aus verschiedenen Projekten zusammenstellen. Es unterstützt neben Git noch Mercurial sowie Subversion. Phabricator bietet eine Aufgaben-orientierte Weboberfläche, ein Kommandozeilentool und lässt sich kostenfrei selbst hosten. Das hinter Phabricator stehende Unternehmen Phacility Inc. bietet Hosting inklusive Support an.
Infos
- Github: https://github.com
- Git: https://git-scm.com
- SVN: https://subversion.apache.org
- Github auf 2 Milliarden geschätzt: http://www.wsj.com/articles/github-raises-250-million-at-2-billion-valuation-1438206722
- “Dear Github”: https://github.com/dear-github/dear-github
- Bitbucket: https://bitbucket.org
- Phabricator: http://phabricator.org
- Gitlab: https://about.gitlab.com
- Codeplane: https://codeplane.com
- Beanstalk: http://beanstalkapp.com
- Kiln: https://www.fogcreek.com/kiln/
- Issue-Template: https://github.com/blog/2111-issue-and-pull-request-templates
- Github-Client: https://desktop.github.com
- Gitter: https://github.com/gitterHQ/desktop
- Smart Git HG: https://www.syntevo.com/smartgit/
- Github Enterprise: https://enterprise.github.com/home
- Github und die Lizenzen: https://www.softwarefreedom.org/resources/2013/lcs-slides-aaronw/#/begin,http://www.ifross.org/artikel/github-und-thema-post-open-source-software
- Lizenzwahl: https://www.linux-magazin.de/NEWS/Github-ermittelt-Lizenzen
- Benjamin Mako Hill, “Free Software needs Free Tools”: https://mako.cc/writing/hill-free_tools.html
- Managerkarussell: http://www.businessinsider.de/github-the-full-inside-story-2016-2
- ES-Lint: https://github.com/eslint/eslint/issues/5205
- Gitblit: http://gitblit.com
- Gogs: https://try.gogs.io/fnkr/gogs
- Mercurial: https://www.mercurial-scm.org
- Atlassian: https://www.atlassian.com
- Jira: https://de.atlassian.com/software/jira/try/
- Gitlab CI: https://gitlab.com/gitlab-ci/
- Phacility: https://phacility.com

















