Login | Register
My pages Projects Community openCollabNet

repoguard
Project home

If you were registered and logged in, you could join this project.

Message from the owner(s)

The current version is 0.2.0!

For more information see our Wiki!

Summary A Framework for Integration of Development Tools with Source Code Repositories
Category scm
License Apache License
Owner(s) mlegenhausen, schlauch, spielicke

Description

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

Documentation

Unfortunately the documentation is not complete yet, still some parts of the old SVNChecker Documentation applies as well:

Publications

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:

Checks

Name Summary
AccessRights Check access rights on files.
ASCIIEncoded Check whether the files only contain ASCII Characters. Single chars can be allowed or denied.
CaseInsensitiveFilenameClash Tests, if a file with the same filename (ignoring the case) already exists in the repository.
Checkout Checkout files from the repository to file system locations.
Checkstyle Checks java files for coding style errors using Checkstyle.
Keywords Checks for svn:keywords on all added files in this commit. Currently only Subversion keywords are supported.
Log Creation of transaction report that can be published by the handlers.
PyLint Checks Python files for coding style using PyLint.
RejectTabs Reject files with given extensions that include leading tabs.
Contributed by Adam Byrtek.
UnitTests Tests, if a unit test exists for a given Java class.
XMLValidator Checks XML files for correctness.

Handlers

Name Summary
Buildbot Build triggering of Buildbot jobs, after successful check execution.
Console Simple console output handler.
File Write the results of the check execution in a log file.
Hudson Build triggering for Hudson jobs, after successful check execution.
Mail Send the check results as mail to all developers.
ViewVC Executes the update process for the ViewVC database.

Bug Tracker

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):

Download

You can download the latest RepoGuard or check out the repository for the current developer version.

Current Release

Release 0.2.0

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.

Previous Releases

Release 0.1.0

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.

Development

RepoGuard is developed mainly by the Simulation and Software Technology divison of the German Aerospace Center (DLR). We are happy about any support for this project. For example, you might participate as a developer, bug reporter or simply by telling us your needs. Especially, if you have written additional checks, handlers, modules to access other version control systems, bug trackers or command line tools, we would be happy to include them into the RepoGuard distribution.

Just visit our forums or join our mailing lists on Tigris.

Additional information is available in the Wiki!!!