dergachev / redmine_git_remote

Redmine plugin to automatically clone and fetch referenced repositories
73 stars 44 forks source link

redmine_git_remote

Redmine plugin to automatically clone and remote git repositories.

Installation

Install the plugin as usual:

cd REDMINE_ROOT/plugins
git clone https://github.com/dergachev/redmine_git_remote

Then enable the new GitRemote SCM type in http://redmine-root/settings?tab=repositories

The plugin shells out to the following binaries, so make sure they're available:

Supporting private repos

For security sake, we don't support cloning over HTTPS with username password, but only via SSH.

For example:

If you're going to use the SSH form, you'll need to install the appropriate SSH keys to ~/.ssh/id_rsa (in the home directory of your redmine webserver user, likely www-data).

Some extra tips:

Usage

This plugin defines a new repository type, GitRemote, which allows you to associate a remote repository with your Redmine project. First create a new repository of type GitRemote, enter the clone URL. The identifier and path will be auto-generated, but can be overriden.

On submitting the repository creation form, the identifier and url (filesystem path) fields will be auto-generated (if not explicitly provided).

For example, if you enter https://github.com/dergachev/vagrant-vbox-snapshot as the Clone URL, it will prefill the Identifier and filesystem path fields as follows:

Once the remote URL is validated, the plugin creates an empty clone at the specified path.

This plugin hooks into the core Repository.fetch_changesets to automatically run git fetch --all on all GitRemote managed repositories as Redmine is about to pull in changesets from the local repos.

To avoid slowing down the GUI, we recommend unchecking the "Fetch commits automatically" setting at http://redmine-root/settings?tab=repositories and relying on the following cron job as per Redmine Wiki Instructions:

*/5 * * * * cd /home/redmine/redmine && ./bin/rails runner Repository.fetch_changesets -e production >> log/cron_rake.log 2>&1

To trigger fetch manually, run this:

cd /home/redmine/redmine && ./bin/rails runner "Repository.fetch_changesets" -e production

Notes: