Since version 0.3.0 the plugin supports custom shell scripts which can be executed when a repository is created and when a repository is deleted. One can use these scripts to set permissions after a repository has been created, to archive a repository before it gets removed etc.
Scripts (pathes to them) must be specified in the configuration file
production: pre_create: /usr/local/bin/pre-create.sh post_create: /usr/local/bin/post-create.sh pre_delete: /usr/local/bin/pre-delete.sh post_delete: /usr/local/bin/post-delete.sh
pre_ scripts get executed before an action (before creation or before deletion). And
post_ scripts get called after an action (after creation or after deletion).
In most cases you will want to use
All scripts are called with the following arguments:
- Path to the repository root (e.g.
- Repository type (e.g.
- Project identifier (e.g.
Possible values1 for the second argument (repository type):
svn- for Subversion;
git- for Git;
mercurial- for Mercurial;
bazaar- for Bazaar.
github- for Github.
You can use custom fields to pass aditional parameters to scripts.
Project custom fields (if their values are set, of course) are automatically made availabe to scripts as environment variables. The name of such environment variable begins with
SCM_CUSTOM_FIELD_. The rest is formed from the custom field name. For example, custom field "Project type" will be available as
Note: The environment variable name is obtained by replacing all non-latin characters, non-numbers and non-underscore by
This is a skeleton which can be used as a template for scripts:
#!/bin/sh SCM_REPO_PATH=$1 SCM_TYPE=$2 SCM_PROJECT=$3 SCM_REPO_NAME=$(basename $SCM_REPO_PATH) SCM_REPO_ROOT=$(dirname $SCM_REPO_PATH) case "$SCM_TYPE" in svn) ;; git) ;; mercurial) ;; bazaar) ;; github) ;; *) echo "SCM not supported: $SCM_TYPE" >&2 ;; esac exit 0
1 this is actually a list of currently supported SCMs