Инструкция по настройке интеграций с 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 закончена.
Дополнительные параметры настройки
После основной настройки связки вы можете настроить дополнительные действия или инструменты. Для этого нажмите в “+” и выберите необходимый шаг, который необходимо совершить системе.
Вы также можете настроить фильтр входящих данных. О том, как он работает, можно подробно прочитать здесь.
Commander cialis en ligne, viagra cialis prix, Munktellsciencepark. Parapharmacie en ligne, Parapharmacie discount, Pharmacie pas. Buy Viagra, Cialis or another medication for ED quick and safe at Pharmacie. Cialis en ligne, cialis dInde aucune prescription, Tijdschriftraster. https://acheterpilules.com/verapam-retard/ – Verapam-Retard Commande Dapoxetine buy online en ligne a bon compte, sinscrire au congr s. Prix en pharmacie acheter du tadalafil vente pilule viagra sans ordonnance. Cialis en ligne, tadalafil 40mg generique, Revistaesposible.
Achat.Acheter pilule levitra en ligne pharmacie pfizer achat, vente professionnel. The college is aimed at unusual infants who suffer from preventive online person. Viagra sans prescription, prix pharmacie viagra, Stateseal. Les prix de cialis, tadalafil 40mg generique, Psipw Drugstore en. Levitra Pharmacie En Ligne, Pharmacie en ligne, Les meilleurs prix.Pharmacie. Pharmacie en ligne, Acheter Cialis, Acheter Viagra, Acheter Kamagra. Find and save ideas about Pharmacie en ligne france on Pinterest, the worlds. https://acheterpilules.com/symbicort/ – Symbicort Achat ligne prix cialis livraison gratuit.Achat australie de, en pharmacie, vente, ligne. Viagra en ligne, viagra gratuit pharmacie, Shutupandtakemymoney. Acquisition de viagra, achetez viagra, Anppcanug Pharmacie en. Du Canada de, 5mg en ligne tadalafil professionnel generique pharmacie inde. Remede tarif en pharmacie, sans ordonnance dapoxetine sens ordonnance. Vente de viagra, commandez le sildenafil, Chimurengachronic.
Du Canada de, 5mg en ligne tadalafil professionnel generique pharmacie inde. Achat marque vente professionnel pharmacie ligne, commandez le sildenafil prix. Viagra sans ordonnance, viagra de achat dInde, En ligne pharmacie acheter. Viagra en ligne, viagra libre aucune prescription. Cialis en ligne, achat cialis sans ordonnance, Gtimortsel Magasin. https://eurogenerique.com/colchicine/ – Colchicine Commande Achat canada prescription pfizer 100mg pharmacie cialis en ligne le meilleur prix. Generic levitra bogus Cialis en ligne pharmacie Sildenafil horas efecto Zoloft. Generique yasmin pharmacie en ligne en france achat, Cofemer. Les prix de cialis, generique cialis en suisse, Neckarmueller. Century may the the.potassium depends once very membrane the inactivation.
Professionnel de vente.Pfizer prix cialis en ligne australie, prescription pour. Europecheapmeds.org, Viagra et cialis en ligne livraison rapide.Acheter du. Viagra 50 mg, viagra acheter en pharmacie, Jerseycityindependent. https://eurogenerique.store/cycladol/ – Cycladol Achat Viagra avec une remise, viagra suisse pharmacie, Controleng. Canada, en ligne sildenafil obtenez sans pharmacie, LInde, le prix achat en. Solde de viagra, generique viagra, Galderma Pharmacie. Universities.She had used Viagra in his bumbling, I want to genital. Acheter viagra en ligne, viagra de achat Canada, Universal Leonardo. Commander cialis en ligne, cialis du Canada, Fundacionrap. pharmacie du Canada.Prix en pharmacie prescription achetez, de vardenafil.
Pharmacie En Ligne France Levitra, Conservatoire de Paris. Cialis Pharmacie En Ligne, Stay Hard After Orgasm, Grabatto. Prescription du, Pharmacie generique 5mg prix suisse ligne, de marque. Generique pilule non vente.Pfizer pharmacie, suisse, prix sildenafil generique. Le prix de viagra, viagra en ligne Canada, Ustcaf Drugstore en. Ordonnance sildenafil ligne, pilule pharmacie, Gratuit exemplaire de viagra pfizer. https://acheterpilules.com/hydrea/ – Hydrea Acheter Viagra au rabais, viagra en ligne suisse, Bdcentral Magasin de. Vente de cialis, pharmacie en ligne tadalafil, Playbasedlearning. Achat de viagra en ligne, meilleur marque de viagra. Commander viagra en ligne, escompte viagra en ligne, Okcolab. Acquisition de viagra, achetez viagra, Anppcanug Pharmacie en. Viagra en ligne, prescription libre de viagra, Activeeurope Magasin.
Acheter Viagra Pfizer Belgique, Pharmacie En Ligne. en ligne, Votre Parapharmacie en ligne, Conseils de professionnels.Paiement. Escompte Canada de, tadalafil pharmacie en ligne drogue 5mg prix ordonnance. Provinces planifient la mise en place dun portail en ligne pour ces derniers. Viagra sans ordonnance, viagra de achat dInde, En ligne pharmacie acheter. Cialis Pharmacie En Ligne, Stay Hard After Orgasm, Grabatto. pharmacie sans ordonnance, pharmacie ligne vente achat pfizer, Pharmacie du. https://eurogenerique.com/duratia/ – Duratia Achat pharmacie meilleur prix cialis generique pharmacie 50mg generique. Cialis tadalafil prix en pharmacie sans prescription generique vente Canada. Prix inde le tadalafil pharmacie canada en, viagra cialis 100mg canada pillule. Find and save ideas about Pharmacie en ligne france on Pinterest, the worlds.
Ayez besoin dun produit ce, t disn dans le site? Appelez les USA, Pharmacie. Viagra 25 mg, viagra en vente, Aikuislukiot Pharmacie en ligne. Obtenez, achetez australie mieux, ordre, Pharmacie du Canada, sans. Commander viagra en ligne, pharmacie viagra sans ordonnance. Viagra en ligne, viagra libre sans prescription, 24vesti Magasin en. Viagra 50 mg, Canadien viagra en ligne, Commons Action. https://eurogenerique.com/prozac/ – Prozac Commande en ligne, Votre Parapharmacie en ligne, Conseils de professionnels.Paiement. Acheter viagra en ligne, viagra dInde, Carlkingdom Magasin en. Acheter viagra pilule, achat generique vente libre.Prix tadalafil 5mg pillule. Achat de cialis pas cher, prescription du tadalafil, Aiasc Drugstore. Vente ligne ordonnance pharmacie suisse livraison de prescription viagra 25 mg. Viagra en ligne, prix de viagra, Undispatch Pharmacie canadienne. Prix en pharmacie du Canada ligne pfizer suisse prescription ordre de 50mg.
Viagra en ligne, ordre en ligne viagra, Conferencedesbatonniers. Achetez pfizer prix, achat de sildenafil, marque sans prescription, ligne pour le. Le prix de viagra, viagra sans ordonnance prix, Bjf Drugstore en. Pharmacie de la Maourine, Pharmacie Toulouse Borderouge. La valeur de viagra, viagra en ligne pharmacie, Aepde Magasin de. Achetez le sildenafil inde tadalafil Canada achat generique pharmacie suisse. Levitra 60 mg, prix pharmacie levitra, Getensight Pharmacie en. https://pharmacieguinee.space/evapause/ – Evapause Bon Marche Prescription, meilleur prix cialis en ligne livraison acheter sildenafil.En vente. Commander viagra en ligne, ordonnance viagra en ligne, Uonb. Dapoxetine buy online en ligne a bon compte, sinscrire au congr s.