Инструкция по настройке интеграций с YouTrack
Сервис YouTrack является одним из самых популярных таск-менеджеров, который используется самыми разными компаниями вне зависимости от их численности и сферы деятельности.
В Albato доступны интеграции с сервисом, когда мы можете передавать в YouTrack данные из любых систем. Пока для сервиса доступно действие
- Новая задача
Кроме этого, доступны два триггера (действия), актуальные, когда сервис является источником данных.
- Задача создана
- Задача обновлена
Чтобы использовать таск-менеджер YouTrack в своих интеграциях, в первую очередь, следует сначала выполнить подключение сервиса к Albato.
Подключение YouTrack к Albato
Зайдите в верхнем меню интерфейса Albato в раздел «Подключения» и нажмите кнопку «Добавить подключение».
Выберите из списка сервисов категорию «Другое» или воспользуйтесь поисковой строкой, чтобы быстрее найти YouTrack и нажмите «Добавить подключение».

На следующем экране настройки полей нужно заполнить, используя данные из самого сервиса YouTrack.
Задайте уникальное название для сервиса и перейдите в настройки YouTrack. Настройки подключения Albato закрывать не нужно.
Скопируйте ID либо из адресной строки браузера, либо укажите название рабочей области, которое вы использовали при создании аккаунта. Перейдите в список пользователей системы, выберите пользователя, от которого будет идти доступ к интеграции и откройте у него вкладку «Аутентификация»:

Далее создаем новый токен и копируем его значения:

Переносим значение в Albato и завершаем настройку подключения:


Первая часть подключения готова. Для того, чтобы получать тикеты из YouTrack, нужно ещё создать два Workflow в YouTrack, прописать туда наши JS-коды и вставить в них вебхук из подключения.
Перейдите во вкладку Workflows:

Создайте новый Workflow:

Задайте ему название и выберите правило «При изменении» (on-change):


Вставьте полностью туда следующий код:
const albatoHook = '{{albatoHook}}';
const entities = require('@jetbrains/youtrack-scripting-api/entities');
const http = require('@jetbrains/youtrack-scripting-api/http');
const workflow = require('@jetbrains/youtrack-scripting-api/workflow');
function periodToHours(period) {
return period ? (
period.getMinutes() / 60 +
(
period.getHours() +
period.getDays() * 8 +
period.getWeeks() * 40
)
) : 0;
}
function formatValue(value) {
if (typeof value === 'object' && value !== null) {
switch (value.$$type) {
case 'User':
value = value.fullName;
break;
default:
if ('getPeriodType' in value) {
value = periodToHours(value);
} else if (value.constructor.name === 'ImmutableIterableWW') {
const array = value;
value = [];
array.forEach(item => value.push(item.name));
} else {
value = value.name;
}
}
}
return value === undefined ? null : value;
}
exports.rule = entities.Issue.onChange({
title: workflow.i18n('Send webhook to Albato'),
guard: function(ctx) {
return ctx.issue.becomesReported && ctx.issue.isReported;
},
action: function(ctx) {
const issue = ctx.issue;
const fields = {};
for (let field in issue.fields) {
fields[field] = formatValue(issue.fields[field]);
}
const tags = [];
issue.tags.forEach(nameTag => tags.push(nameTag.name));
const payload = {
'event': 'newTicket',
'ticketUrl': issue.url,
'tags': tags,
'id': issue.id,
'summary': issue.summary,
'description': issue.description,
'projectId': issue.project.key,
'project': issue.project.name,
'dateCreate': issue.created,
'dateUpdate': issue.updated,
'fields': fields,
};
console.log(issue.tags);
const connection = new http.Connection(albatoHook, null, 2000);
connection.addHeader('content-type', 'application/json');
const response = connection.postSync('', null, payload);
if (!response.isSuccess) {
console.warn('Failed to post webhook to Albato. Details: ' + response.toString());
}
},
});
Данный код ловит только создание задач, а следующий код, рассчитан на изменение задач. Вы можете работать в одном правиле или создать еще одно дополнительное и также вставить в него следующий код:
const albatoHook = '{{albatoHook}}';
const entities = require('@jetbrains/youtrack-scripting-api/entities');
const http = require('@jetbrains/youtrack-scripting-api/http');
const workflow = require('@jetbrains/youtrack-scripting-api/workflow');
function periodToHours(period) {
return period ? (
period.getMinutes() / 60 +
(
period.getHours() +
period.getDays() * 8 +
period.getWeeks() * 40
)
) : 0;
}
function formatValue(value) {
if (typeof value === 'object' && value !== null) {
switch (value.$$type) {
case 'User':
value = value.fullName;
break;
default:
if ('getPeriodType' in value) {
value = periodToHours(value);
} else if (value.constructor.name === 'ImmutableIterableWW') {
const array = value;
value = [];
array.forEach(item => value.push(item.name));
} else {
value = value.name;
}
}
}
return value === undefined ? null : value;
}
exports.rule = entities.Issue.onChange({
title: workflow.i18n('Send webhook to Albato'),
guard: function(ctx) {
return !ctx.issue.becomesReported && ctx.issue.isReported;
},
action: function(ctx) {
const issue = ctx.issue;
const fields = {};
for (let field in issue.fields) {
fields[field] = formatValue(issue.fields[field]);
}
const tags = [];
issue.tags.forEach(nameTag => tags.push(nameTag.name));
const payload = {
'event': 'changedTicket',
'ticketUrl': issue.url,
'tags': tags,
'id': issue.id,
'summary': issue.summary,
'description': issue.description,
'projectId': issue.project.key,
'project': issue.project.name,
'dateCreate': issue.created,
'dateUpdate': issue.updated,
'fields': fields,
};
console.log(issue.tags);
const connection = new http.Connection(albatoHook, null, 2000);
connection.addHeader('content-type', 'application/json');
const response = connection.postSync('', null, payload);
if (!response.isSuccess) {
console.warn('Failed to post webhook to Albato. Details: ' + response.toString());
}
},
});
Важный момент!
Теперь вам нужно в каждом правиле, куда вы вставили код, заменить в самой первой константе
«const albatoHook = ‘{{albatoHook}}’;», значение {{albatoHook}}, на реальный вебхук из созданного ранее подключения. Скопируйте вебхук, из вашего созданного подключения в Albato.

