- Project tools
- How do I...
|Over 500 more tools...
If you were registered and logged in, you could join this project.
Message from the owner(s)
RepoGuard is an advanced validation framework with built-in integrations for several common version control systems. It is the successor of the SVNChecker framework.
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. Currently, only the Subversion version control system is supported.
Architecture of RepoGuard
Unfortunately the documentation is not complete yet, still some parts of the old SVNChecker Documentation applies as well:
- Legenhausen, Malte and Pielicke, Stefan and Rühmkorf, Jens and Wendel, Heinrich and Schreiber, Andreas: RepoGuard: A Framework for Integration of Development Tools with SourceCode Repositories, IEEE Computer Society, 4th IEEE International Conference on Global Software Engineering, 13.-16. Jul. 2009, Limerick, Irland
- Presentation held at ICGSE'09 in Limerick: RepoGuard - Validation Framework for Version Control Systems
- Legenhausen, Malte: Neukonzeption der SVNChecker-Konfiguration, project report, University of Cooperative Education Mannheim, 2008 (in German)
- Pielicke, Stefan: Erstellung offener Schnittstellen zur Integration beliebiger Versionsverwaltungs- und Issue-Tracking-Systemen in existierende Software- Konfigurationsumgebungen, bachelor thesis, Cologne University of Applied Sciences, 2008 (in German)
Available Checks, Handlers and Bug Trackers
RepoGuard includes out-of-the-box many several Checks and Handlers that allows the instandly use without writing Checks and Handlers by your own.
Following Checks, Handlers and especially Bug Trackers are available:
||Check access rights on files.
||Check whether the files only contain ASCII Characters. Single chars can be allowed or denied.
||Tests, if a file with the same filename (ignoring the case) already exists in the repository.
||Checkout files from the repository to file system locations.
||Checks java files for coding style errors using Checkstyle.
||Checks for svn:keywords on all added files in this commit. Currently only Subversion keywords are supported.
||Creation of transaction report that can be published by the handlers.
||Checks Python files for coding style using PyLint.
||Reject files with given extensions that include leading tabs.
Contributed by Adam Byrtek.
||Tests, if a unit test exists for a given Java class.
||Checks XML files for correctness.
||Build triggering of Buildbot jobs, after successful check execution.
||Simple console output handler.
||Write the results of the check execution in a log file.
||Build triggering for Hudson jobs, after successful check execution.
||Send the check results as mail to all developers.
||Executes the update process for the ViewVC database.
Several bug tracking systems are supported by RepoGuard. For each bug tracker there exists a Check and a corresponding Handler. The Check validates, if a commit message contains one or more valid IDs for an issue. By default, the commit message must contain a line with 'MANTIS ID <#>' (will change when more bug tracker are available), where '<#>' is number of an issue ID that is set to status 'in_progress' and handled by the correct user. On success the corresponding handler append a note to the given issue IDs and can update a custom field with the current revision.
Following bug tracking systems are supported out-of-the-box:
In addition support for the following bug tracker is underway (see Issue 11):
You can download the latest RepoGuard or check out the repository for the current developer version.
Donwload RepoGuard 0.2.0.
The following list describes new features and bug fixes:
- Added anonymous authentication to the Mail handler.
- Added support for synchronizing a Subversion repository with Mantis.
- Fixed Checkstyle check failure when during a commit just files have been deleted.
- Correctly included the ViewVC handler again.
- Fixed AccessRight check that prevented the commit although no files have been matched.
Donwload RepoGuard 0.1.0.
The following list describes features and bug fixes of release 0.1.0:
- Improved support for version control system Subversion.
- Improved support for bug tracking system Mantis.
- New configuration format with features like validation, inheritance and better readablity by using the ConfigObj configuration format.
- Improved check and handler workflow. Allow a more flexible use of the checks inside a profile execution process.
- Extensible command line tool that allows an easier use and administration.
- More comfortable integration of new checks, handlers, command line tools and of course modules for accessing other version control systems.
Bugzilla, Buildbot, GForge, git, Hudson, Mantis, Perforce, Pylint, Subversion, SVNChecker, Trac, ViewVC