Это код рабочего процесса. Он продолжает выдавать исключение, но не указывает на причину этого.
Я попытался удалить (см. Ниже) вызовы библиотеки http, и тогда это сработало. Странно то, что раньше это работало без каких-либо изменений в вызовах lib.
* This is a template for an on-change rule. This rule defines what
* happens when a change is applied to an issue.
*
* For details, read the Quick Start Guide:
* https://www.jetbrains.com/help/youtrack/incloud/2019.1/Quick-Start-Guide-Workflows-JS.html
*/
var entities = require('@jetbrains/youtrack-scripting-api/entities');
var http = require('@jetbrains/youtrack-scripting-api/http');
exports.rule = entities.Issue.onChange({
// TODO: give the rule a human-readable title
title: 'discord-notification-in-progress',
guard: function(ctx) {
console.log("checking if state became InProgress");
return ctx.issue.fields.becomes(ctx.State, ctx.State.InProgress);
},
action: function(ctx) {
console.log("executing POST to discord");
var assignee = ctx.issue.fields.Assignee.login;
var url = ctx.issue.url;
console.log(assignee);
var id = ctx.issue.id;
var summary = ctx.issue.summary;
var data = {
"username": "CoopR YouTrack Info",
"content": "**" + assignee + "** is now working on " + id + ": " + summary + " (" + url + ")"
};
console.log(data);
var connection = new http.Connection('https://discordapp.com');
connection.addHeader('Content-Type', 'application/json');
connection.postSync('/api/webhooks/xxx/1DJucC8-vdZR-xxx', [], data);
},
requirements: {
State: {
type: entities.State.fieldType,
name: "State",
InProgress: {
name: "In Progress"
}
},
Assignee: {
type: entities.User.fieldType
}
}
});
И это исключение:
Processing issue COOPR-70:
TypeError: Cannot call method "getContent" of null (@jetbrains/youtrack-scripting-api/http#119)
org.mozilla.javascript.ScriptRuntime.constructError(ScriptRuntime.java:4198)
org.mozilla.javascript.gen.coopr_discord_notification_notificate_in_progress_3686._c_anonymous_2(coopr-discord-notification/notificate-in-progress:34)
Когда я удаляю эти строки:
var connection = new http.Connection('https://discordapp.com');
connection.addHeader('Content-Type', 'application/json');
connection.postSync('/api/webhooks/xxx/1DJucC8-vdZR-xxx', [], data);
Все идет хорошо - странная вещь - это работало раньше, ничего не меняя