© dawool/Shutterstock.com
Add-ons für GitHub Repositories im Überblick

Eine Schippe drauflegen


Der webbasierte Codehoster GitHub setzt auf der Versionsverwaltung Git auf und verwaltet kostenlos öffentlich einsehbare Softwareprojekte. Mittlerweile gibt es viele Onlinedienste, die mit dortigen Repositories verknüpft werden können. Dieser Artikel stellt einige wichtige Vertreter aus den Bereichen Continuous Integration, statische Codeüberprüfung und Securityscanning vor.

GitHub ist eine Erfolgsgeschichte, und der maßgeblich auf dem Versionskontrollsystem Git basierende Codehoster braucht bei Entwicklern mittlerweile keine große Vorstellung mehr. Die Onlineplattform ist äußerst beliebt und hat die anderen größeren Mitbewerber wie Bitbucket oder GitLab in der Anzahl der gehosteten Softwareprojekte hinter sich gelassen. Die meisten Repositories gehören einzelnen Entwicklern, aber gerade prominente große Projekte wie der Linux-Kernel, der offizielle Python-Interpreter, Puppet, Docker, Bitcoin, jQuery und PHP haben hier in einer Überzahl ihre Heimstätte gefunden. GitHub ist für quelloffene und frei lizensierte Software kostenlos und fungiert mit vielfältigen und nützlichen Funktionen für die kollaborative Softwareentwicklung praktisch auch als soziales Netzwerk. Außerdem sucht mancher Headhunter gerade auf den Profilseiten dieses „Facebooks für Programmierer“ nach geeignetem Personal.

Parallel dazu hat sich geradezu ein ganzes Biotop von Onlinediensten entwickelt, die mit GitHub Repositories verknüpfbar sind und mit denen sich die Entwicklung von dort aufbewahrtem Code unterstützen lässt. Mittlerweile ist darum ein vielfältiges Angebot von Hilfsmitteln verfügbar. Dieser Artikel stellt einige wichtige GitHub-Add-ons aus den Bereichen Continuous Integration und Codeüberprüfung allgemein und mit einem Fokus auf Programmsicherheit vor. Als Einführung in das Thema stehen in diesem Artikel Services im Vordergrund, die – wie GitHub auch – ein kostenloses Angebot für öffentlich zugänglichen Code in dortigen Repositories haben. Die Beispiele beziehen sich zwar auf Python-Code, aber auch die Entwickler anderer Programmiersprachen werden die Eckpunkte auf ihr eigenes Projekt übertragen können.

Travis CI

Travis CI ist eine webbasierte Plattform für Continuous Integration. Der Anbieter unterstützt die Open-Source-Gemeinschaft mit einem kostenlosen Service; für kommerzielle bzw. proprietäre Projekte gibt es ein erweitertes Angebot unter [1]. Mit Travis können Softwareprojekte probeweise gebaut und getestet werden, wenn neuer Code bzw. Änderungen im GitHub Repository eingespielt werden. Die Projektentwickler selbst, Downstream-Developer, aber auch Endbenutzer, die sich die aktuellsten Fassungen herunterladen anstatt auf neue Veröffentlichungen warten zu wollen, können dann sofort sehen, ob der aktuelle Commit sich überhaupt bauen bzw. kompilieren lässt, oder ob sich Fehler in die Codebasis eingeschlichen haben, die Probleme bereiten.

Travis fügt sich dabei harmonisch in GitHub ein. So werden zum Beispiel auch automatisch alle wartenden Pull Requests, also Codevorschläge von assoziierten Entwicklern, erst einmal zur Probe gebaut (Abb. 1). Funktionen wie diese unterstützen die kollaborative Softwareentwicklung auf GitHub, denn das erspart den Projektbesitzern die Mühe, jeden kleinen Patch vor der Annahme zunächst einmal herunterzuladen und lokal auszuprobieren, ob er überhaupt integrierbar ist. Ein Bauergebnis kann per E-Mail versendet oder auch als JSON-Report an beliebige URLs geschickt werden, etwa um weitere Prozesse anzustoßen. Auf der umfangreichen Liste der von Travis CI unterstützten Programmiersprachen finden sich unter anderem C/C++, Golang, Java, JavaScript, PHP und Python. Travis berücksichtigt aber auch die statistischen und wissenschaftlichen Sprachen R und Julia und kann mit vielen relativ neuen Programmiersprachen wie zum Beispiel Rust umgehen. Android ist als eigene Bauumgebung verfügbar, Windows hingegen nicht.

stender_github-addons_1.tif_fmt1.jpgAbb. 1: Ein Pull Request wird mit Travis und Appveyor getestet

Travis kann unkompliziert an bestehende GitHub Repositories angedockt werden. Dafür ist noch nicht einmal ein eigener Travis-Benutzeraccount notwendig. Von der Hauptseite des CI-Diensts landet man per „Sign in with GitHub“ direkt auf einer GitHub-Seite für die Freischaltung von Travis CI als externe Applikationen, wenn man in einem anderen Fenster bereits dort eingeloggt ist. Danach können auf der Benutzerseite https://travis-ci.org/profile die gewünschten Repositories vom Anwender für die Continuous Integration freigeschaltet werden. Das dauert nicht einmal eine Minute und ist online erst einmal alles, was man zum Einstieg durchführen muss.

Damit Travis weiß, wie es mit einem Softwareprojekt konkret verfahren soll, benötigt der Service darüber hinaus auch noch eine versteckte Konfigurationsdatei .travis.yml im Wurzelverzeichnis des Repositories, die dem eigenen Projekt einfach hinzugefügt wird. In dieser im YAML-Markup geschrieben Steuerdatei gibt der Anwender zunächst die verwendete Sprache an. Bei einem Python-Projekt steht hier zum Beispiel language: python. Dann können verschiedene Python-Laufzeitumgebungen festgelegt werden, in denen das Projekt nach einem Commit getestet werden soll ...

Neugierig geworden? Wir haben diese Angebote für dich:

Angebote für Teams

Für Firmen haben wir individuelle Teamlizenzen. Wir erstellen Ihnen gerne ein passendes Angebot.

Das Library-Modell:
IP-Zugang

Das Company-Modell:
Domain-Zugang