Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige
Lesedauer 31 Min.

GitHub im Griff

Mit diesen Werkzeugen optimieren Sie die Arbeit mit dem Service.
GitHub [1] ist eine Git-Versionsverwaltung, kombiniert mit einem sozialen Netzwerk. Die Entwicklung dafür begann Anfang 2008 und wurde von Linus Torvalds im Rahmen der Linux-Entwicklung initiiert. Öffentlich verfügbar war der Online-Dienst ab 2012. Viele Open-Source-Projekte fanden damit eine Heimat.Im Jahr 2018 übernahm Windows-Hersteller Microsoft die Plattform, nachdem die amerikanische Firma dort sukzessive viele Projekte inklusive .NET Core oder Visual Studio Code als Open Source veröffentlicht hatte.Die mögliche Einflussnahme des Softwaregiganten auf das Wohl und Wehe von GitHub und vor allem die Möglichkeit, in die Repositories zu blicken, gefiel nicht jedem, und so verließen einige Projekte dieses Zuhause wieder. Dennoch werden derzeit über GitHub mehr als 96 Millionen Projekte verwaltet.Grundlage der serverbasierten Projektverwaltung ist das Versionskontrollsystem Git (siehe Textkasten Git – Die verteilte Versionsverwaltung). GitHub macht alle Projekte in den Repositories über ein Webinterface verfügbar und bietet Benutzern Diskussionsmöglichkeiten und vieles mehr.

Grundlagen – Repositories und Co.

Die Projekte selbst werden über Quelltextdatenbanken verwaltet, die als Repositories bezeichnet werden und die bestimmten Besitzern zugeordnet sind. Projekte können durch mehrere Benutzer (weiter)entwickelt werden.Neue Projektbestandteile werden üblicherweise in dafür erzeugten Branches entwickelt. Ein solcher Branch wird in der Regel später wieder mit dem Hauptstrang der Entwicklung zusammengeführt. Soll eine komplett neue Entwicklungslinie eines Projekts entstehen, legt man in GitHub einen Fork an. Das Zusammenführen (Merge), das Hinzufügen von fehlerbereinigtem Quelltext oder auch das Ergänzen neuer und geänderter Funktionen erfordert Anfragen an den Besitzer des Projekts, sogenannte Pull Requests. Der Besitzer oder seine autorisierten Helfer entscheiden letztendlich über die Übernahme der gemachten Änderungen. Über einen Commit-Vorgang werden veränderte Dateien in die Versionsverwaltung mit einer Beschreibung eingereicht.

Git – Die verteilte Versionsverwaltung

Git ist ein Open-Source-Tool zur Quelltextverwaltung mit Versionierung. Das Tool ist unter macOS, Windows, Linux und Unix verfügbar. Damit sollte ursprünglich die Entwicklung von Projektbestandteilen von Linux optimiert werden. Die Versionsverwaltung Git erlaubt die nichtlineare Entwicklung von Projekten und Projektteilen (via Branch und Merge) und erfordert keinen zentralen Server. Jeder Benutzer erhält eine lokale Kopie einer Quelltext­datenbank (Repository). Optional lassen sich Daten zwischen unterschiedlichen Quelltextdatenbanken austauschen.
Git selbst arbeitet befehlsorientiert und macht entfernte Repositories lokal in einem Arbeitsverzeichnis verfügbar und übernimmt die Änderungen, hinzugefügte Dateien et cetera nach einem Commit in die lokale und dann per Push-Befehl in die entfernte Quellcodedatenbank.Die Weboberfläche selbst erlaubt die Anlage und Verwaltung von Projekten. Darüber werden zudem alle Anfragen, Kommentare, Probleme und Feedbacks verwaltet. Damit verhält sich GitHub wie eine an Entwicklern ausgerichtete So­cial-Media-Plattform, die eine Kommunikation, Kontakte sowie das Beobachten und Folgen erlaubt.Während Open-Source-Projekte in öffentlichen Repositories verwaltet werden, verwenden Unternehmen und Benutzer mit kommerziellem Zugang private Repositories. Deren Zugriff ist ausschließlich über einen registrierten Benutzer-Account beziehungsweise ausgewählte und authentifizierte Benutzer möglich (Bild 1). Gleiches gilt für die Mitarbeit sowie den Upload von Projekten oder Projektbestandteilen. Die Registrierung selbst nehmen Sie bereits über die Web­oberfläche von GitHub vor (Bild 2).
Die Plattform ist für Open-Source-Projekte kostenfrei nutzbar. Öffentliche Open-Resource-Repositories sind ebenfalls frei verfügbar und auch ohne Benutzeranmeldung frei herunterladbar. Allerdings wird beim unangemeldeten Zugang nur ein Lesezugriff eingeräumt. Private Repositories mitsamt deren Quellen sind vor der Öffentlichkeit verborgen. Private Projekte erfordern zudem einen kostenpflichtigen Benutzer-Account. Neben der Projektverwaltung bietet die Weboberfläche von GitHub Funktionen zur grafischen Veranschaulichung von Entwicklungsprozessen sowie Support- und Wiki-Funktionen. Mithilfe der Community-Funktionen folgen Sie etwa bestimmten Benutzern und lassen sich projektbezogen zu den Commits, Branches, Releases, und Contributors auf dem Laufenden halten. Ferner bietet GitHub (Bild 3) Funktionen zur Programmdokumentation sowie einen Marktplatz, um auf freie und kommerzielle Anwendungen zuzugreifen.
Nach dem authentifizierten Benutzerzugang erstellen Sie Projekte, laden andere Benutzer zur Teilnahme ein, legen Abspaltungen von Teilen eines Projekts an und führen das Zusammenführen unter Einbeziehung des Besitzers mit op­tionaler Übernahme von Teilprojekten durch. Bei Bedarf laden Sie Quellen zu zugänglichen Projekten herunter und nutzen beziehungsweise entwickeln diese lokal weiter. Sie verwalten und entwickeln neue Projekte, definieren Benutzer für den Projektzugang und tauschen sich mit diesen aus.

GitHub erweitern und optimieren

