Можно ли получить значения всех полей в issue.fields

Мне необходимо получить текущее состояние полей в issue.fields и передать их в HTTP запросе, не могу разобраться как вытащить все значения🧐

2 comments
Comment actions Permalink
Official comment

Добрый день,

К сожалению кроме как работать с issue.fields других способов получить значения нет, но при этом помимо искомых значений также будут возвращены методы класса Fields и прочее. Перебрать можно, например, вот так:

Object.keys(issue.fields).forEach(key => console.log(key+'\n'+issue.fields[key])); 
Comment actions Permalink

Спасибо, получилось👍

Прикладываю код, вдруг кому понадобится

const entities = require('@jetbrains/youtrack-scripting-api/entities');
const http = require('@jetbrains/youtrack-scripting-api/http');

exports.rule = entities.Issue.onChange({
title: 'HTTP Запрос на сервис интеграции',
command: 'http_request',
guard: (ctx) => {
return true;
},
action: (ctx) => {
const issue = ctx.issue;

const payload = {
id: issue.id,
fields: {},
};

Object.keys(issue.fields).forEach(function(key) {
if (issue.fields[key] != null) {
payload.fields[key] = issue.fields[key].presentation;
}
});

var connection = new http.Connection('https://your-site-url');
connection.addHeader('Content-Type', 'text/html');
connection.postSync('/path-to-handler', [], payload);
},
requirements: {
// TODO: add requirements
}
});
0

Please sign in to leave a comment.