Custom Scripts
Custom scripts let you organize and reuse blocks of code. They don't contain any specific type of rule. Instead, they contain code that can be used in other scripts.
In any script, you can define whichever objects and functions you want to use in other scripts by assigning them as properties of the exports
object.
Here's an example.
First, we'll create a custom script that defines a simple function.
// 'math.js'
exports.f = function (x) {
return x * x - 6 * x + 13;
};
// And these are a couple of constants we need.
exports.lower = 0;
exports.upper = 9;
Now you have a math
object that contains the properties that you defined for the exports
object. This means that you can access this function as math.f
.
Next, we'll write an action rule that references this function.
// 'chart.js'
const entities = require('@jetbrains/youtrack-scripting-api/entities');
const math = require('./math');
exports.rule = entities.Issue.action({
title: 'Draw a chart',
command: 'draw',
action: (ctx) => {
const issue = ctx.issue;
var chart = '';
for (var x = math.lower; x <= math.upper; x++) {
var fx = math.f(x);
var line = x + ' | ';
for (var i = 0; i < fx; i++) {
line = line + "#";
}
chart = chart + line + "\n";
}
issue.addComment(chart);
}
});
Last modified: 7 October 2024