Von Github zu einem anderen Hoster migrieren

Aus LinuxUser 12/2018

Von Github zu einem anderen Hoster migrieren

© Syaraku, 123RF

Durchstarten zum Neustart

Nach dem Kauf der populären Plattform Github durch Microsoft kommen viele Entwickler ins Grübeln und suchen Alternativen.

Github [1] ist in den letzten Jahren zur weltgrößten Codeplattform aufgestiegen und hostet sowohl proprietäre Projekte wie solche aus dem Bereich Open Source. Hinter der Plattform steht das Unternehmen Github Inc., das den Dienst 2008 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 Accounts von Teilnehmern mit insgesamt 31 Millionen Repositories. Den Löwenanteil davon machen kleine Projekte meist einzelner Entwickler aus, jedoch tummeln sich auf der Plattform auch größere wie der Linux-Kernel, Joomla, Django, Puppet, Bitcoin, PHP, Ruby on Rails, Linux Mint und dergleichen. Analysten schätzen den aktuellen Marktwert auf etwa zwei Milliarden US-Dollar [4].

Doch in den acht Jahren seines Bestehens beschwerten sich Entwickler 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 Nachricht alle notwendigen Angaben enthält, um einen Fehler ohne zeitaufwendige Nachfragen zu bearbeiten.

Github hat in diesem Fall bereits Abhilfe geschaffen. Seit Kurzem erstellen Entwickler bei Bedarf auf ihr Projekt zugeschnittene Formulare, die vom Meldenden alle notwendigen Informationen abfragen, mit denen der Entwickler in der Lage ist, das Problem zu beheben [12].

Inzwischen hatten die Betreiber geantwortet, sich entschuldigt, Abhilfe versprochen und einige Probleme bereits gelöst. Dennoch suchten gerade einige größere Projekte nach einer Alternative. Dann kam im Juni 2018 eine Nachricht, die viele Entwickler schockierte. Microsoft gab bekannt, Github für 7,5 Milliarden US-Dollar übernehmen zu wollen.

Microsoft hatte bereits 2017 sein stetig wachsendes Portfolio an freier Software auf Github eingestellt und dafür das Git Virtual Filesystem (GVFS) geschrieben, um sehr große Repositories effizient zu verwalten. Microsoft hat, was Anzahl und Größe betrifft, mittlerweile die meisten Repositories auf Github. Darunter ist mit Visual Studio das größte der gesamten Plattform. Der Code von Microsoft Windows besteht aus 3,5 Millionen Dateien, die auf Github rund 300 GByte belegen. 2017 pushten rund 1300 Microsoft-Angestellte Code in 825 Repositories.

Laut Microsoft bleibt Github nach der Übernahme unabhängig, obwohl der neue CEO Nat Friedman bisher Vize-Präsident bei Microsoft war. Mitte Oktober hat die EU-Kommission der Übernahme zugestimmt. Das Unternehmen plant, die Übernahme noch in diesem Jahr abzuschließen. Die Entwicklergemeinde ist aber in Sorge, dass die Plattform kommerzialisiert wird und fürchtet eine zu große Konzentration an Macht bei Microsoft.

In dieser Situation liegt es nahe, sich Alternativen neben Github als Plattform für die eigenen Projekte anzuschauen. Mit Bitbucket [6], Phabricator [7] und Gitlab [8] haben wir drei sehr populäre ausgewählt, die aber bei Weitem nicht die einzigen sind. Weitere Möglichkeiten finden Sie im Kasten “Ferner liefen”.

Ferner liefen

Die hier vorgestellten Verwaltungssysteme 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 etwa Codeplex ein (ist aber zum großen Teil auf Github gewechselt), Debian bevorzugt Alioth, während Canonical Launchpad entwickelt und verwendet.

Github

Vorneweg aber ein paar Worte zu Github selbst. Der Dienst (Abbildung 1) bietet kostenfreie, in der Anzahl unbeschränkte Repositories an, was aber nur für freie Software gilt. Jedes Codesilo bietet 1 GByte Speicherplatz sowie 1 GByte Bandbreite. Die Anzahl der Teilnehmer am Projekt schränkt das Unternehmen nicht ein.

Abbildung 1: Github bietet unter anderem dem Linux-Kernel eine Heimstatt, aber auch vielen anderen Open-Source-Projekten.

