When a process is stored in your repository's /.svnplace/processes then it will be started by one of a number of events on that repository. Which events cause it to start is given in the triggers secion.
triggers:
start_commit:
pre_commit:
post_commit:
pre_revprop_change:
post_revprop_change:
pre_lock:
post_lock:
pre_unlock:
post_unlock:
time:
Each event can be given briefly:
triggers:
post_commit:
- ~/trunk/index.md
or, if more than the single property needs to be given:
triggers:
poat_commit:
changed:
- ~/trunk/index.md
args:
notify: 'joebloggs'
All events provide:
event.name
Triggered by the start-commit
hook.
triggers:
start_commit:
args:
notify: 'joebloggs'
The parameter for the brief form is args:
.
These values are available:
event.name
event.repo.*
event.capabilities
event.txn_name
event.user.*
A set of assignments. These will be available to the process, the same as a process's args.
triggers:
start_commit:
args:
whathappened: 'A '+event.name
Note these are python expressions.
Triggered by the pre-commit
hook.
triggers:
pre_commit:
changed:
- ~/trunk/index.md
args:
notify: 'joebloggs'
The parameter for the brief form is changed:
.
These values are available:
event.name
event.repo.*
event.txn_name
event.user.*
A set of assignments. These will be available to the process, the same as a process's args.
triggers:
pre_commit:
args:
whathappened: 'A '+event.name
Note these are python expressions.
Triggered by the post-commit
hook.
triggers:
post_commit:
changed:
- ~/trunk/index.md
args:
notify: 'joebloggs'
The parameter for the brief form is changed:
.
These values are available:
event.name
event.repo.*
event.revision
event.txn_name
event.changes[].path
event.changes[].change
event.author
event.user.*
event.datestamp
event.message
If changed:
is missing, any post-commit
will trigger the process.
Give a list of path wildcards:
triggers:
post_commit:
changed:
- +~/.svnplace/process/**
- -/tags/**
The process will trigger when any of the checkin's changes match one of these.
Start each entry with one of more of +
, -
or ~
:
+
added
-
deleted
~
modified
The path itself wildmatches the same as .gitignore
.
Examples:
+~/.svnplace/process/**
/.svnplace/process
is added or modified-/tags/**
/tags
is deletedA set of assignments. These will be available to the process, the same as a process's args.
triggers:
post_commit:
args:
whathappened: 'A '+event.
Note these are python expressions.
Triggered by the pre-revprop-change
hook.
triggers:
pre_revprop_change:
properties:
- sp:testproperty
args:
notify: 'joebloggs'
The parameter for the brief form is properties:
.
These values are available:
event.name
event.repo.*
event.revision
event.propname
event.action
event.value
event.user.*
Which properties will cause this process to be triggered. If missing, then all revision properties will trigger this process.
A set of assignments. These will be available to the process, the same as a process's args.
triggers:
pre_revprop_change:
args:
whathappened: 'A '+event.name
Note these are python expressions.
Triggered by the pre-revprop-change
hook.
triggers:
post_revprop_change:
properties:
- sp:testproperty
args:
notify: 'joebloggs'
The parameter for the brief form is properties:
.
These values are available:
event.name
event.repo.*
event.revision
event.propname
event.action
event.value
event.user.*
Which properties will cause this process to be triggered. If missing, then all revision properties will trigger this process.
A set of assignments. These will be available to the process, the same as a process's args.
triggers:
post_revprop_change:
args:
whathappened: 'A '+event.name
Note these are python expressions.
Triggered by the pre-lock
hook.
triggers:
pre_lock:
paths:
- /.svnplace/process/**
- /tags/**
args:
notify: 'joebloggs'
The parameter for the brief form is paths:
.
These values are available:
event.name
event.repo.*
event.path
event.comment
event.steal
event.user.*
If paths:
is missing, any pre-lock
will trigger the process.
Give a list of path wildcards:
triggers:
pre_lock:
paths:
- /.svnplace/process/**
- /tags/**
The process will trigger when any of the lock's paths match one of these.
Each path in paths:
wildmatches the same as .gitignore
.
Examples:
/.svnplace/process/**
/.svnplace/process
is locked-/tags/**
/tags
is locksA set of assignments. These will be available to the process, the same as a process's args.
triggers:
pre_lock:
args:
whathappened: 'A '+event.name
Note these are python expressions.
Triggered by the post-lock
hook.
triggers:
post_lock:
paths:
- /.svnplace/process/**
- /tags/**
args:
notify: 'joebloggs'
The parameter for the brief form is paths:
.
These values are available:
event.name
event.repo.*
event.paths
event.user.*
If paths:
is missing, any post-lock
will trigger the process.
Give a list of path wildcards:
triggers:
post_commit:
paths:
- /.svnplace/process/**
- /tags/**
The process will trigger when any of the lock's paths match one of these.
Each path in paths:
wildmatches the same as .gitignore
.
Examples:
/.svnplace/process/**
/.svnplace/process
is locked-/tags/**
/tags
is locksA set of assignments. These will be available to the process, the same as a process's args.
triggers:
post_lock:
args:
whathappened: 'A '+event.name
Note these are python expressions.
Triggered by the pre-unlock
hook.
triggers:
pre_unlock:
paths:
- /.svnplace/process/**
- /tags/**
args:
notify: 'joebloggs'
The parameter for the brief form is paths:
.
These values are available:
event.name
event.repo.*
event.path
event.token
event.break_unlock
event.user.*
If paths:
is missing, any pre-unlock
will trigger the process.
Give a list of path wildcards:
triggers:
post_commit:
paths:
- /.svnplace/process/**
- /tags/**
The process will trigger when any of the lock's paths match one of these.
Each path in paths:
wildmatches the same as .gitignore
.
Examples:
/.svnplace/process/**
/.svnplace/process
is locked-/tags/**
/tags
is locksA set of assignments. These will be available to the process, the same as a process's args.
triggers:
pre_unlock:
args:
whathappened: 'A '+event.name
Note these are python expressions.
Triggered by the post-unlock
hook.
triggers:
post_unlock:
paths:
- /.svnplace/process/**
- /tags/**
args:
notify: 'joebloggs'
The parameter for the brief form is paths:
.
These values are available:
event.name
event.repo.*
event.paths
event.user.*
If paths:
is missing, any post-lock
will trigger the process.
Give a list of path wildcards:
triggers:
post_commit:
paths:
- /.svnplace/process/**
- /tags/**
The process will trigger when any of the lock's paths match one of these.
Each path in paths:
wildmatches the same as .gitignore
.
Examples:
/.svnplace/process/**
/.svnplace/process
is locked-/tags/**
/tags
is locksA set of assignments. These will be available to the process, the same as a process's args.
triggers:
post_unlock:
args:
whathappened: 'A '+event.name
Note these are python expressions.
Triggered by reaching certain times.
triggers:
time:
cron:
- '0 23 * * *'
- '0,15,30,45 23 * * L2'
args:
notify: 'joebloggs'
The parameter for the brief form is cron:
.
These values are available:
event.name
event.repo.*
event.cron
event.user.*
Which times trigger the event. These are cron strings. If there are none, then the event will never trigger.
The format is a space separated list of `minute hour day month weekday'.
Examples:
triggers:
time:
cron:
- 15 1 * * *
A quarter past 1am every morinig.
triggers:
time:
cron:
- 0 17 29 2 *
Five pm on the 29th Febuary.
triggers:
time:
cron:
- 0 12 * * 4
12pm every Friday
triggers:
time:
cron:
- 0 12 * * L1
12pm on the last Tuesday of every month.
triggers:
time:
cron:
- 0,30 * * * *
Every half an hour.
triggers:
time:
cron:
- 15 8,17 2,4,6,8,10,12,14,16,18,20,22,24,26,28,30 * *
08:15 and 17:15 on days with an even date.
A set of assignments. These will be available to the process, the same as a process's args.
triggers:
post_unlock:
args:
whathappened: 'A '+event.name
Note these are python expressions.