RepoGuard



 RepoGuard
zum Bild RepoGuard

Bei der Entwicklung von Software ist eine gute Prozessunterstützung durch geeignete Software-Engineering-Werkzeuge sinnvoll, um effizient arbeiten zu können. Die dazu notwendige Tool-Infrastruktur kann entweder durch kommerziell verfügbare integrierte Werkzeug-Suites abgedeckt oder durch eine Integration von frei verfügbaren oder kommerziellen Tools unterschiedlicher Hersteller aufgebaut werden.

RepoGuard ist eine Software, die es erlaubt ein Versionsverwaltungssystem, wie z.B. Subversion, Perforce oder GIT, in eine existierende Arbeitsumgebung zu integrieren und umfangreiche Überprüfungen des Source-Codes beim Einchecken durchzuführen. Besonders häufig auftretende Anwendungsfälle von RepoGuard sind dabei die Anbindung von Issue- oder Bug-Tracking-Systemen an Code-Repositories und die Überprüfung von Kodierrichtlinien des eingecheckten Source-Codes. RepoGuard ist aber darüber hinaus allgemein für beliebige Aufgaben einsetzbar.

 RepoGuard Architektur
zum Bild RepoGuard Architektur

RepoGuard ist als ein erweiterbares Framework realisiert. Durch das Erweitern mit Plug-Ins für Überprüfungen ("checks") können beliebige Zustände und Eigenschaften von Source-Code oder externen Datenbanken abgefragt werden. Durch beliebig viele Ausgabe-Plug-Ins ("handler") können alle notwendigen Aktionen durchgeführt werden. In beiden Arten von Plug-Ins werden häufig externe Tools von Drittanbietern (Open-Source oder kommerziell) angebunden, um die eigentlichen Überprüfungen oder Aktionen durchzuführen. Der Aufruf von RepoGuard erfolgt als Hook-Skript durch das entsprechende VCS direkt auf dem Server des Repositories. Zur Nutzung ist kein somit zusätzlicher Server-Prozess notwendig. Die Implementierung von RepoGuard ist plattformunabhängig in Python erfolgt.

RepoGuard wird im DLR entwickelt und eingesetzt und ist als Open-Source-Software frei verfügbar (Apache License V2.0). Informationen zu aktuellen Versionen finden sich auf der RepoGuard-Projektseite.

Beispiele für Überprüfungen

Mögliche Überprüfungen von Source-Code oder sonstigen Randbedingungen:

  • Überprüfung von Kodierrichtlinien, z.B. durch Aufruf von Checkstyle für Java-Code oder Pylint für Python-Code.
  • Durchführung von Source-Code-Analysen, z.B. durch Aufruf von Findbugs für Java-Code oder QS C/C++ für C++-Code.
  • Überprüfung von Zugriffsrechten durch Prüfung der Rechte von Benutzern auf das gesamte Repository, einzelne Verzeichnisse oder einzelne Dateien.
  • Anbindung an Issue- oder Bug-Tracking-Systeme, z.B. zur Überprüfung auf Gültigkeit von Issue-IDs.

Beispiele für Aktionen

Mögliche Ausgabe-Ziele für Ergebnisse der Repository-Vorgänge und SVNChecker-Checks sind:

  • Versand einer E-Mail
  • Aktualisierung einer Log-Datei
  • Ausgabe von Informationen auf der Konsole
  • Eintrag in eine Datenbank ("Commit-Datenbank")
  • Eintrag in ein Issue- oder Bug-Tracking-System
  • Aktualisierung eines RSS-Feeds
  • Erzeugung von Weblog-Einträgen

Links


Kontakt
Tobias Schlauch
Deutsches Zentrum für Luft- und Raumfahrt (DLR)

Simulations- und Softwaretechnik
, Verteilte Systeme und Komponentensoftware
Tel: +49 531 295-2765

Fax: +49 531 295-2767

E-Mail: Tobias.Schlauch@dlr.de
URL dieses Artikels
http://www.dlr.de/sc/desktopdefault.aspx/tabid-6088/9967_read-20534/
Texte zu diesem Artikel
SVNChecker (http://www.dlr.de/sc/desktopdefault.aspx/tabid-4668/7722_read-11812/usetemplate-print/)
Open Source (http://www.dlr.de/sc/desktopdefault.aspx/tabid-5951/9688_read-19161/usetemplate-print/)