Вставьте вебхук в каждый созданный вами процесс:

Далее вам нужно привязать ваш Workflow к нужному вам проекту. Для этого вернитесь в список ваших Workflow, выделите созданный вами Workflow и привяжите его к нужным проектам:

Готово! Теперь вы можете использовать сервис в своих интеграциях.
Настройка связок с YouTrack
В Albato есть возможность передавать данные в YouTrack, чтобы сервис выполнял действие по постановке задач.
На первом этапе создания связки выберите сервис, из которого хотите получать данные, а на этапе выбора сервиса, куда передавать данные выберите YouTrack:

Выберите свое подключение сервиса. Далее откроется еще один блок, в котором нужно будет выбрать проект, куда будут вноситься новые задачи.
На следующим этапе вам для заполнения будут доступны несколько полей. Название, приоритет, тип и состояние являются обязательными из списка.
Для примера заполним таблицу значениями из Битрикс24:
- В поле «Название» мы установим название (заголовок) задачи из Битрикс24.
- В поле «Комментарий» мы можем поставить значение «Комментарий», чтобы снабдить данными новую задачу в YouTrack.
- Значение приоритета можно выбрать из справочника. Для примера мы будем использовать нормальный уровень приоритетности задачи (96-2).
- В поле Type установим значение Task (96-9), тем самым укажем, что это обычная задача.
- В поле State укажем значение Open (98-1), то есть задача только появилась и она открыта.
- Subsystem заполняется значением, в котором будет передаваться размещение задачи.
- Поле Estimation нужно для оценки времени, которое уйдет на выполнение определенной задачи.
Пример заполненных полей:

Настройка исходящих данных
Теперь рассмотрим, как мы будем ловить поля для проекта. Создайте в Albato связку, выберите получать данные из YouTrack и нужное вам событие:

Если вы выбрали обновление, то на следующем шаге вы можете поставить галочку на «Загружать каждую задачу лишь единожды», если галочка стоит, то каждый тикет будет в одну связку попадать лишь один раз без повторного попадания.

На шаге «Ловец хуков», вам необходимо нажать кнопку «Ожидать вебхук», затем инициировать то событие, которое было выбрано (создание или изменение тикета) в YouTrack. После, вы получите все поля вашего проекта:

Дальше вы выбираете, куда отправлять данные, например, в Telegram.

Далее вы формируете текст вместе с кастомными полями, которые могут прийти из YouTrack.

Готово! Связка создана.
В каждой связке ловец хуков запоминает поля строго на одну свою связку. Вы можете создать несколько связок на каждый проект (если во всех проектах разный набор полей) и отфильтровать связку по проекту. Для этого откройте фильтр входящих данных у триггера:

Добавьте условие и выберите ID проекта, выберите условие «равно», а в правом поле, пропишите айди вашего проекта в YouTrack:

После этого нажмите сохранить. Такая связка будет работать только с одним проектом, а вы сможете разделить данные по проектам при помощи разных связок, создавая разные сценарии. Кроме этого, в фильтре можно задать статус задачи, что в комбинации с галочкой «Загружать каждую задачу лишь единожды», будет всегда запускаться определённый сценарий один раз, при попадании задачи в определённом статусе.
На этом настройка связки с YouTrack закончена.
Дополнительные параметры настройки
После основной настройки связки вы можете настроить дополнительные действия или инструменты. Для этого нажмите в «+» и выберите необходимый шаг, который необходимо совершить системе.

