Developer Portal for YouTrack and Hub Help

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 November 2024