GitHub selbst bietet zudem ein REST-API (Representational State Transfer) an. Damit binden Sie GitHub an Desktop-, mobile und/oder Webanwendungen an, entwickeln selbst Browser-Erweiterungen oder auch eigenständige Hilfsprogramme und Tools. Über die Abfragesprache GraphQL führen Sie in eigenen Anwendungen Repository-Datenabfragen durch. Damit wird zudem die Möglichkeit geschaffen, GitHub durch Zusatz-Tools und Komponenten nahezu beliebig zu erweitern. Kein Wunder, dass es mittlerweile eine Vielzahl an Erweiterungen und Hilfsprogrammen zu GitHub gibt.Einige der Lösungen sind Open Source und mit Quelltext verfügbar, andere werden kostenfrei als Freeware, andere wiederum kommerziell angeboten.Bei den kommerziellen Tools gehört es mittlerweile zum Standard, dass die Lösungen zumindest für Open-Source-Projekte frei nutzbar sind. Einige Tool-Hersteller bieten zudem ihre kommerziellen Lösungen für Einzelentwickler oder kleine Entwickler-Teams ebenfalls kostenfrei an. Die wichtigsten dieser Tools, APIs und Browser-Erweiterungen sollen an dieser Stelle genauer betrachtet werden. Aufgrund der Vielzahl an Lösungen und Informationen sind die Inhalte in unterschiedliche Bereiche geteilt:
  • Projektmanagement und GUI-Clients: Prinzipiell führen Sie alle GitHub-Arbeiten zum Projektmanagement, zur Benutzerverwaltung und -interaktion sowie zur Versionsverwaltung online und browserbasiert aus. Dabei nutzen Sie gängige Browser wie Edge, Firefox, Opera oder Chrome. Obgleich auch der Internet Explorer derzeit noch mit GitHub funktioniert, werden Sie bei dessen Verwendung permanent darauf hingewiesen, dass dieser veraltet ist und nicht mehr unterstützt wird. Im Bereich der Tools für das Projektmanagement und GUI-Clients finden Sie nicht nur erweiterte Browser-Lösungen, sondern auch Desktop-Anwendungen, die die GitHub-Funktionalität übernehmen, funktional ausbauen oder mit alternativen Benutzeroberflächen (GUI – Graphical User Interface) ausstatten. Je nach Funktion ist dazu erneut die Online-Anbindung an GitHub erforderlich.
  • IDEs und IDE-Anbindungen: Prinzipiell widmet sich GitHub der Projekt- und Versionsverwaltung sowie der Kommunikation zwischen Benutzern, nicht aber der Online-Projektbearbeitung. Dementsprechend arbeiten Sie weiterhin mit Ihrem bevorzugten Entwicklungssystem lokal. Dazu klonen Sie ein GitHub-Repository auf dem Entwicklungsrechner und bearbeiten es lokal, um es dann zurück an GitHub zu übergeben (Push) (vergleiche [2]). Manuell sind diese Arbeiten aufwendig, sodass es sinnvoll ist, Entwicklungsumgebungen mit einer GitHub-Anbindung auszustatten, um die GitHub-Repository-Zugriffe, das Klonen und auch das Zurückgeben zu vereinfachen. Dazu sind Erweiterungen erforderlich, da nicht alle IDEs eine solche Funktionalität standardmäßig mitbringen. Für die nachträgliche funktionale Erweiterung muss die IDE selbst erweiterbar sein. Einige IDEs enthalten diese Funktionalität bereits, müssen aber entsprechend Ihrem Account zunächst angebunden und konfiguriert werden. Alternativ greifen Sie browserbasiert auf Cloud-Lösungen, die sogenannten Cloud IDEs, zurück. Auch hier müssen Sie aber gesondert auf eine verfügbare Anbindung an GitHub achten.
  • Browser-Extensions: Wie bereits erwähnt erfolgt der GitHub-Zugang per Webbrowser. Da Browser standardmäßig erweiterbar sind, gibt es eine Vielzahl an Browser-Add-ons und Extensions, über die Sie Funktionalitäten in GitHub nachrüsten. Zum Beispiel können Sie Funktionen, grafische Auswertungen, Suchfunktionen, optimierte Quelltextansichten oder Kopierfunktionen hinzufügen. Diese Browser-Extensions binden sich teilweise direkt in die vorhandene GitHub-Weboberfläche ein. ⇥
        Da Browser ihrerseits unterschiedliche Schnittstellen bieten, sind alle Browser-Erweiterungen jeweils für spezifische Browser zu entwickeln. Extensions liegen dementsprechend nicht immer für jeden Browser vor. ⇥
        Die meisten Erweiterungen stehen für Chrome zur Verfügung. Eine große Liste an Erweiterungen ist auch für Firefox erhältlich. Edge und Opera sind die Schlusslichter in der Anzahl der verfügbaren GitHub-Extensions. Je nach benötigter Funktionalität müssen Sie also entscheiden, ob Sie gegebenenfalls für eine einzelne wichtige Zusatzfunktion Ihren Standardbrowser wechseln. Generell empfiehlt sich für den erweiterten Browser-Einsatz unter GitHub der Webbrowser Chrome.
  • Codeanalyse und Testing: Prinzipiell sind Quelltextdatenbanken strukturierte Ressourcen im Textformat. Hier können Sie also nahezu jedes Analysewerkzeug ansetzen, auch wenn es nicht speziell für GitHub ausgewiesen ist. GitHub-Tools in diesem Bereich haben lediglich den Vorteil, dass Sie eine Online-Anbindung an die Quelltextdatenbanken bieten oder speziell für das Repository-Format angepasst sind. Prinzipiell nutzen Sie auch alle Git-Tools für Repositories. Dabei hängt es vom verwendeten Tool ab, ob Sie für eine Analyse oder ein Testen entfernte Repositories zunächst lokal klonen müssen oder nicht. Zu diesem inhaltlichen Bereich wird dementsprechend nur eine kleine Tool-Auswahl angeführt.
  • Tools und Hilfsprogramme: Tools und Hilfsprogramme für GitHub müssen entsprechend den IDEs nicht zwangsläufig im Browser ausgeführt werden. Sie liegen mitunter als eigenständige Desktopanwendungen oder als Hilfsprogramme für die Eingabeaufforderung vor (zum Beispiel Befehls-Tool für die Kommandozeilenebene). Hier finden Sie mitunter auch Spezialanwendungen, beispielsweise für die Repository-Datensicherung oder auch für eine detaillierte Auswertung und erweiterte grafische Analyse.
  • APIs und API-Tools: In diesem Bereich finden Sie die Informationen zur Entwicklung eigener Anwendungen mit GitHub-Anbindung sowie Bibliotheken und Wrapper, um einen vereinfachten Zugang zum GitHub-API zu bekommen. Außerdem werden hier Beispielprogramme aufgeführt, die die Implementierung der GitHub-Anbindung und die Entwicklung von Sonderfunktionen quelltextbasiert zeigen. .NET-Entwickler finden hier mit dem Octokit einen .NET-Wrapper, der den Zugriff auf die GitHub-Programmierschnittstellen erleichtert.
  • Continuous Integration: Hinter dem Begriff Continuous Integration (kontinuierliche Integration) verbirgt sich der Vorgang des permanenten Hinzufügens von Komponenten zu einer Anwendung im Rahmen der Softwareentwicklung, um damit einhergehend die Funktionalität und Softwarequalität zu verbessern. ⇥
        Continuous-Integration-Plattformen übernehmen diese Arbeiten und sorgen damit für eine gemeinsame Codebasis, automatisierte Übersetzungsvorgänge, den fortlaufenden Test, das Einfügen von neuen Softwareelementen in die gemeinsame Codebasis, automatisierte Berichtsanlagen für einfache Nachvollziehbarkeit sowie die automatisierte Verteilung. Im Rahmen der fortlaufenden Entwicklung werden Fehler und Probleme hervorgehoben und frühzeitig erkannt und gemeldet. Die Entwickler-Tools, die sich der kontinuierlichen Integration widmen, werden in der Regel online betrieben. Hier spielt wiederum die GitHub-Anbindung eine wesentliche Rolle. Dementsprechend werden in diesem Themenbereich die wichtigsten CI-Tools mit GitHub-Anbindung vorgestellt.
Zu allen Inhalten werden die Namen und Anbieter, der Programmtyp (kommerziell, Freeware oder Open Source) sowie Kurzbeschreibungen in separaten Tabellen aufgeführt. Da­rin finden Sie auch die Webadressen, über die Sie auf die zugehörigen Produktseiten, zum zugehörigen Quelltext oder zu den zugeordneten Informationen gelangen.

Projektmanagement und GUI-Clients

