js/updating-batches-of-issues/template.js (36 lines of code) (raw):

var entities = require('@jetbrains/youtrack-scripting-api/entities'); var search = require('@jetbrains/youtrack-scripting-api/search'); var TITLE = ''; /* Add a rule title. */ var SEARCH = ''; /* Add a search query for the issues you want to update. */ var LIMIT = 100; var CRON = '0 * * * * ?'; var ANCHOR = ''; /* Add an id of an issue from the project you want to update. */ var updateIssue = function(ctx, issue) { /* Update an `issue` here. */ }; exports.rule = entities.Issue.onSchedule({ title: TITLE, cron: CRON, search: ANCHOR, muteUpdateNotifications: true, action: function(ctx) { var issues = search.search(ctx.issue.project, SEARCH); var entries = issues.entries(); var i = entries.next(); var n = 0; var firstIssueId = i.done ? '' : i.value.id; while (n < LIMIT && !i.done) { var issue = i.value; updateIssue(ctx, issue); n += 1; i = entries.next(); } var name = ctx.issue.project.name + ' : ' + TITLE + ' : '; if (n) { console.log(name + n + ' issues are processed, starting with ' + firstIssueId); } else { console.log(name + 'no issues are processed, as nothing is left to process'); } }, requirements: { /* Add rule requirements. */ } });