javascript - Youtrack Workflow 无缘无故地为 http 库抛出异常
问题描述
这是工作流代码。它不断抛出异常,但没有指出原因。我试图删除(见下文)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);
一切都很好 - 奇怪的是 - 这在没有改变任何东西之前就已经奏效了
解决方案
推荐阅读
- chart.js - chartjs数据集从单行到多行
- xcode - 将 NSSplitView 放在 NSPageController 中并切换侧边栏,显示已损坏
- html - 输入类型文件 activeform Yii2 生成另一种输入类型 hidden
- silverstripe-4 - 如何检测 SilverStripe 4 中的成员组更改
- node.js - 如何为两个数组的内容创建每个可能的唯一组合?
- sql - 用于对会话数据进行排序和聚合的 SQL 排名函数
- go - 调试时出现错误“插件是用不同版本的包构建的”失败
- c - 我应该在以下代码中找到错误但找不到
- tensorflow - TensorFlow 开发者考试“Blas GEMV 启动失败”
- javascript - 如何从 textarea 的值中保存 .txt 文件?