Abbildung 1: Github bietet unter anderem dem Linux-Kernel eine Heimstatt, aber auch vielen anderen Open-Source-Projekten.

Private Repositories schlagen monatlich mit 7 US-Dollar zu Buche, was fünf private Exemplare einschließt. Für 50 private Repositories zahlen Sie 50 US-Dollar, dürfen in ihnen aber proprietäre Projekte umsetzen. Für jeweils 5 US-Dollar erhöhen Sie den Speicher und die Bandbreite jeweils auf 50 GByte.

Github liefert grafische Tools zum Auswerten der Daten sowie Elemente sozialer Netzwerke. Anwender folgen einem Projekt bei Bedarf 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 selbst 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 den Befehl aus Listing 1 herunter.

Listing 1

git clone https://github.com/torvalds/ linux.git

Auf der Webseite springen all diese Features selbst Nutzern ohne Git-Kenntnisse ins Auge. Für Windows und MacOS X gibt es mit Github Desktop [13] einen Client, um an der Plattform und den Projekten teilzuhaben. Linux-Anwender 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.

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 zusätzlichen Diensten. 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 aufgrund des zunehmenden Umfangs nicht nur langsam, sondern sich immer mehr instabil verhalten hat. 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 [16].

Abbildung 2: Die Grafik zeigt es deutlich: Lizenzierte Repositories auf Github gehen zahlenmäßig zurück.

Abbildung 2: Die Grafik zeigt es deutlich: Lizenzierte Repositories auf Github gehen zahlenmäßig zurück.

Viele von ihnen vertraten fälschlich die Meinung, Projekte ohne Lizenz ständen frei zur Verfügung. 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 [17]. Wer ein neues Repository erstellt, darf sich jeweils eine Lizenz aussuchen.

Im goldenen Käfig

Weil Github nicht offen ist, müssen Entwickler von Open-Source-Projekten warten, bis die Betreiber ihre Verbesserungswünsche einpflegen. Selbst aktiv zu sein, ist hier nicht möglich. Das widerspricht unter anderem der Forderung des Linux-Entwicklers Benjamin Mako Hill, der 2010 “Freie Tools für freie Software” forderte [18]. 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 [19].

Noch ist völlig unklar, ob und wenn ja, wie stark sich Github unter der Ägide von Microsoft verändert. Im Oktober auf der Konferenz Github Universe konstatierten anwesende Journalisten, bisher seien keine gravierenden Kurskorrekturen zu bemerken.

Vergleichbare Alternativen

Während für die meisten, vorwiegend kleinen Projekte die Vorteile überwiegen, sehen sich einige größere wie ES-Lint [20] 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 [21] oder das strukturell stark an Github erinnernde Gogs (Abbildung 3[22] sind Belege hierfür.

Abbildung 3: Gogs für Selbsthoster erinnert in seiner Struktur sehr stark an Github.

Abbildung 3: Gogs für Selbsthoster erinnert in seiner Struktur sehr stark an Github.

Das aber reicht der sprunghaft wachsenden und stark vernetzten Open-Source-Szene nach der Github-Erfahrung nicht mehr. Das merken 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 4), das wie Github proprietär ist, existiert seit 2008 und beschränkte sich ursprünglich auf das Versionsverwaltungssystem Mercurial. Das australische Unternehmen Atlassian [23] erwarb Bitbucket 2010 und erweiterte es 2011 um die Versionsverwaltung Git.

Abbildung 4: Erste Schritte mit Bitbucket, das wie Github nicht nur proprietär ist, sondern sonst stark an die Plattform erinnert. Atlassian kaufte Bitbucket im Jahr 2010 und baute einen Git-Support ein.

Abbildung 4: Erste Schritte mit Bitbucket, das wie Github nicht nur proprietär ist, sondern sonst stark an die Plattform erinnert. Atlassian kaufte Bitbucket im Jahr 2010 und baute einen Git-Support ein.

Bitbucket ist, wie Github, 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 Gruppen von bis zu fünf Mitgliedern ein kostenfreies Abonnement abschließen dürfen. Die Oberflächen der beiden Konkurrenten ähneln sich ebenfalls, wer eines kennt, kommt mit dem anderen leicht zurecht.