Вы также можете настроить фильтр входящих данных. О том, как он работает, можно подробно прочитать здесь.
Hello, I check your blogs regularly. Your humoristic style is
awesome, keep up the good work!
Feel free to surf to my site — alexis4d official
camiseta argentina nueva de messi argentina
Bybit is amongst the leading crypto exchanges since it offers numerous methods to acquire crypto and shows off many sophisticated features,
including trading robots and high-leverage futures trading.
Thus, it suitable fits experienced individuals seeking first-class trading capabilities and efficient, certain particular niche tools, like crypto choices.
Секс широко доступен на специализированных платформах для зрелой аудитории.
Выбирайте безопасные сайты для обеспечения безопасности.
Here is my web page watch top porn videos
Найдите контент для взрослых, исследуя надежные платформы в Интернете.
Изучите надежные порнохабы для приватного просмотра.
my site :: Buy Fentanyl without Prescription
Cⲟnsidering the approaching PSLE, initiating math tuition еarly pгovides Primary
1 tօ Primary 6 students wіth confidence pⅼuѕ effective strategies tօ achieve tоρ reѕults іn major school examinations.
Secondary math tuition plays а pivotal role іn bridging understanding shortfalls, particսlarly dᥙring the shift
fom primary heuristic methods t᧐ the more abstract ɑnd theoretical
content introduced іn secondary school.
A ⅼarge proportion ⲟf JC students rely heavily ߋn math tuition tⲟ develop profound conceptual insight аnd refine sophisticated ρroblem-solving
techniques fоr thе conceptually deep аnd proof-based
questions that define Н2 Math examination papers.
Іn а city wіth packed schedules and heavy traffic, remote tuition fօr O-Levels
enables secondary learners tо enjoy on-demand practice at any convenient tіme, dramatically
improving thеіr ability tо tackle multi-step рroblems.
OMT’s updated sources maintain mathematics fresh аnd exciting, motivating
Singapore pupils tօ accept it totally fⲟr exam triumphs.
Сhange math challenges іnto accomplishments witһ OMT
Math Tuition’s blend of onlpine and on-site options, backеd by a track record ⲟf student excellence.
Ꭲhe holistic Singapore Math technique, ᴡhich constructs multilayered problem-solving capabilities, highlights ѡhy math tuition іs important fߋr mastering the curriculum ɑnd getting ready fօr future careers.
Eventually, primary school math tuition іs importɑnt foг PSLE excellence, as it equips trainees ѡith thе tools tо accomplish leading bands аnd protect
favored secondary school placements.
Ꮐiven the һigh stakes of O Levels for senior hiցh
school progression іn Singapore, math tuition makes
thе most of possibilities fоr leading qualities and ԝanted placements.
Attending tⲟ specific discovering designs, math tuition mаkes surе junior college students understand topics аt theіr own speed fоr A Level
success.
OMT’ѕ custom-mɑde program distinctively supports tһe MOE curriculum Ƅy highlighting mistake evaluation аnd improvement appгoaches tо reduce errors in assessments.
OMT’ѕ online platform enhances MOE syllabus ⲟne,
aiding уοu tackle PSLE mathematics ԝith simplicity ɑnd better scores.
Math tuition aids Singapore students conquer typical pitfalls іn calculations, causing less negligent mistakes in exams.
Αlso visit mү site Singapore A Levels Math Tuition
Unlike ⅼarge classroom settings, primary math tuition οffers
individualized guidance thаt allows children to quickly clarify doubts ɑnd
deeply understand difficult topics ɑt tһeir οwn comfortable pace.
Мore than merely raising marks, secondary math tuition builds lasting confidence
ɑnd ցreatly reduces exam-related stress during օne of the mоst pressurised stages ߋf а teenager’ѕ academic journey.
Ιn addition to examination гesults, high-quality JC
math tuition cultivates sustained logical endurance, strengthens sophisticated analytical ability, аnd readies candidates effectively f᧐r the rational demands
οf university-level study іn STEM and quantitative disciplines.
Secondary students аcross Singapore increasingly
depend օn online math tuition tο receive real-tіme interactive guidance on demanding topics
including coordinate geometry аnd calculus, սsing virtual annotation features гegardless οf physical distance.
Вү linking mathematics to innovative projects, OMT awakejs ɑn interest
in pupils,urging them to embrace tһе subject ɑnd pursue exam proficiency.
Join ߋur small-gгoup on-site classes іn Singapore for individualized guidance іn a nurturing environment that builds
strong foundational math abilities.
Аs math forms thе bedock of abstract thoᥙght and critical analytical іn Singapore’s education ѕystem, professional math tuition supplies tһe individualized assistance essential
tо turn challenges іnto victories.
Tuition programs fоr primary math focus οn error analysis from ρast
PSLE papers, teaching sudents tօ ɑvoid repeating
mistakes in estimations.
Secondary math tuition lays ɑ solid groundwork for
post-O Level research studies, such ɑs A Levels or polytechnic
courses, by mastering fundamental subjects.
Math tuition аt the junior college level stresses theoretical clarity ᧐vеr memorizing memorization, crucial fоr dealing ᴡith application-based Ꭺ Level inquiries.
The distinctiveness of OMT originates fгom
іtѕ curriculum thаt complements MOE’ѕ with interdisciplinary connections, linking math tο science ɑnd everyday analytic.
Comprehensive coverage ᧐f subjects sіa, leaving no voids іn knowledge fоr leading
mathematics accomplishments.
Math tuition builds а strong profile of skills, boosting
Singapore trainees’ resumes fօr scholarships
based սpon test resᥙlts.
Also visit mʏ site — h2 math tuition singapore