Die meisten Tools für das GitHub-Projektmanagement werden kommerziell angeboten. Doch es gibt auch Open-­Source- und Freeware-Lösungen.CodeTree ist eine kompakte, kommerzielle Projektverwaltung, die für einen einzelnen Benutzer für 9 US-Dollar im Monat zu haben ist. Für Entwicklerteams stehen Lizenzvarianten von 3 bis 50 Benutzern zur Verfügung. Die Kosten dafür bewegen sich zwischen 24 und 199 US-Dollar je Monat. Eine 14-Tage-Testversion ist für ein erstes Kennenlernen erhältlich. Codetree konzentriert sich darauf, mehrere Repositories parallel nebeneinander in einer einzelnen Benutzeroberfläche zusammenzufassen, und synchronisiert sich dabei vollständig mit GitHub. Es verarbeitet und zeigt Issues und Pull Requests Repository-übergreifend übersichtlich in Listen an, bietet erweiterte Filter und Sortierungsfunktionen und erlaubt zudem das Nachverfolgen von Abhängigkeiten. Zu implementierende Funktionalitäten und Inhalte von Fehlerberichten lassen sich per Drag-and-drop sortieren und in den Vordergrund bewegen und damit priorisieren.Der GitHubDesktop Client ist die einzige Open-Source-Lösung zur erweiterten Projektverwaltung (Bild 4). Sie wurde mit TypeScript umgesetzt und verwendet intern die Java­Script-Bibliothek React zur Erstellung der Benutzeroberfläche. Installationsprogramme sind sowohl für Windows als auch für macOS erhältlich. Der GitHub Desktop Client erlaubt die lokale Bearbeitung von Repositories, die per Drag-and-drop übernommen werden.
Arbeitsabläufe werden vereinfacht und Funktionalitäten werden erweitert. Anweisungen sind zudem ausführbar, ohne sich mit den Git-Befehlsparametern auseinanderzusetzen. Dementsprechend adressiert das Tool in erster Linie die Benutzer, die in die Repository-Verwaltung einsteigen. Das Tool ist mehrbenutzerfähig, verarbeitet Commits, Branches und Pull Requests, bietet Ansichten für den Continuous-Integra­tion-Status und bietet Quelltextansichten mit Syntaxfarbgebung. Unterschiedliche Projektversionen werden nicht nur verwaltet, sondern auch detailliert verglichen, um deren Unterschiede hervorzuheben.Das Programm ist an externe Quelltexteditoren anbindbar. Auf der Produktseite finden Sie detailliert die versionsspezifischen Erweiterungen und Bugfixes aufgelistet. Ferner erhalten Sie dort detaillierte Anleitungen zum Programmeinstieg sowie zur Anbindung von GitHub-Repositories.Das Programm unterliegt der MIT-Lizenz und kann dementsprechend nach Bedarf angepasst und auch erweitert werden. Die Quelltexte selbst stehen auf GitHub zum Download bereit.GitKraken ist ein kommerzieller Git-Client, der lediglich für Open-Source-Projekte kostenfrei nutzbar ist. Die Programmversion laden Sie sich kostenfrei über die Herstellerseite herunter. Die Pro-Version bietet erweiterte Funktionen und ist für 49 US-Dollar je Benutzer im Jahr zu haben. Die Enterprise-Edition ist auf Ihren firmeneigenen Servern installierbar und kostet 99 US-Dollar je Benutzer, wobei die Mindestzahl der Benutzer mit 10 vorgegeben ist.GitKraken ist unter Windows, Linux und macOS nutzbar und ersetzt ebenfalls Git-Kommandos durch eine grafische Programmoberfläche mit visuellen Interaktionen. Dazu verwaltet es Historien zu Branching-, Merging- und Commit-Vorgängen. Eine lokale Git-Installation ist für GitKraken nicht nötig. Es interagiert mit GitHub, GitLab, Bitbucket und VSTS (Visual Studio Team Services) und benötigt zur Interaktion keinen Browser.Es besitzt ein eingebautes Merge-Werkzeug, bietet Funktionen zum Rückgängigmachen und Wiederholen sowie detaillierte Suchfunktionen, legt Unterschiede zwischen Projektversionen offen, bietet Tastaturbefehle für den Schnellzugriff auf Teilfunktionen und erleichtert das Durchführen grundlegender Operationen per Drag-and-drop.Außerdem besitzt das Tool einen integrierten Texteditor mit Syntaxfarbgebung, Suchfunktionen und Anzeigen für Projektstrukturen.Issue.sh ist ein Tool für die agile Projektverwaltung, das sich in GitHub integriert und mit den GitHub-Daten interagiert (Bild 5). Es bietet Analysefunktionen für Abhängigkeiten sowie grafische Auswertungsfunktionen. Für einzelne Benutzer und Teams mit bis zu fünf Entwicklern ist das Tool kostenfrei. Für größere Entwicklungsteams fallen im Monat je Arbeitsplatz 2 US-Dollar im Monat an.
Mit Microsoft Power BI und den separat erhältlichen GitHub-Tools (Bild 6) binden Sie GitHub direkt an das Business-Intelligence-Werkzeug von Microsoft an. Mit Power BI werten Sie Unternehmensdaten aus und präsentieren diese in übersichtlichen Dashboards. Ziel der Auswertungen ist es, geschäftsbezogene Entscheidungen besser treffen zu können. Power BI bietet Berichts- und Analysefunktionen und ist auch von mehreren Benutzern zum einfachen Informationsaustausch effektiv nutzbar.
An Power BI sind Hunderte unterschiedlicher Datenquellen anbindbar. Ferner lassen sich Ergebnisse veröffentlichen und in öffentliche Webseiten einbetten. Die Programmvariante zum Erstellen von Analyseergebnissen ist kostenfrei für den Desktop erhältlich (Power BI Desktop). Für das Freigeben und Zusammenarbeiten im Team wird die Pro-Variante benötigt. Diese kostet je Benutzer und Monat 8,40 Euro. Um GitHub-Aktivitäten an die Dashboard- und Berichtsfunktionen anzubinden, steht ein kostenfreies Add-on mit dem Namen GitHub Project Management bereit. Darüber stellen Sie alle Repository-Aktivitäten grafisch dar.SmartGit ist ein weiterer Git-Client, der per Subscription oder Einzelplatzlizenz, wahlweise mit eingeschlossener Aktualisierung über die gesamte Lebenszeit, verfügbar ist. Eine Programmfassung mit Übernahme von Aktualisierungen für ein Jahr ist für 89 Euro erhältlich. Die unbegrenzte Aktualisierung einer einzelnen Programmlizenz ist für 209 Euro zu haben.SmartGit verfügt über eine grafische Benutzerumgebung mit Drag-and-drop-Funktionalität (Bild 7). Außerdem erhalten Sie einen Git-Client für
die Eingabeaufforderung (Linux und Windows), einen SSH-­Client sowie Tools zum Vergleichen und Zusammenführen von Dateien. Über Erweiterungen binden Sie SmartGit an GitHub, GitLab, Bitbucket oder den Bitbucket Server. Lokale und verteile Codeansichten werden per Erweiterung und basierend auf Git durchgeführt.
Darüber verwalten Sie Pull Requests oder betrachten als Projektbesitzer Übernahmeanfragen zu geänderten Quellen lokal, verbinden diese mit den Projekten, kommentieren diese oder weisen sie zurück. Entfernte GitHub-Repositories lassen sich lokal klonen.Das Programm SourceTree ist eine weitere grafische Benutzeroberfläche für Git und sowohl für Windows als auch mac­OS erhältlich. Auch hier liegt der Fokus auf einer einfachen Verwaltung, sodass Sie sich bei Ihren Projekten auf das Codieren fokussieren können.Arbeitsprozesse sind visualisierbar, Git-Funktionen einfach aufzurufen, und neben einer umfassenden Dokumentation sind auch Tutorials verfügbar. SourceTree interagiert direkt mit Bitbucket, GitHub, GitLab und den VSTS (Visual Studio Team Services). Installierbare Programmversionen erhalten Sie kostenfrei über die Produktseite.Weitere Projektverwaltungssysteme liegen mit Waffle, ZenHub und Zube vor, die allesamt an GitHub anbindbar sind und sowohl in kostenfreien als auch kommerziellen Produktvarianten zur Verfügung stehen. In der Regel nutzen Sie die letztgenannten Werkzeuge kostenfrei mit Open-Source-Repositories.Details zu den Funktionen sowie zur Preisgestaltung selbst entnehmen Sie bitte den jeweiligen Produktseiten im Internet (siehe Tabelle 1).

Tabelle 1: GUI- und Projektmanagement-Tools für GitHub

