Today modern software development is not possible without the aid of tools like version control systems, bug tracking systems or instruments that ensure the compliance with code conventions. Unfortunately, all of these tools "live in their own world", are only loosely coupled and do not interact with each other. RepoGuard addresses this problem by linking version control systems to other software development tools. It is implemented as an extension to several version control systems and provides interfaces to integrate other tools. The use of RepoGuard allows maximum control and validation of all committed resources before they are permanently stored. Additionally, RepoGuard provides communication channels in order to inform all relevant stakeholders about the failure or success of the process. Overall, RepoGuard provides simple but effective means to guarantee software quality standards in distributed development processes.
RepoGuard is an advanced validation framework with built-in integrations for several common version control systems. The integration is carried out by utilizing the hook mechanisms each version control system provides. The user may provide configurations which are processed through inversion of control mechanisms. RepoGuard is completely written in the Python programming language which allows for easy integration of other tools. An extensible command line tool for advanced usage is provided which allows for comfortable administration.
RepoGuard is based on two types of constituent parts: Checks and Handlers. These parts are configured by the user to specify what to do when processing a transaction of changes to the version control system. Checks are responsible for validating the content of a transaction. Handlers are responsible for handling the results and/or the output of Checks. The complete architecture of RepoGuard is shown in the figure.
Extensibility is supported via an easy to use plug-in engine and a flexible configuration mechanism for Check and Handler execution. The plug-in engine offers the possibility to integrate self written Checks and Handlers, to integrate modules that provide the access to other version control systems or bug tracker, and to extend the administration command line tool. The following version control systems are currently supported: Subversion, git, and Perforce.
RepoGuard is developed at the German Aersopace Center and freely available as Open-Source-Software (Apache License V2.0). Information regarding the latest version can be found at the project’s homepage.
Examples for Examinations:
Examples for Actions: