14. Jan 2019
Lesedauer 31 Min.
GitHub im Griff
101 Tools und Erweiterungen
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 Quelltextdatenbank (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 Social-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 Weboberflä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 optionaler Ü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.
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 JavaScript-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-Integration-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.
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 macOS 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
|
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 Bitbucket 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
|
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
|
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 Navigationsaufgaben.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 JavaScript-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
|
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
|
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.
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.
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
|
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
|
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 Funktionen 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-Anbindungsfunktionen 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
|
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.Fussnoten
- GitHub, https://github.com
- Klonen, http://www.dotnetpro.de/SL1902GitHubTools1
- GitHub Developer, https://developer.github.com
- Git-Hub-Tools, http://www.dotnetpro.de/SL1902GitHubTools2
- Fabian Deitelhoff, Zugriff auf GitHub, dotnetpro 9/2015, Seite 94 ff, http://www.dotnetpro.de/A1509Frameworks