Anbieter Programmtyp Beschreibung Webadresse
Brackets Open Source Cloud-basierter und mit JavaScript entwickelter Open-Source-Quelltexteditor für C/C++, C#, Java, Python und JavaScript http://brackets.io
Coding WebIDE Open Source Von CodeTeam entwickelte, Cloud-basierte Entwicklungsumgebung, die ursprünglich unter dem Namen WebIDE eingeführt und bei der Weiterentwicklung in Cloud Studio umbenannt wurde. Sie unterstützt Git- und GitHub-, Coding-, Bitbucket- und GitLab-Repositories https://ide.coding.net/index
Codeanywhere Freeware, kommerziell Browserbasierte Entwicklungsumgebung für Chrome sowie iOS und Android mit Anbindungsfunktionen für Git, Bitbucket und GitHub https://codeanywhere.com
Eclipse EGit GitHub Connector Open Source Um GitHub an EGit zu binden, steht eine separate Verbindungskomponente mit dem Namen Eclipse EGit GitHub Connector zur Verfügung. Diese setzt die Installation des EGit-Plug-ins voraus (siehe unten) https://github.com/eclipse/egit-github
EGit – Eclipse EGit Plugin Open Source Für das Entwicklungssystem Eclipse erhalten Sie mit EGit ein Plug-in, um das Versionskontrollsystem Git anzubinden. Für die Anbindung an GitHub wird der zuvor angeführte Connector Eclipse EGit GitHub Connector benötigt www.eclipse.org/egit
GitHub Extension for Visual Studio Freeware Extension für die direkte Anbindung von GitHub an die Entwicklungsumgebung Visual Studio in der Version 2015 oder höher https://visualstudio.github.com
Gitpod (beta) Freeware, kommerziell Browserbasierte Entwicklungsumgebung mit GitHub-Anbindung, die sich derzeit noch in der Betaphase befindet und die eine Vielzahl an Programmiersprachen unterstützt (zum Beispiel Java, Python, PHP, Ruby, C/C++, C# und Objective-C) www.gitpod.io
NetBeans IDE Open Source NetBeans ist eine freie integrierte Entwicklungsumgebung und Projektverwaltungssoftware für Java und C/C++, die die Funktionen der Versionskontrollsysteme Subversion, Git und Mercurial bereits beinhaltet. Plug-ins und Erweiterungen sind dementsprechend nicht erforderlich. Hinweise zur Verwendung von Code-Repositories und zur GitHub-Anbindung entnehmen Sie dem nebenstehenden Link https://netbeans.org
Xcode Freeware Xcode ist die integrierte Entwicklungsumgebung für macOS von Apple, mit der Sie Anwendungen mit Objective-C sowie C/C++ und dem Cocoa-Framework für macOS, iOS, tvOS und watchOS entwickeln. Auch hier ist die GitHub-Anbindung bereits integriert https://developer.apple.com/xcode

IDEs und IDE-Anbindungen für GitHub

Während sich GitHub der Projekt- und Versionsverwaltung sowie der Interaktion zwischen Benutzern und Entwicklern widmet, nehmen Sie die eigentliche Projektbearbeitung mitsamt den zugehörigen Entwicklungsarbeiten weiterhin mit ihrer gewohnten Entwicklungsumgebung vor. Dabei tritt häufig negativ zutage, dass viele Entwicklungssysteme keine direkte Anbindung an GitHub, GitLab oder auch Bit­bucket bieten. Abhilfe schaffen gegebenenfalls Erweiterungen mit den entsprechenden Anbindungsfunktionen. Alternativ weichen Sie auf andere Entwicklungsumgebungen mit der entsprechenden Funktionalität aus. Tabelle 2 stellt eine Auswahl frei nutzbarer (Online-)Entwicklungssysteme zusammen. Dabei ist zu berücksichtigen, dass Entwicklungsumgebungen mitunter nur ganze bestimmte Programmiersprachen unterstützen. Dies schränkt die Möglichkeiten zum Wechsel der IDEs erheblich ein.

Tabelle 2: IDEs, IDE-Erweiterungen, Plug-ins und Informationen für die Anbindung an GitHub

Anbieter Programmtyp Beschreibung Webadresse
Brackets Open Source Cloud-basierter und mit JavaScript entwickelter Open-Source-Quelltexteditor für C/C++, C#, Java, Python und JavaScript http://brackets.io
Coding WebIDE Open Source Von CodeTeam entwickelte, Cloud-basierte Entwicklungsumgebung, die ursprünglich unter dem Namen WebIDE eingeführt und bei der Weiterentwicklung in Cloud Studio umbenannt wurde. Sie unterstützt Git- und GitHub-, Coding-, Bitbucket- und GitLab-Repositories https://ide.coding.net/index
Codeanywhere Freeware, kommerziell Browserbasierte Entwicklungsumgebung für Chrome sowie iOS und Android mit Anbindungsfunktionen für Git, Bitbucket und GitHub https://codeanywhere.com
Eclipse EGit GitHub Connector Open Source Um GitHub an EGit zu binden, steht eine separate Verbindungskomponente mit dem Namen Eclipse EGit GitHub Connector zur Verfügung. Diese setzt die Installation des EGit-Plug-ins voraus (siehe unten) https://github.com/eclipse/egit-github
EGit – Eclipse EGit Plugin Open Source Für das Entwicklungssystem Eclipse erhalten Sie mit EGit ein Plug-in, um das Versionskontrollsystem Git anzubinden. Für die Anbindung an GitHub wird der zuvor angeführte Connector Eclipse EGit GitHub Connector benötigt www.eclipse.org/egit
GitHub Extension for Visual Studio Freeware Extension für die direkte Anbindung von GitHub an die Entwicklungsumgebung Visual Studio in der Version 2015 oder höher https://visualstudio.github.com
Gitpod (beta) Freeware, kommerziell Browserbasierte Entwicklungsumgebung mit GitHub-Anbindung, die sich derzeit noch in der Betaphase befindet und die eine Vielzahl an Programmiersprachen unterstützt (zum Beispiel Java, Python, PHP, Ruby, C/C++, C# und Objective-C) www.gitpod.io
NetBeans IDE Open Source NetBeans ist eine freie integrierte Entwicklungsumgebung und Projektverwaltungssoftware für Java und C/C++, die die Funktionen der Versionskontrollsysteme Subversion, Git und Mercurial bereits beinhaltet. Plug-ins und Erweiterungen sind dementsprechend nicht erforderlich. Hinweise zur Verwendung von Code-Repositories und zur GitHub-Anbindung entnehmen Sie dem nebenstehenden Link https://netbeans.org
Xcode Freeware Xcode ist die integrierte Entwicklungsumgebung für macOS von Apple, mit der Sie Anwendungen mit Objective-C sowie C/C++ und dem Cocoa-Framework für macOS, iOS, tvOS und watchOS entwickeln. Auch hier ist die GitHub-Anbindung bereits integriert https://developer.apple.com/xcode
IDEs werden lokal installiert oder heutzutage auch zunehmend als Cloud-Lösungen über Webbrowser und Online-Anbindungen ausgeführt.Zu diesen Entwicklungsumgebungen zählen Brackets, Coding WebIDE (Cloud Studio) oder auch Codeanywhere. Diese lassen sich je nach Programmiersprache im Verbund mit GitHub und über lokale Repositories nutzen.Die Entwicklungsumgebung Eclipse verbinden Sie über den Eclipse EGit Connector und das EGit Eclipse Plugin mit den Webfunktionen von GitHub. Eine entsprechende Anbindungskomponente ist auch für Visual Studio mit den GitHub Extensions for Visual Studio erhältlich (Bild 8).
Mithilfe der letztgenannten, kostenfreien Erweiterung integrieren Sie in Visual Studio die GitHub-Anmeldung und Funktionen zum Klonen entfernter Repositories. Ferner erhalten Sie Dialoge, über die Sie neue Repositories anlegen und lokal klonen sowie später wieder auf GitHub veröffentlichen, und zwar wahlweise privat oder öffentlich (Bild 9). Ferner rufen Sie direkt in Visual Studio die Pull Requests ab oder legen selbst neue Pull Requests an. Auch die Anlage und Übertragung von Codeschnipseln (Gists) auf GitHub aus Visual Studio heraus wird unterstützt.
Die derzeit noch in der Betaphase befindliche Entwicklungsumgebung GitPod klinkt sich unmittelbar in die GitHub-Oberfläche ein und ist hier direkt per Schaltflächenbefehl ausführbar (Bild 10). Für .NET-Entwickler ist dabei besonders interessant, dass diese IDE entsprechend der Cloud-IDE Brackets auch die Programmiersprache C# unterstützt.
Die Open-Source-Entwicklungsumgebung NetBeans IDE (Bild 11) bietet ohne zusätzliche Erweiterung bereits direkt eine Git-Unterstützung und Funktionen für die GitHub-Anbindung an. Die Webadressen zu dem IDE-Bezug sowie zur GitHub-Konfiguration finden Sie in Tabelle 2.
Ebenso wie die NetBeans IDE liefert auch die Apple-Entwicklungsumgebung Xcode standardmäßig Funktionen für die GitHub-Anbindung mit. Alle weiteren und derzeit nicht vorhandenen Anbindungen und Übernahmefunktionen für andere Entwicklungsumgebungen können Sie mithilfe des GitHub-API (siehe unten) auch selbst codieren, allerdings mit erhöhtem Aufwand.Bieten die verwendeten Entwicklungsumgebungen keine eigenen Schnittstellen für die Erweiterung, so lagern Sie die Anbindungs- und Datenübernahmefunktionen gegebenenfalls auch in eigenständige Hilfsprogramme aus.

GitHub-Browser-Erweiterungen

Wie bereits erwähnt sind die meisten Browser-Erweiterungen zu GitHub für Chrome und Firefox erhältlich. Die Erweiterungsfunktionen selbst werden üblicherweise in JavaScript implementiert und per Add-on oder Extension verfügbar gemacht. Die Funktionen selbst sind in der Regel kompakt und konzentrieren sich auf ganz bestimmte Teilfunktionen, mit dem Ziel, diese direkt in GitHub zu verbessern. Dazu werden Standardansichten in GitHub manipuliert und erweitert.Eine Auswahl der wichtigsten Browser-Erweiterungen finden Sie in der Tabelle 3.

Tabelle 3: Browser-Erweiterungen für die funktionale Erweiterung von GitHub

Anbieter Programmtyp Beschreibung Webadresse
GitHub-Firefox-Add-on Freeware Erweiterung von GitHub-Suchfunktionen im Webbrowser Firefox, zur Suche nach Repositories, Benutzern, Quelltexten und Projekten https://addons.mozilla.org/en-US/firefox/addon/github
Octotree Open Source GitHub-Quellcodestrukturanzeigen für Chrome, Firefox, Opera und Safari https://github.com/ovity/octotree
GitHub Boxcutter Open Source Erweiterungen für Paketmanifeste auf GitHub für Chrome https://github.com/mike-north/chrome-github-boxcutter
Activity Filter for GitHub Open Source GitHub-Aktivitätsfilter für Chrome https://github.com/muan/github-dashboard
github-gmail Open Source Hilfserweiterung für GitHub-Benachrichtigungen in Gmail für Chrome und Firefox https://github.com/muan/github-gmail
github-selfies Open Source Tool zum Hinzufügen von Selfies zu Pull Requests und Kommentaren für Firefox und Chrome https://github.com/thieman/github-selfies
News Feed for GitHUB Open Source Erweiterung zur Anzeige von GitHub-Benachrichtigungen zu Neuigkeiten in den Webbrowsern Chrome und Firefox https://github.com/julmot/news-feed-for-github
Prettypull requests Open Source Funktionserweiterungen für die Pull-Request-Seiten von GitHub unter Chrome https://github.com/Yatser/prettypullrequests
Do Not Merge WIP for GitHub Open Source Deaktivierung der Schaltfläche Merge pull requests in Chrome https://github.com/sanemat/do-not-merge-wip-for-github
Isometric- Contributions Open Source Variable GitHub-Chart-Anzeigen (regulär oder isometrisch) für Chrome und Firefox https://github.com/jasonlong/isometric-contributions
GitHub Real Names Open Source Hinzufügen einer Schaltfläche zum Wechsel zwischen Benutzernamen und echten Namen in Chrome https://github.com/ForbesLindesay/github-real-names
GitHub Mention Highlighter Open Source Hervorhebung des eigenen Benutzernamens und Teams in Ausgaben, Kommentaren und Anfragen unter Chrome https://github.com/benbalter/github-mention-highlighter
Notifier for GitHub Open Source Abfrage von GitHub-Benachrichtigungen im Minutentakt für Chrome, Firefox und Opera https://github.com/sindresorhus/notifier-for-github
OctoLinker Open Source Erweiterung zum vereinfachten Navigieren in GitHub-Quelltexten unter Chrome, Firefox und Opera https://github.com/OctoLinker/OctoLinker
GitHub- Omnibox Open Source Erweiterte Github-Befehlsanzeige in der Suchanzeige von Chrome mit personalisierter Autovervollständigenfunktion https://github.com/ProLoser/Github-Omnibox
GitHub Hovercard Open Source Integration von Karten (Hovercards) in GitHub unter Chrome, Firefox, Opera und Userscript https://github.com/Justineo/github-hovercard
Clipboardy Open Source Erweiterung für Chrome, über die Sie Quelltext von GitHub, Stackoverflow.com und NPMJS.com in die Zwischenablage umkopieren https://github.com/panzerdp/clipboardy
GitHunt Open Source Chrome-Erweiterung zur Offenlegung der am meisten beachteten Projekte auf GitHub https://github.com/kamranahmedse/githunt
GitHub Repo Size Open Source Chrome-Erweiterung zur Anzeige der Repository-Größen in den zugehörigen Zusammenfassungen https://github.com/harshjv/github-repo-size
Refinded GitHub Open Source GitHub-Funktionserweiterungen für Chrome, Firefox und Opera (etwa für Markierungen oder Sprunganweisungen) https://github.com/sindresorhus/refined-github
Markwrap Open Source Chrome-Erweiterung, um Text mit Sprungmarken zu verbinden https://github.com/bitoiu/markwrap
GitHub Red Alert Open Source Chrome-Erweiterung, über die das Benachrichtigungssymbol bei ungelesenen Nachrichten in die Farbe Rot geändert wird https://github.com/bitoiu/github-red-alert
GitHub Compare Tags Open Source Chrome-Erweiterung, um erweiterte Tags (Kennzeichnungen) in die Vergleichs- seiten von GitHub einzubinden https://github.com/marpo60/github-compare-tags
Achievibit Open Source Abfrage von Achievements zu diversen Charakteristiken zu Pull-Anfragen unter Chrome https://github.com/Kibibit/achievibit
Hubnav Open Source Tastaturgesteuerte Navigationsfunktionen für GitHub unter Chrome https://github.com/cheshire137/hubnav
GitHub +1 Chrome Extension Open Source Chrome-Erweiterung zum Austausch der originalen Kommentare gegen Zähler- und Avatar-Anzeigen https://github.com/ryanflorence/github-plusone-extension
GitHub userscripts Open Source GitHub-Funktionserweiterungen mithilfe von Userscript-Skripten unter Firefox, Chrome, Opera, Safari, Dolphin und UC Browser unter Verwendung von Tampermonkey oder GreaseMonkey (zum Beispiel Farben, Quellcodeverwaltung, Navigation, Filter und Kommentare) https://github.com/Mottie/GitHub-userscripts
OctoLenses Browser Extension Open Source Erweiterung für Chrome und Firefox, über die Sie Filter setzen, mit denen die Informationsanzeige auf die wichtigsten Inhalte beschränkt wird https://github.com/rgehan/octolenses-browser-extension
GitHub File Icon Open Source Tool zur Bildsymboländerung von Dateien in GitHub, GitLab, Bitbucket, Gitea und Gogs mit der wahlweisen Anzeige in Farbe oder Grau https://github.com/xxhomey19/github-file-icon
Tampermonkey Open Source Browser-Erweiterung und Userscript- Manager für Chrome, Edge, Safari, Opera und Firefox (siehe GitHub userscripts) https://tampermonkey.net
GreaseMonkey Open Source Browser-Erweiterung und Userscript- Manager für Firefox (siehe GitHub userscripts), die samt Quelltexten verfügbar ist https://www.greasespot.net
Das GitHub-Firefox-Add-on widmet sich der Erweiterung der GitHub-Suchfunktionen. Über das Add-in Octotree blenden Sie strukturierte Ansichten der Quelltexte auf GitHub als Baum für eine vereinfachte Auswahl in Ihrem Webbrowser ein (Bild 12).
GitHub BoxCutter erweitert die GitHub-Paket-Manifeste. Der Activity Filter for GitHub stellt einen Aktivitätsfilter bereit. Mit github-gmail erweitern Sie die Benachrichtigungsfunktionen im Verbund mit GMail, und mit github-selfies ordnen Sie Ihren Kommentaren und Pull Requests persönliche Selfies zu (Bild 13).
Mit der Erweiterung News Feed for GitHub machen Sie Neuigkeiten und Benachrichtigungen innerhalb von GitHub verfügbar. Prettypullrequests bringt Funktionserweiterungen für Pull Requests. Do Not Merge WIP for GitHub deaktiviert die Schaltfläche Merge Pull Requests, und Isometric-Contributions macht die grafische Auswertungsanzeige in GitHub variabel (Bild 14).
Mit GitHub Real Names wechseln Sie in GitHub zwischen den Benutzer- und Echtnamen. GitHub Mention Highlighter hebt den eigenen Benutzernamen hervor. Mit dem Notifier for GitHub setzen Sie ein zeitgesteuertes Abfragen von Benachrichtigungen um. Der OctoLinker vereinfacht Naviga­tionsaufgaben.Die GitHub-Omnibox macht eine erweiterte GitHub-Befehlsanzeige verfügbar, und mit GitHub Hovercard rüsten Sie Schwebekarten für Informationsanzeigen im Browser nach. Clipboardy unterstützt Sie beim Umkopieren von Inhalten in die Zwischenablage, während GitHunt der Übersicht über die Projekte dient, die am meisten auf GitHub beachtet werden (Bild 15).
Mit GitHub Repo Size erhalten Sie Informationen zu den Repository-Größen, und Refinded GitHub liefert Funktionserweiterungen zu Markierungen und Sprungmarken. Markwrap verbindet Sprungmarken mit Text. GitHub Red Alert ändert die Farbe für das Benachrichtigungssymbol der noch nicht gelesenen Nachrichten, und GitHub Compare Tags bindet erweiterte Kennzeichnungen in Benachrichtigungsseiten ein. Mit Achievibit führen Sie Leistungsabfragen zu Pull Requests durch, mit Hubnav erhalten Sie erweiterte, tastaturgesteuerte Navigationsfunktionen, und mit GitHub +1 Chrome Extension tauschen Sie herkömmliche Kommentare gegen Avatar- und Zähleranzeigen aus.Diverse Funktionserweiterungen erhalten Sie mit den GitHub userscripts, die ihrerseits mit den Erweiterungen Tampermonkey oder GreaseMonkey zusammenarbeiten. OctoLenses erweitert die Filterfunktionen, über die Sie die Anzeige auf ausgewählte Inhalte einschränken (Bild 16).
Welche Erweiterungen für welche Browser verfügbar sind, erfahren Sie in Tabelle 3.In der Regel werden Extensions und Add-ons browserspezifisch entwickelt und sind dementsprechend auch jeweils nur speziell für diese Browser verfügbar.Liegen die Erweiterungen nicht als Open Source und im Java­Script-Format vor, erhalten Sie diese über die Online-Marktplätze der jeweiligen Browser. Tabelle 4 stellt die wichtigsten Adressen mitsamt Hinweisen zur Suche nach GitHub-Erweiterungen mitsamt den zugehörigen Webadressen und Suchanfragen zusammen. Dabei werden die Browser ­Chrome, Firefox, Edge, Safari und Opera berücksichtigt. Bild 17 zeigt exemplarisch die Suche nach GitHub-Erweiterungen im Chrome Web Store.

Tabelle 4: Online-Stores mit GitHub-Browser-Erweiterungen

Web Store Programmtyp Beschreibung Webadresse
Chrome Web Store Freeware Chrome Web Store – Marktplatz für Chrome- Erweiterungen https://chrome.google.com/webstore/category/extensions?hl=de
Firefox Add-ons Freeware Online-Marktplatz für Firefox-Add-ons https://addons.mozilla.org/en-US/firefox/search/?q=GitHub&page=2
Microsoft Edge Extensions Freeware Online-Marktplatz für Microsoft-Edge-Extensions im Microsoft Store www.microsoft.com/de-de/store/collections/edgeextensions/pc
Safari Extensions Freeware Online-Marktplatz für Apple-Safari-Browser- Extensions https://safari-extensions.apple.com
Opera Extensions Freeware Add-ons für den Webbrowser Opera https://addons.opera.com/de/extensions

Codeanalyse und Testing

Wie bereits eingangs erläutert, nutzen Sie wahlweise Git- oder GitHub-Tools für die Quelltextanalyse und das Testing. Je nach dem verwendeten Tool ist dabei mit lokal geklonten, gegebenenfalls auch entfernten Repositories zu arbeiten. Diese enthalten ihrerseits die zu einem Projekt gehörigen Quelltexte, die zu analysieren sind. Eine kleine Auswahl an entsprechenden Tools stellt Tabelle 5 zusammen. Cloc ist ein Beispiel für ein Analyse-Tool, das die Zahl der leeren, der Kommentar- und der Quelltextzeilen zählt und dabei eine Vielzahl an Programmiersprachen unterstützt.

Tabelle 5: GitHub-Tools für die Analyse von Quelltext und das Testen von Software

Anbieter Programmtyp Beschreibung Webadresse
AlDanial cloc Freeware Hilfewerkzeug zur Quelltextanalyse ohne direkten GitHub-Bezug https://github.com/AlDanial
Arzzen Git quick-stats Open Source Analysefunktionen für Git-Repositories https://arzzen.github.io/git-quick-stats
Codacy Freeware, kommerziell Tool für die automatisierte Quelltextanalyse und Softwarequalität mit GitHub-Anbindung und Repository- Unterstützung https://github.com/marketplace/codacy
Code Climate Kommerziell Quelltextanalyse mit GitHub- und Repository-Anbindungsfunktionen https://github.com/marketplace/code-climate
CodeFactor Freeware, kommerziell Quelltextanalysewerkzeug mit direkter Anbindung an GitHub (Probleme, Lösungen, Kommentare, Pull Requests) https://www.codefactor.io
Lgtm Open Source Open-Source-Tool zur Quelltextanalyse und Optimierung mit direkter Anbindung von GitHub und Bitbucket https://lgtm.com
Scrutinizer Kommerziell Plattform für das Softwarequalitätsmanagement mit Veröffentlichungsfunktionen auf GitHub und Bitbucket https://scrutinizer-ci.com
TestQuality Freeware, kommerziell Tool zur Verwaltung von Testplänen im GitHub-Verbund https://github.com/marketplace/testquality
Git quick-stats ist ein Tool, das auf Git-Repositories zurückgreift und zugehörige Informationen ausliest und zurückgibt (zum Beispiel Commits, Contributors oder Dateien). Das Tool wird über die Kommandozeile bedient. Es ist in Versionen für Windows, macOS und Unix verfügbar (Bild 18).
Codacy ist ein kommerzielles Analyse-Tool für Quelltexte, das sich an GitHub binden lässt und Repositories direkt verarbeiten kann. In Open-Source-Projekten setzen Sie Codacy kostenlos ein. Für kommerzielle Projekte ist die Pro-Edition erforderlich, die je Monat und Benutzer 18 US-Dollar kostet. Die Online-Dokumentation enthält Anleitungen zur Nutzung, Informationen zu Account-Einstellungen, zur Arbeit mit den Repositories, zu unterstützten Sprachen (zum Beispiel C#, JavaScript, Python, Ruby, PHP, XML und JSON), zur Konfiguration, zu den integrierten Dashboards oder auch zu den Integrationsfunktionen (zum Beispiel GitHub, Bitbucket, YouTrack und HipChat).Code Climate widmet sich der Qualität von Quelltexten, die in Sprachen wie PHP, Python, Ruby oder TypeScript geschrieben sind. Es greift ebenfalls auf GitHub zu, liegt allerdings nur in kommerziellen Varianten für kleine (12 US-Dollar pro Benutzer und Monat) und große Teams (20 US-Dollar pro Benutzer und Monat) vor. Das Tool ist um eine Vielzahl erhältlicher Open-Source-Tools zur Analyse erweiterbar.CodeFactor ist ein kommerzielles Tool, das für ein einzelnes Repository und eine unbegrenzte Anzahl an Nutzern kostenfrei nutzbar ist. Die kommerziellen Varianten kosten in Abhängigkeit von der Anzahl der zu verwaltenden Repositories zwischen 19 und 79 US-Dollar je Monat bei einer unbegrenzten Anzahl an Benutzern. Mit dem Tool führen Sie Softwaretests (Reviews) durch mit dem Ziel, Software und Anwendungen zu verbessern und in der Qualität zu steigern. CodeFactor setzt an Git-Repositories an und kann im Verbund mit GitHub oder Bitbucket eingesetzt werden. Es unterstützt eine Vielzahl an Programmiersprachen (zum Beispiel C#, C/C++, Java, JavaScript, TypeScript, Pytrhon, Ruby und PHP) (Bild 19).
Lgtm dient der Quelltextanalyse und -optimierung und ist frei für Open-Source-Projekte einsetzbar. Es unterstützt die Programmiersprachen Java, Python, JavaScript, TypeScript, COBOL (Betaphase) und C/C++. Es sorgt für automatisierte Code Reviews über die gesamte Projektlaufzeit hinweg. Gefundene Probleme werden per Alarm gemeldet. Hinweise zur internen Arbeitsweise können Sie anhand der Quellen nachvollziehen. Lgtm verarbeitet Softwareprojekte, die über GitHub, Bitbucket oder GitLab verwaltet werden. Über die Projektseite im Internet erhalten Sie Informationen zum Einstieg, zum Auffinden und Offenlegen von Projekten, zum Einloggen in die Lgtm-Weboberfläche, zur Anbindung an Projekte sowie zu den Code-Review- und Analysefunktionen.Scrutinizer widmet sich den Bereichen Continous Integration und Continuous Analysis sowie den Code Reviews. Es ­integriert sich in die herkömmlichen Entwicklungsabläufe und sorgt für die Erstellung von Builds und Deployment. Es ist ebenfalls an GitHub und Bitbucket anbindbar und bietet fortlaufende Analysen. Es weist auf die genutzten unsicheren Sprachmerkmale, Ergebnisse von Stilanalysen sowie erkannte Fehler hin und hilft bei der Quelltextoptimierung.Damit Sie das rein kommerzielle Produkt testen können, bietet der Hersteller eine kostenfreie 14-Tage-Testphase an. Die Preise richten sich nach den Anforderungen und der Anzahl der benötigten Container, in deren Umgebungen Testläufe durchgeführt werden. Sie liegen zwischen 49 und 199 Euro je Monat. In der Basic- und Professional-Edition wird jeweils ein Container bereitgestellt, während in der Unlimited-Edition zwei Container verfügbar sind. Weitere Container sind für jeweils 50 Euro je Monat zu erwerben.Für die Code-Intelligence-Funktionalität (kontinuierliche Überprüfung von Software auf Sicherheitslücken) werden für jeden Arbeitsplatz weitere 14,90 Euro fällig. Open-Source-Repositories sind hingegen kostenfrei und in beliebiger Anzahl nutzbar.TestQuality ist ein Tool, das GitHub um Testverwaltungsfunktionen mit manuellen und automatisierten Tests erweitert und auf beliebige Teamgrößen skalierbar ist. Die Anbindung an GitHub erlaubt die Anlage, das Aktualisieren, das Löschen, das Hinzufügen von Fehlern und Anforderungen an die GitHub-Repositories, ohne die herkömmlichen Arbeitsabläufe beim Testen oder Entwickeln der Softwareprojekte zu stören. TestQuality ist kostenfrei für Open-Source-Repositories einsetzbar. Private Repositories für bis zu fünf Benutzer schlagen mit 50 US-Dollar je Monat zu Buche. Mit TestQuality definieren Sie Tests, führen diese durch und koordinieren sowie überwachen die Testaufgaben.

Tools und Hilfsprogramme

Tools und Hilfsprogramme für GitHub widmen sich ganz bestimmten Aufgaben, die von den Weboberflächen der Zusatzprogramme (siehe Tabelle 5) und auch von GitHub nicht abgedeckt werden. Je nach Umfang und Art der Lösungen werden diese kommerziell, als Open Source oder als Freeware bereitgestellt. Atom ist beispielsweise ein frei konfigurierbarer Open-
Source-Texteditor mit GitHub-Anbindung. BackHub unterstützt Sie bei der Anlage von Datensicherungen von GitHub-Repositories, und der kostenfrei nutzbare Blazemetrics Project Tracker erlaubt die Analyse und grafische Auswertung von Projektdaten(Bild 20).Wenn Sie GitHub kommandozeilenorientiert mit kompakten Befehlen steuern wollen, dann sollten Sie sich das Tool CLI GitHub anschauen (Bild 21). Das Programm kommt ohne grafische Benutzeroberfläche aus und wird durch kurze Kommandos gesteuert. Installationshinweise und Hinweise zur Bedienung finden Sie auf der Produktseite.
Mit dem Freeware-Programm Flock überwachen Sie GitHub-Repositories und erhalten darüber integrierte Benachrichtigungs- und Bearbeitungsfunktionen (Bild 22).
Ebenso wie bei den Browser-Extensions gibt es auch bei den Tools und Hilfsprogrammen für GitHub eine Vielzahl an Spezialanwendungen. Eine Auswahl der interessantesten Tools stellt Tabelle 6 zusammen. Weiterführende Informationen zu den einzelnen Programmen erhalten Sie über die darin angegebenen Webadressen.

Tabelle 6: Tools und Hilfsprogramme für GitHub

Anbieter Programmtyp Beschreibung Webadresse
Atom Open Source Konfigurierbarer Texteditor für Windows, macOS und Linux mit direkter Anbindungsfunktion an Git und GitHub https://atom.io
BackHub Kommerziell Datensicherungsprogramm für Repositories und Metadaten mit täglichen Datenabbildern https://github.com/marketplace/backhub
Blazemetrics Github Project Tracker Freeware Grafische Analyse und Auswertung von GitHub- Projektdaten https://blazemetrics.io
CLI GitHub Open Source GitHub-Client für die Eingabeaufforderung mit integrierter GitHub-Anbindungsfunktion https://ionicabizau.net/blog/15-cli-github-a-fancy-github-client-for-the-command-line
Fire bot Freeware Tool zum Versenden von GitHub-Problemen direkt per E-Mail https://fire.fundersclub.com
Flock Freeware Tool zum Zugriff und zur Überwachung von GitHub-Repositories mit Benachrichtigungsfunktionen https://support.flock.com/hc/en-us/articles/115004376134-GitHub-app
Freshworks The GitHub App Freeware, kommerziell Die The GitHub App verbindet Freshworks mit GitHub. Freshworks ist eine Verkaufsunterstützungssoftware https://support.freshdesk.com/support/solutions/articles/214680-the-github-app
GitMiner Open Source Data Mining für Projektinhalte auf GitHub https://github.com/UnkL4b/GitMiner
Gitsense Server Free Edition Freeware Power Tools für GitHub, GitLab und Visual Studio Team Services mit erweiterten Such- und Anzeigefunktionen https://gitsense.com
Issue Mover for GitHub Open Source Browserbasiertes Tool zum Migrieren von Problemen (Issues) zwischen GitHub-Repositories https://github-issue-mover.appspot.com
Marker.io Kommerziell Integriert Fehlermeldungen, Aufgaben und Erfahrungen https://marker.io/github
Michenricksen gitrob Open Source Tool zur Sicherheitsanalyse von Dateien in öffentlichen GitHub-Repositories https://github.com/michenriksen/gitrob
Octobox Freeware, kommerziell Verwaltungs-Tool für GitHub-Benachrichtigungen (Probleme, Pull Requests, Kommentare, Anmerkungen) https://github.com/marketplace/octobox
PhraseApp Kommerziell Tool zum Übersetzen für Softwareentwickler https://phraseapp.com
Probot Open Source JavaScript-basierte GitHub-Anwendungen, mit denen Sie Arbeitsabläufe automatisieren und verbessern https://probot.github.io
Pulumi GitHub App Open Source Native Cloud-Infrastuktur im Quelltextformat, die mit unterschiedlichen Cloud-Diensten zusammenarbeiten kann https://pulumi.io/reference/cd-github.html
Renovate Freeware, kommerziell Tool für das automatisierte Verwalten von Abhängigkeiten https://renovatebot.com
Rollbar Freeware, kommerziell Echtzeit-Tool zur Behandlung von Ausnahmen und Debugging-Tools für Anwendungen, die mit JavaScript, Python, PHP, Java oder C# erstellt wurden https://rollbar.com
Sentry Freeware, kommerziell Plattformübergreifende Überwachungssoftware, die den Schwerpunkt auf die Anlage von Fehlerberichten legt https://sentry.io/welcome
SonaType DepShield Freeware Überwachungs-Tool zum Identifizieren und Sanieren von Schwachstellen in GitHub-Repositories https://github.com/marketplace/sonatype-depshield
WIP Freeware, kommerziell Tool, über das Sie aktiv in Arbeit befindliche Pull Requests auf den Status Pending (ausstehend) setzen können https://github.com/marketplace/wip

APIs und API-Tools

Über die über GitHub bereitgestellten Programmierschnittstellen binden Sie die Plattform an eigene Desktop-, mobile oder auch Webanwendungen an. Oder Sie implementieren neue GitHub-Funktionen speziell für ausgewählte Webbrowser. Alle benötigten Informationen zu den APIs und zu den erhältlichen API-Wrappern, die einen alternativen und vereinfachten GitHub-Zugang erlauben oder plattformspezifisch sind, finden Sie in Tabelle 7.

Tabelle 7: Programmierschnittstellen und API-Tools für GitHub

Anbieter Programmtyp Beschreibung Webadresse
Auth0 Informationen Informationen zur OAuth-Authentifizierungs- und Autorisationsplattform, die in mobilen oder auch Webanwendungen und auch vielen GitHub-Anwendungen zum Einsatz kommt https://auth0.com
GitHub API v3 Informationen Dokumentation zur REST-API-v3-Programmierschnittstelle von GitHub https://developer.github.com/v3
GitHub GraphQL API v4 Informationen Dokumentation zum GraphQL API v3 (Query Language - Abfragesprache) von GitHub https://developer.github.com/v4
GitHub-tools Open Source High-Level-Wrapper für das GitHub-API (JavaScript) https://github.com/github-tools/github
GoDoc directories Open Source Diverse Beispielanwendungen, die den Zugriff auf das GitHub API zeigen, einschließlich der Nutzung des GoDoc github package https://godoc.org/github.com/google/go-github
GoDoc github package Open Source Client für den vereinfachten Zugriff auf das GitHub-API https://godoc.org/github.com/google/go-github/github
Octokit - GitHub API Client Library for .NET / Ruby / JavaScript Open Source Client-Bibliothek für den Zugriff auf das GitHub-API für .NET 4.5 und höher https://github.com/octokit/octokit.net
Mit dem frei nutzbaren und von GitHub unabhängigen OAuth-API, das auch in GitHub selbst Anwendung findet, nehmen Sie Authentifizierungen und Genehmigungen für Anwendungen im Web vor. Die eigentliche Online-Referenz zum GitHub-API finden Sie im Entwicklerbereich GitHub Developer von GitHub [3]. Zusätzlich zur Referenz wird ein Blog angeboten, über das Sie Informationen zu geplanten Erweiterungen erhalten. Ferner ist hier der Zugang zum Entwicklerforum untergebracht, über das Sie sich mit anderen GitHub-Entwicklern austauschen. Für die Abfrage bestimmter Inhalte wird eine integrierte Suchfunktion bereitgestellt.Neben einer Plattformübersicht erhalten Sie wichtige Informationen zu allen API-Funktionsbereichen (Bild 23). Die Referenz widmet sich detailliert den sozialen Medienfunktionen (Activity API), den Prüffunktionen (Checks API), den Diensten zum Verwalten und Teilen von Codeschnipseln (Gists API), den Funk­tionen zum Verwalten der Git-Daten (Git Database API), den Funktionen zum Abrufen von Informationen zu GitHub-Anwendungen (GitHub Apps API) und der Problembehandlung (Issues API).
Außerdem finden Sie hier APIs zum Übernehmen von Projekten von und zu GitHub (Migration API, Source Import APIs und User Migrations API) und zur Abfrage von benutzerbezogenen Unternehmensinformationen (Organisations API).Auch Schnittstellen zur Projektverwaltung (Projects API), zur Verarbeitung von Pull Requests (Pull Request API), zum Verarbeiten von Reaktionen (Reactions API, Preview) sowie zum Abrufen von Repository-Informationen (Repositories API) werden angeboten.Eine Schnittstelle zur Inhaltssuche (Search API), zur Team- und Benutzerverwaltung (Team API und Users API) sowie zum Identitätsmanagement über Domänen hinweg (SCIM API, System for Cross-domain Identity Management) gehören ebenfalls zu den angebotenen APIs.Alle abgefragten Informationen werden im JSON-Format zurückgeliefert. Für die Datenabfrage selbst steht mit GraphQL eine Abfragesprache bereit. Auch dieses API ist dokumentiert. Dabei werden die Authentifizierung, die Datenabfrage, Änderungen (Mutations), (Eingabe-)Objekte, Schnittstellen, Enumerationsdatentypen, Unions und skalare Datentypen behandelt.Die Komplexität der APIs hat Entwickler dazu herausgefordert, den allgemeinen Zugang zu GitHub zu vereinfachen. Die bekanntesten Wrapper und erweiterten Bibliotheken sind mit dem Octokit (.NET, Ruby und JavaScript), den GitHub-tools (JavaScript) sowie dem GoDoc github package verfügbar.

Continuous Integration

Tools und Online-Plattformen zur Continuous Integration werden üblicherweise kommerziell angeboten, da sie in der Regel Online-Plattformen sind, die für das Daten-Management auch Internetserver vorhalten müssen. Open-Source-Tools aus diesem Bereich werden hingegen lokal installiert, haben einen erhöhten Verwaltungsaufwand, erlauben allerdings anhand der vorliegenden Quelltexte tiefe Einblicke in das System. Außerdem ergänzen Sie hier Funktionen nach eigenem Bedarf oder nehmen erforderliche Anpassungen vor.Kommerzielle Anbieter, wie etwa CircleCI, Codenvy und Drone.io, bieten eingeschränkte kostenfreie Zugänge. In Tabelle 8 sind ausgewählte Tools für die Continuous Integration zusammengestellt, die ihrerseits GitHub-Anbindungsfunk­tionen bieten. Je nach Anbieter und Plattform werden unterschiedliche Funktionen implementiert. Standardmäßig sollten eine Test- sowie Continuous-Integration-Umgebung, ein Build-System sowie ein Versionskontrollsystem vorhanden und miteinander verknüpft sein.

Tabelle 8: Tools mit GitHub-Unterstützung für die kontinuierliche Integration bei Softwareprojekten

Anbieter Programmtyp Beschreibung Webadresse
Ansible Open Source Automatisierungswerkzeug zur Orchestrierung, Konfiguration und Administration mit GitHub-Anbindung www.ansible.com
AWS Codedeploy Kommerziell Bereitstellungsservice für Software mit Automatisierungsfunktionen für die Bereitstellungen und zur Sicherstellung der Softwareverfügbarkeit. Der Dienst bietet eine direkte Unterstützung für GitHub https://aws.amazon.com/de/codedeploy
Altassian Bamboo Kommerziell Continuous-Integration- und Build-Server zum Erstellen, Testen und Verteilen von Software. Bamboo ist im Verbund mit GitHub-Repositories nutzbar und anbindbar https://de.atlassian.com/software/bamboo
Chef Open Source Automatisierungs-Tool für das Konfigurationsmanagement. Die GitHub-Integrationsfunktion erlaubt es, GitHub als Git-Repository festzulegen. Im Anschluss daran erhalten Sie in Chef diverse GitHub-Informationen oder greifen direkt auf den in den GitHub-Repositories enthaltenen Quelltext zu www.chef.io/chef
CircleCI Freeware, kommerziell Plattform für die fortlaufende und permanente Integration im Rahmen der Softwareentwicklung (zum Beispiel Auto- matisierungsfunktionen, kontinuierliche Testentwicklung, Verteilung und Reporting). CircleCI bietet Funktionen für die GitHub-Integration https://circleci.com
Codenvy Freeware, kommerziell Codenvy bietet Cloud-Arbeitsspeicher für die Softwareentwicklung mit Entwicklungsteams und enthält Anbindungsfunktionen an GitHub https://codenvy.com
Codeship Kommerziell Continuous-Integration-Plattform mit Repository- Anbindungsfunktionen für GitHub, Bitbucket und GitLab https://codeship.com
Drone.io Freeware, kommerziell Continuous-Integration-Plattform mit Repository-Anbindungsfunktionen für GitHub, Bitbucket, Gitea, Gogs und GitLab https://drone.io
Jenkins Open Source Open-Source-Automatisierungsserver zur automatisierten Projektanlage, Testausführung, statischen Quelltextanalyse sowie zur Verteilung mit GitHub-Unterstützung https://jenkins.io
Travis CI Open Source Continuous-Integration- und Verteilungsplattform mit Synchronisationsfunktionen für GitHub https://travis-ci.org
Wichtig ist, dass die Entwickler- und Teamfunktionen für eine effektive Handhabung leicht und verständlich implementiert sind und eine komfortable Web- beziehungsweise Programmoberfläche bereitstellen (Bild 24).
An dieser Stelle soll das Thema nicht weiter vertieft werden. Eine erweiterte Auswahl an Online-Tools sowie weiterführende Informationen zum Thema Continuous Integration werden in einem Artikel in einer späteren Ausgabe der dotnetpro behandelt.

Fazit

Damit haben Sie nicht nur die wichtigsten Typen, sondern auch die besten GitHub-Tools, -Erweiterungen und -Informationen kennengelernt. Wenn Sie sich selbst auf eine weitere Suche begeben wollen, sei Ihnen die Webadresse [4] ans Herz gelegt. Hier finden Sie alleine auf GitHub noch einmal annähernd zweieinhalbtausend weitere GitHub-Tools im Quelltextformat.Und werden Sie trotz intensiver Suche nach einer bestimmten Funktion nicht fündig, dann sollten Sie sich selbst ans Werk machen und die GitHub-APIs zurate ziehen.Für .NET-, JavaScript- und Ruby-Entwickler steht für die vereinfachte GitHub-Nutzung mit dem Octokit [5] ein einfach zu nutzender API-Wrapper zur Verfügung.
Projektdateien herunterladen

Fussnoten

  1. GitHub, https://github.com
  2. Klonen, http://www.dotnetpro.de/SL1902GitHubTools1
  3. GitHub Developer, https://developer.github.com
  4. Git-Hub-Tools, http://www.dotnetpro.de/SL1902GitHubTools2
  5. Fabian Deitelhoff, Zugriff auf GitHub, dotnetpro 9/2015, Seite 94 ff, http://www.dotnetpro.de/A1509Frameworks

Neueste Beiträge

DWX hakt nach: Wie stellt man Daten besonders lesbar dar?
Dass das Design von Websites maßgeblich für die Lesbarkeit der Inhalte verantwortlich ist, ist klar. Das gleiche gilt aber auch für die Aufbereitung von Daten für Berichte. Worauf besonders zu achten ist, erklären Dr. Ina Humpert und Dr. Julia Norget.
3 Minuten
27. Jun 2025
DWX hakt nach: Wie gestaltet man intuitive User Experiences?
DWX hakt nach: Wie gestaltet man intuitive User Experiences? Intuitive Bedienbarkeit klingt gut – doch wie gelingt sie in der Praxis? UX-Expertin Vicky Pirker verrät auf der Developer Week, worauf es wirklich ankommt. Hier gibt sie vorab einen Einblick in ihre Session.
4 Minuten
27. Jun 2025
„Sieh die KI als Juniorentwickler“
CTO Christian Weyer fühlt sich jung wie schon lange nicht mehr. Woran das liegt und warum er keine Angst um seinen Job hat, erzählt er im dotnetpro-Interview.
15 Minuten
27. Jun 2025
Miscellaneous

Das könnte Dich auch interessieren

UIs für Linux - Bedienoberflächen entwickeln mithilfe von C#, .NET und Avalonia
Es gibt viele UI-Frameworks für .NET, doch nur sehr wenige davon unterstützen Linux. Avalonia schafft als etabliertes Open-Source-Projekt Abhilfe.
16 Minuten
16. Jun 2025
Mythos Motivation - Teamentwicklung
Entwickler bringen Arbeitsfreude und Engagement meist schon von Haus aus mit. Diesen inneren Antrieb zu erhalten sollte für Führungskräfte im Fokus stehen.
13 Minuten
19. Jan 2017
Evolutionäres Prototyping von Business-Apps - Low Code/No Code und KI mit Power Apps
Microsoft baut Power Apps zunehmend mit Features aus, um die Low-Code-/No-Code-Welt mit der KI und der professionellen Programmierung zu verbinden.
19 Minuten
Anzeige
Anzeige
Anzeige
Anzeige
Anzeige