Directives #
The directives must appear in the first lines of a Rule file. They are parsed by Aggregator and removed before compiling the code.
language directive #
.lang=C#
.language=Csharp
Currently the only supported language is C#.
You can use the .lang
directive to specify the programming language used by the rule.
If no language is specified: C# is default.
reference directive #
Loads the specified assembly in the Rule execution context
Example
.reference=System.Xml.XDocument
import directive #
Equivalent to C# namespace
.import=System.Collections.Generic
impersonate directive #
Aggregator uses credentials for accessing Azure DevOps. By default the changes which
were saved back to Azure DevOps are done with the credentials provided for accessing
Azure DevOps.
In order to do the changes on behalf of the account who initiated an event, which Aggregator is going to handle,
specify
.impersonate=onBehalfOfInitiator
Attention: To use this the identify accessing Azure DevOps needs special permissions, see Rule Examples.
check directives #
The check directives allow a fine control on a rule’s behaviour.
check revision directive #
This directive disable the safety check which forbids concurrent updates (see Parallelism).
If you set .check revision false
, and the work item was updated after the rule was triggered but before any change made by the rule are saved, the rule changes
With .check revision true
(assumed by default), you will receive a VS403351 error, in case the work item changed in between the rule reading and writing.
event directive [v1.0] #
Restricts the events that may trigger the Rule, see also Common objects.
Example
.event=workitem.created
.event=workitem.updated
or in one line
.events workitem.created,workitem.updated
bypassrules directive [v1.1] #
Do not enforce server-side rules associated with the Work Item Type while saving changes. By default Aggregator enforces Azure DevOps rules, e.g. a User Story in Agile Process cannot transition directly from New to Closed (see Workflow states).
Example
.bypassrules=true