From an administration point of view, the Version Control API module provides the admin pages for repository management, account management and general settings.

Repository management is extensible for both VCS backends and external modules, so every module that needs to add some information to repositories can do so. Repository settings at least include the name and root path/URL of the repository, as well as a repository-specific account registration message and URLs of external repository viewers and/or issue trackers.

Furthermore, one of multiple authorization methods (also extensible by other modules like Version Control Account Status) can be defined for each repository. Version Control API itself provides two of them: "No approval required" and "Only administrators can create accounts" (default). When the Version Control Account Status module is enabled, a third option for moderation of new accounts is also included.

Account management, in its vanilla form, is relatively bare-bone when compared to repository options, and only shows a simple mapping of Drupal users to VCS usernames, with a link to the "edit account" form on the user page.

General settings include the VCS admin email address and messages shown on the account creation page, plus global options added by other modules.

So what can I do with this right now?

  • Display commit messages with the Commit Log module, also available per project (optional) and containing links to external repository viewers (optional, too). The same is also available as notification mails and RSS feed.
  • Export accounts to a CVS passwd file, making account management through a Drupal UI possible. Optionally with admin moderation for account registrations. Unfortunately, the account architecture is b0rked so this won't be possible with SVN/Git/Hg/bzr unless it's being reworked.
  • Disallow commits for users if they try to create an incorrectly named branch or tag, or if they are not listed as project maintainers of a project node.
  • Rules integration: Let the Rules module fire any events when a commit is recorded. Say, mail a notification mail to users in only a certain group only if it happened in a specific directory.
  • Generate release tarballs using the versioncontrol_release module, after having associated a project to a repository location.

What Version Control API will never do

Everything that involves working copies. From the beginning, Version Control API was conceived only for server-side tasks so that merge conflicts, and other difficulties stemming from a modified working copy, can be avoided. In short, you won't ever be able to perform automated commits with this module.