Boehrsi.de - Blog

GitHub Dependabot - Automatisierte Updateüberprüfung für Abhängigkeiten

Erstellt am event Uhr von account_circle Boehrsi in label Development
GitHub Dependabot - Automatisierte Updateüberprüfung für Abhängigkeiten Bild

Libraries machen das Leben von Entwicklern einfacher, denn man muss nicht alles selber schreiben und kann sich auf die eigentlichen Features einer Anwendung konzentrieren. Allerdings gibt man auch Kontrolle und Übersicht ab und entsprechend kann man sich Probleme einhandeln.
Um externe Abhängigkeiten automatisch auf dem neusten Stand zu halten gibt es Dependabot. Früher war Dependabot eine eigenständige Firma, mittlerweile ist man bei GitHub untergekommen, was die dortige Integration natürlich noch einfacher macht. Außerdem ist der Dienst nun komplett kostenlos.
Vor allem auf Sicherheitsupdates weißt Dependabot hin, denn häufig integriert man Abhängigkeiten, aktualisiert selbige aber nicht solange alles läuft. Dabei gehen Sicherheitsprobleme in den Abhängigkeiten natürlich unter. Im Fall eines erkannten Updates wir einfach ein Pull Request erstellt und alles folgt dem gewohnten Flow.
Unterstützt werden unter anderem Ruby, JavaScript, Python, Java (Gradle / Maven), .NET und Docker. Leider ist Dart und somit auch Flutter aktuell noch nicht mit von der Partie und soweit ich es erkennen kann ist derzeit auch nicht geplant das sich dies ändert. Das ist zwar sehr schade, aber durch die pub.dev open_in_new Plattform und das Tooling drum herum, kann man den Prozess der Überprüfung auf Updates hier zumindest teilautomatisiert umsetzen.

Zur Integration von Dependabot in euer GitHub Repository ist lediglich das Erstellen einen simplen Action nötig. Legt dafür einfach im euren Projekt eine .github/dependabot.yml Datei an und füllt sie z.B. wie folgt.

version: 2
updates:
  - package-ecosystem: "github-actions"
    directory: "/"
    schedule:
      interval: "daily"

Mit dieser Konfiguration wird täglich im Root-Verzeichnis eures Projekts nach Updates gesucht. Weitere Konfigurationsmöglichkeiten könnt ihr der offiziellen Dokumentation entnehmen.
Meiner Meinung nach ist der Ansatz von Dependabot extrem gut, denn man automatisiert Abläufe die sonst untergehen, nimmt dem Entwickler aber nicht die Kontrolle. Denn wie erwähnt werden Pull Requests erstellt, welche final vom Entwickler verwaltet werden. Sofern die jeweilige Plattform und Sprache unterstützt wird, werde ich Dependabot wohl in allen meinen kommenden GitHub Projekten nutzen. Was sagt ihr zur Idee und Umsetzung von Dependabot?

Related Links
Kommentare  
Kommentar erstellen
Mit dem Abschicken des Kommentars erklären sie sich mit der in der Datenschutzerklärung dargelegten Datenerhebung für Kommentare einverstanden. Spam, unangebrachte Werbung und andere unerwünschte Inhalte werden entfernt. Das Abonnieren via E-Mail ist nur für E-Mail Adressen erlaubt die Sie rechtmäßig administrieren. Widerrechtliche Abonnements werden entfernt.