Free Redmine plugin

SCM Creator for Redmine

Create and register local repositories from Redmine project settings, or connect GitHub.com repositories through protected local mirrors.

  • Git, Subversion, Mercurial, and Bazaar repository creation
  • GitHub.com creation, existing repository reuse, and local bare mirrors
  • Credential-safe Git access and signed push webhooks

Supported providers

Git
Subversion
Mercurial
Bazaar
GitHub.com with a local bare mirror

What SCM Creator does

SCM Creator provisions repository storage and registers it with a Redmine project. Users with Redmine's Manage repository permission work from the familiar project repository settings instead of asking an administrator to create every repository manually.

Version 2.2.1 is a modernized continuation of the original SCM Creator by Andriy Lesyuk. The current release targets Redmine 6.0 and newer and is maintained by www.SaaS-Secure.com, S. Ruttloff.

Free download

Current package: redmine_scm-2.2.1.tar.gz

GNU General Public License version 2.

Repository workflows

Create local repositories

Provision repository storage from Redmine project settings using installed SCM command-line tools.

  • Git, Subversion, Mercurial, and Bazaar
  • Configurable repository roots and displayed URLs
  • Optional creation during project creation

Manage GitHub.com mirrors

Create or reuse a GitHub.com repository and maintain the bare local mirror Redmine needs.

  • Public repositories can be mirrored without an API token
  • Repository-specific or environment-supplied tokens
  • Connection test, mirror health, size, and manual refresh

Protect credentials and hooks

Keep authentication out of stored remote URLs while verifying repository-specific webhook requests.

  • Tokens excluded from Git command arguments and logs
  • Signed GitHub push webhooks using HMAC SHA-256
  • Per-mirror locking prevents overlapping refreshes

Validate storage

Check repository roots and mirror targets before filesystem operations begin.

  • Writable-root and optional free-space checks
  • Managed paths restricted beneath configured roots
  • Safe cleanup after an incomplete new clone

Control repository policy

Choose how repository creation, registration, pickup, and deletion fit your Redmine deployment.

  • Creation limits and automatic creation modes
  • Optional lifecycle scripts
  • Managed deletion confirmation and path validation

Keep Redmine behavior

Extend Redmine's repository forms, helpers, permissions, and hooks without modifying core files.

  • Uses Manage repository permission
  • Server-rendered controls and Redmine-native feedback
  • English and German interface text

Installation and setup

Install the plugin

Extract the archive so the plugin directory is plugins/redmine_scm, then run the commands from the Redmine root.

tar -xzf redmine_scm-2.2.1.tar.gz -C plugins
bundle install
bundle exec rake redmine:plugins:migrate RAILS_ENV=production

Copy plugins/redmine_scm/config/scm.yml to config/scm.yml, adapt paths and providers for the production environment, and restart Redmine.

Requirements

  • Redmine 6.0 or newer
  • Command-line client for every enabled local SCM
  • Repository roots writable by the Redmine process
  • Octokit 10 for GitHub.com support
  • Redmine database encryption configured before storing repository credentials

GitHub.com configuration

Configure the mirror provider

Keep production tokens in environment variables and reference them from Redmine's config/scm.yml.

production:
  github:
    path: /var/lib/redmine/github_mirrors
    minimum_free_space_mb: 1024
    clone_protocol: ssh
    api:
      token: <%= ENV['REDMINE_SCM_GITHUB_API_TOKEN'] %>
      organization: <%= ENV['REDMINE_SCM_GITHUB_ORGANIZATION'] %>
      register_hook: true

Important boundaries

  • GitHub.com is supported; GitLab requires a separate adapter
  • Deleting a GitHub repository in Redmine removes only the local mirror and Redmine registration
  • Large mirror creation runs synchronously and can take time
  • The plugin creates repositories but does not publish them over HTTP, SSH, or Subversion DAV

Available download

Current version 2.2.1

Recommended release for Redmine 6.0 and 6.1 installations using local repository creation or GitHub.com mirrors.

  • Archive: redmine_scm-2.2.1.tar.gz
  • Supports Redmine 6.0 and newer
  • Includes maintained license, credits, configuration, and security documentation
Download 2.2.1

Plugin directory

Read the historical project entry and original plugin information in the Redmine plugin directory.

View on Redmine.org

Plugin changelog

The current release combines the Redmine 6 modernization and GitHub mirror hardening from 2.2.0 with restored licensing and provenance documentation.

Current version 2.2.1

Version 2.2.1

Maintenance release for documentation, licensing, attribution, and maintainability.

  • Restores the upstream GNU GPL version 2 license
  • Preserves original SCM Creator authorship and contributor credits
  • Documents architecture, configuration, security, and filesystem safety

Version 2.2.0

GitHub credential handling, mirror safety, health controls, and signed webhooks were strengthened.

  • Credential-safe Git execution and remote URLs
  • Mirror path, write-access, free-space, cleanup, and locking checks
  • Per-repository signed webhooks, connection testing, and mirror health

Version 2.1.x

GitHub.com repository forms gained clearer creation, credential, and mirror workflows.

  • Repository-specific access tokens and environment fallback
  • Existing repository reuse and connection feedback
  • One clear Create mirror repository action

Version 2.0.x

SCM Creator was updated for the current Redmine repository architecture.

  • Redmine 6 and Rails 7 loading, callbacks, forms, and helpers
  • Safe YAML configuration and managed filesystem paths
  • Octokit 10 and current GitHub token authentication

Download SCM Creator 2.2.1

Add repository provisioning to Redmine 6 while keeping provider roots, credentials, permissions, and publication under administrator control.

Download tar.gz