Bei größeren Teams fällt eine monatliche Gebühr an, wobei ein Mitglied (bis zu einer Größe von 100) 1 US-Dollar zahlt. Im Gegensatz zu Github stellt Bitbucket jedem Benutzer kostenlos eine unbegrenzte Anzahl privater Repositories bereit.

Zum Verwalten der Projekte und als Bugtracker besteht Zugriff auf Atlassians Webanwendung Jira [24]. Diese bietet im Verein mit Bitbucket Server die Möglichkeit, den Dienst 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 5) dar. Die Weboberfläche bietet nur Git als Versionsverwaltung. Die Plattform bringt wie die proprietäre Konkurrenz diverse zusätzliche Funktionen mit, darunter einen Bugtracker, eine Code-Review-Komponente sowie ein Wiki.

Abbildung 5: Bei Bedarf greifen Sie auf Gitlab über die Kommandozeile zu, für den Einsatz unter Linux ist diese Möglichkeit fast ein Muss.

Abbildung 5: Bei Bedarf greifen Sie auf Gitlab über die Kommandozeile zu, für den Einsatz unter Linux ist diese Möglichkeit fast ein Muss.

Gitlab bietet kostenfrei beliebig viele öffentliche und private Repositories mit einer jeweils unbegrenzten Anzahl an Mitgliedern. 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ützen Sie bestimmte Zweige eines Projekts besser, indem er nur einem ausgewählten Personenkreis das Einfügen und Löschen von Code erlaubt. Die weitreichenden Zugriffsrechte ermöglichen es, 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. Die Plattform 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 6) ist eher eine Sammlung von Open-Source-Werkzeugen zur kollaborativen Software-Entwicklung als eine integrierte Plattform. Die Tools verbinden Codemanagement, Projektmanagement und Teamkommunikation miteinander.

Abbildung 6: Die Aufgaben-basierte Oberfläche von Phabricator.

Abbildung 6: Die Aufgaben-basierte Oberfläche von Phabricator.

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.

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 bedienen sie wahlweise über eine Weboberfläche oder ein Kommandozeilen-Interface. Außerdem bringt es ein API für die Kommunikation mit externen Skripten mit.

Konzeptuell unterscheidet sich Phabricator von bereits 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 [25] an, aber auch Pläne für Support 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 viele Anwender Phabricator gern mit weiteren Werkzeugen. Sie verknüpfen etwa Github oder einen anderen Codehoster mit den Phabricator-Werkzeugen. 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, verfügt über zahlreiche Nutzer und hostet mehr freie Projekte als alle anderen zusammen. Es gibt Git und SVN als Versionskontrollsysteme. Im Moment ist aber der künftige Kurs von Github, bedingt durch den Verkauf an Microsoft, schwer einzuschätzen.

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 Schar an Entwicklern.

Die Nachteile liegen in einer gewissen 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 (siehe Tabelle “Hoster”) ist Github also relativ teuer. 

Github

Bitbucket

Gitlab

Phabricator

URL

https://github.com

https://bitbucket.org

https://about.gitlab.com

http://phabricator.org

Lizenz

proprietär

proprietär

MIT

Apache v2

Sprache

Ruby

Python/Django

Ruby

PHP

VCS

Git/SVN

Git/Mercurial

Git

Git/Mercurial/SVN

Öffentliche Repos

frei

frei

frei

frei

Private Repos

ab 7 USD

frei

frei

k. A.

Codereview

ja

ja

ja

ja

Bug Tracking

ja

ja

ja

ja

Wiki

ja

ja

ja

ja

Webseite hosten

ja, statisch

ja, statisch

ja, statisch

ja, statisch

Der Autor

Ferdinand Thommes lebt und arbeitet als Linux-Entwickler, freier Autor und Stadtführer in Berlin und Charleston.

DIESEN ARTIKEL ALS PDF KAUFEN
EXPRESS-KAUF ALS PDF
LinuxUser 12/2018 KAUFEN
EINZELNE AUSGABE
ABONNEMENTS
TABLET & SMARTPHONE APPS
E-Mail Benachrichtigung
Benachrichtige mich zu:

Hinweis: Dieser Artikel ist älter als ein Jahr, enthaltene Informationen sind möglicherweise veraltet.

0 Kommentare
Älteste
Neuste Beste Bewertung
Nach oben