Pre-Commit: Ein unverzichtbares Tool zur Code-Qualitätssicherung

  • 1. Januar 1

Was ist Pre-Commit?

pre-commit ist ein Open-Source-Tool, das Git-Hooks nutzt, um vor dem Festschreiben von Änderungen bestimmte Prüfungen und Formatierungen durchzuführen. Entwickler können damit sicherstellen, dass ihr Code bestimmten Standards entspricht, bevor er in das Repository gelangt. Beispiele für solche Checks sind Code-Linting, Formatierung oder Sicherheitschecks.

Vorteile von Pre-Commit

Die Nutzung von pre-commit bietet eine Reihe von Vorteilen:

  • Früherkennung von Problemen: Probleme werden bereits lokal erkannt, bevor der Code ins Repository übertragen wird.
  • Konsistenter Code-Stil: Durch automatische Formatierungen bleibt der Code-Stil einheitlich.
  • Zeiteinsparung: Fehlerhafte Commits werden vermieden, was die Notwendigkeit für spätere Code-Reviews und Korrekturen reduziert.

Einrichtung von Pre-Commit

Die Einrichtung von pre-commit ist einfach und erfordert nur wenige Schritte. Zuerst muss pre-commit installiert werden:

pip install pre-commit

Danach wird die Konfigurationsdatei .pre-commit-config.yaml im Wurzelverzeichnis des Projekts angelegt. Die folgende Beispielkonfiguration zeigt gängige Checks:

---
repos:
- repo: https://github.com/pre-commit/pre-commit-hooks
    rev: v4.3.0
    hooks:
    - id: trailing-whitespace
    - id: end-of-file-fixer
    - id: check-yaml
    - id: check-added-large-files
    - id: check-xml  # Überprüft XML-Dateien auf korrekte Syntax
    

Diese Konfiguration führt verschiedene Checks aus, wie das Entfernen überflüssiger Leerzeichen, die Sicherstellung einer korrekten Dateiende und Validierung von XML-Dateien.

Nachdem die Konfiguration erstellt wurde, kann sie mit dem Befehl pre-commit install aktiviert werden. Pre-commit wird dann automatisch bei jedem Commit ausgeführt.

Unterschied zwischen Pre-Commit und CI/CD

Pre-commit und CI/CD-Tools wie GitHub Actions oder Jenkins verfolgen das gleiche Ziel: die Code-Qualität sicherzustellen. Der Unterschied liegt in der Art und Weise und im Zeitpunkt ihrer Ausführung:

  • Pre-Commit: Läuft lokal und stoppt fehlerhafte Commits bevor sie ins Repository gelangen.
  • CI/CD: Läuft nach dem Push im Repository und überprüft den Code zentral für das gesamte Team.

Die Kombination aus pre-commit und CI/CD bietet maximale Codequalität, indem sie Fehler frühzeitig lokal und später auch zentral abfängt.

Fazit

Pre-commit ist ein leistungsstarkes Tool, das durch frühzeitige Prüfung und Formatierung die Codequalität erheblich verbessert. Es reduziert Fehler und spart Zeit, indem es Konsistenz sicherstellt und Fehler frühzeitig erkennt. Eine gute Ergänzung zu zentralen CI/CD-Systemen, um qualitativ hochwertigen Code in Teams zu gewährleisten.

comments powered by Disqus

Ähnliche Artikel

Wie gehe ich mit unzufriedenen Kunden um? – Ein Leitfaden für Shopbetreiber

Wie gehe ich mit unzufriedenen Kunden um? – Ein Leitfaden für Shopbetreiber

Jeder Shopbetreiber, ob Online oder stationär, wird früher oder später mit unzufriedenen Kunden konfrontiert. Wie Sie in solchen Situationen reagieren, hat einen enormen Einfluss auf den Ruf Ihres Unternehmens und die Kundentreue. Studien zeigen, dass Kunden eher…

Weiterlesen
Cypress: Eine Einführung in das End-to-End-Test-Framework für Webanwendungen

Cypress: Eine Einführung in das End-to-End-Test-Framework für Webanwendungen

Cypress ist ein modernes, JavaScript-basiertes End-to-End-Test-Framework, das speziell für Webanwendungen entwickelt wurde. Erfahre, wie Cypress funktioniert, welche Vorteile es bietet und wie es in der Praxis eingesetzt werden kann…

Weiterlesen
GitHub Self-Hosted Runner: Was ist das und warum sollte man es nutzen?

GitHub Self-Hosted Runner: Was ist das und warum sollte man es nutzen?

GitHub Actions ist ein leistungsstarkes Tool für automatisierte Workflows direkt in GitHub. Die sogenannten Runner sind die Maschinen, auf denen die Workflows laufen. GitHub bietet zwei Typen an: gehostete Runner und self-hosted Runner. In diesem Artikel erfährst du, was Self-Hosted Runner…

Weiterlesen