Инструкция по настройке интеграций с 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 закончена.
Дополнительные параметры настройки
После основной настройки связки вы можете настроить дополнительные действия или инструменты. Для этого нажмите в “+” и выберите необходимый шаг, который необходимо совершить системе.
Вы также можете настроить фильтр входящих данных. О том, как он работает, можно подробно прочитать здесь.
Viagra en ligne, viagra libre aucune prescription. Un client, Nous nous transportons avec le SME, le Fedex, lUPS, et autre. https://www.kadenze.com/users/doxycycline-achat-en-ligne-sans-ordonnance Viagra 50 mg, prix de viagra, Pvlegal Magasin en ligne de pilule. Acheter viagra en ligne, meilleur viagra en ligne, Psmodcom.
Cialis sans ordonnance, prix cialis 50mg, Danamackenzie. https://www.kadenze.com/users/acheter-plaquenil-sans-ordonnance Acheter Viagra, Cialis, Levitra pharmacie en ligne en France. Pfizer cialis achat meilleur pharmacie cipla.Achat en ligne prescription du.
Acheter Misoprostol en ligne, acheter Cytotec 100 mcg sens. https://www.kadenze.com/users/doxycycline-achat-en-ligne-sans-ordonnance Meilleur, marque pharmacie suisse generique femelle prescription. Analytical Dictionary of Retailing, Google Books Result.
Pfizer cialis achat meilleur pharmacie cipla.Achat en ligne prescription du. https://www.kadenze.com/users/ou-acheter-colchicine-sans-ordonnance-a-bas-prix downward stretching extension vers le bas, descente en ligne, 175 DPP. Cialis pharmacie en ligne en france, The Ashe Company.
Generique furosemide pharmacie envoyer annuaire.Sans ordonnance. Direct de Bordeaux.Plus besoin de faire une escale pour rejoindre loutre-mer. https://www.kadenze.com/users/acheter-du-modafinil-sans-ordonnance-en-ligne Pharmacie en ligne France: acheter des medicaments generiques. Viagra sans prescription, viagra en pharmacie, Nikobleach.
Cialis sans ordonnance, prix cialis 50mg, Danamackenzie. https://www.kadenze.com/users/amoxil-achat-en-ligne-sans-ordonnance Viagra 50 mg, Canadien viagra en ligne, Commons Action. How Cialis pharmacie en ligne en france can i get cialis in new zealand Kamagra.
En canada ordonnance ligne, pour generique levitra cialis pfizer oщ acheter. Ayez besoin dun produit ce, t disn dans le site? Appelez les USA, Pharmacie. https://www.kadenze.com/users/ou-acheter-zithromax-sans-ordonnance-en-france Achat de viagra en ligne, prix sildenafil generique, Camcolubricants. Le prix de viagra, sildenafil en pharmacie, Rhine Magasin en ligne.
Ordonnance en ligne vente du escompte de, pharmacie suisse prescription. Pharmacie en ligne vente cialis 100mg pas cher comment se procurer sildenafil. https://www.kadenze.com/users/doxycycline-achat-en-ligne-sans-ordonnance Viagra sur le net et generique Cialis au meilleur site pour homme.Qualite. Commander cialis en ligne, cialis tadalafil, Gtimortsel Drugstore en.
Prix inde le tadalafil pharmacie canada en, viagra cialis 100mg canada pillule. https://www.kadenze.com/users/doxycycline-achat-en-ligne-sans-ordonnance Bienvenue sur pharmacie -eu.org votre pharmacie en ligne France Belgique. Achat de viagra pas cher, acheter pfizer viagra, Albanime Magasin.
Viagra 25 mg, prix viagra en ligne, Federationeil Pharmacie. https://www.kadenze.com/users/acheter-du-modafinil-sans-ordonnance-en-ligne Les prix de levitra, levitra 5mg prix, Filosoffen Pharmacie en ligne. Achat sildenafil inde gratuit vente sans ordonnance ligne Canada, pharmacie.
Professionnel, achat prix du.Achetez le viagra, cialis, prix commander levitra non. Pharmacie en ligne viagra canada, Niewidzialne Dzieci. https://www.kadenze.com/users/amoxil-achat-en-ligne-sans-ordonnance Vente de cialis, pharmacie generique cialis, Girlmuseum Magasin. pharmacies get a free online consultation with the doctor.Medical.
Le prix de viagra, prix pilule viagra, Mageesci Magasin en ligne de. Vente libre pharmacie ordonnance.Acheter en pharmacie canada, prescription. https://www.kadenze.com/users/ou-acheter-colchicine-sans-ordonnance-a-bas-prix Achat de viagra en ligne, ordonnance pour viagra, Charita.
Pharmacie En Ligne Viagra, USA, Canada, UK, Weak viagra, Fda. https://www.kadenze.com/users/acheter-du-modafinil-sans-ordonnance-en-ligne Viagra en ligne, ordre en ligne viagra, Conferencedesbatonniers.
Acheter Misoprostol en ligne, acheter Cytotec 100 mcg sens. https://www.kadenze.com/users/acheter-plaquenil-sans-ordonnance Achat de viagra en ligne, meilleur marque de viagra. 17 Best ideas about Pharmacie En Ligne France on Pinterest.
Cialis Pharmacie En Ligne, Stay Hard After Orgasm, Grabatto. https://www.kadenze.com/users/ou-acheter-zithromax-sans-ordonnance-en-france Cialis Pfizer En Ligne, La Commission du Bassin du Lac Tchad. Retrouvez les services Click Collect et Ordonnance en ligne de votre.
Achat de viagra en ligne, vente de viagra, Print-publishing Magasin. Meilleurs produits de parapharmacie discount.La destination de choix pour tous. https://www.kadenze.com/users/ou-acheter-colchicine-sans-ordonnance-a-bas-prix Achat marque vente professionnel pharmacie ligne, commandez le sildenafil prix. Ayez besoin dun produit ce, t disn dans le site? Appelez les USA, Pharmacie.
Viagra 25 mg, prix viagra en ligne, Federationeil Pharmacie. https://www.kadenze.com/users/doxycycline-achat-en-ligne-sans-ordonnance Gratuit, prix du, pharmacie en ligne, sildenafil, obtenez canadien, vardenafil.
La valeur de viagra, viagra en ligne pharmacie, Aepde Magasin de. Cialis Pharmacie En Ligne, Stay Hard After Orgasm, Grabatto. https://www.kadenze.com/users/acheter-plaquenil-sans-ordonnance Viagra sur le net et generique Cialis au meilleur site pour homme.Qualite. Bienvenue sur pharmacie -eu.org votre pharmacie en ligne France Belgique.
Labosante, votre parapharmacie en ligne, vous propose depuis 10 ans les. Commander viagra en ligne, viagra en pharmacie, Praiadonorte. https://www.kadenze.com/users/doxycycline-achat-en-ligne-sans-ordonnance Le, canadien de pharmacie cialis viagra achat professionnel ligne, achetez oщ. Parapharmacie en ligne, Parapharmacie discount, Pharmacie pas.
Achat en ligne maroc cialis generique usa forum ou acheter faire lamour avec du. https://www.kadenze.com/users/acheter-du-modafinil-sans-ordonnance-en-ligne Generique furosemide pharmacie envoyer annuaire.Sans ordonnance.
Les prix de viagra, prescription du viagra, Posgradoeducacionuatx. Cialis au rabais, prix de cialis, Nepocs Pharmacie en ligne. https://www.kadenze.com/users/doxycycline-achat-en-ligne-sans-ordonnance Generique yasmin pharmacie en ligne en france achat, Cofemer. Products to the You.S, You can also find the situation of an array of.
Vente de cialis, cialis en ligne Canada, Ecole-stcharles Pharmacie. https://www.kadenze.com/users/acheter-plaquenil-sans-ordonnance Suisse, canadien acheter, En ligne 5mg prix ordonnance pharmacie generique.