Daniel Stender Selbstständig

Sich mit freier Software lokal eine vollständig kontrollierbare Infrastruktur für die Software-Entwicklung aufzubauen, bedeutet zwar einen ungleich höheren Aufwand, hat aber auch gewichtige Vorteile.

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 auf der Travis CI Homepage. 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. 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.

Den vollständigen Artikel lesen Sie in der Ausgabe:

PHP Magazin 5.17 - "Sail away!"

Alle Infos zum Heft
579805306Add-ons für GitHub Repositories im Überblick
X
- Gib Deinen Standort ein -
- or -