Инструкция по настройке интеграций с 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 закончена.
Дополнительные параметры настройки
После основной настройки связки вы можете настроить дополнительные действия или инструменты. Для этого нажмите в “+” и выберите необходимый шаг, который необходимо совершить системе.
Вы также можете настроить фильтр входящих данных. О том, как он работает, можно подробно прочитать здесь.
Такая отрасль, как современная медицина развивается очень стремительно в настоящее время. Только за последние несколько лет в ней было совершено массу открытий, помогающих спасать человеческие жизни. Роль медицины сложно переоценить, особенно сейчас, когда начали появляться неизвестные ранее заболевания, и с ними необходимо бороться любой ценой.
Защита человека
Все направления в медицине важны для людей. Специалисты нередко связыват сразу несколько в одну. К ним смело можно отнести наркологию, это так называемая отрасль психиатрии, которая исследует систему возникновения, развития и процесса лечения разных зависимостей от вредных веществ.
Каждый человек может в любой из пагубной привычки получить вполне серьезную зависимость. Существует некий список самых опасных и известных:
” алкоголизм;
” наркомания;
” табакокурение;
” лудомания;
” зависимость от компьютера.
Пбороть такие недуги достаточно сложно, поэтому рекомендуется обращаться к доктору исключительно с большим опытом работы и который сейчас практикует, а также имеет степень психолога.
Обратиться за наркологической помощью сегодня несложно, так как существует много лечебных учреждений, где предлагают такие услуги. Среди них выделяются специализированные медицинские центры, предоставляющие полный комплекс услуг в данной области. Как правило, в заведениях подобного профиля работают специалисты, имеющие значительный опыт работы и способные оказать клиентам квалифицированную помощь.
Профессионал высокого уровня знает, что в работе использовать только медикаментозные методы лечения неэффективно, важно подключать и психологические. Психологический основан на воздействии на психику человека. Для того чтобы воздействие было действительно эффективным, главное большое желание потенциального пациента. ВМедикаментозный метод используют доктора в том случае, когда первый не дал желаемого результата или больной попросил начать именно с него.
Также существуют такие главные направления работы таких учреждений:
” центр лечения алкоголизма спб
” психиатрия;
” психотерапия;
” разработка программ восстановления от наркомании и алкоголизма;
” клинические исследования.
Обратите внимание на то, что как правило, пациента принимают в условиях строгой анонимности. также нередко врач-нарколог выезжает на вызов по адрезу нахождения пациента, что очень удобно.
Благородная миссия
Практически каждая женщина тщательно следит за своим репродуктивным здоровьем. Чрезвычайно важен этот вопрос и для общества в целом, так как от него зависит его развитие.
Гинекология – как раз тот раздел медицины, который занимается исключительно лечением болезней, характерных только для женского организма. Основная задача – дать женщине увереность в том, что она сможет забеременить, выносить ребенка и родить.
Самые лучшие условия предоставления услуг в настоящее время пациент найдет в современных специализированных частнх клиниках. Все доктора имеют высокую квалификацию, накопленный практической работой опыт. Кроме того, оборудование таких клиник во многих случаях находится на уровне мировых стандартов и позволяет успешно внедрять самые передовые методы лечения заболеваний.
Еще одним преимуществом обращения в такой медицинский центр является то, что в нем практикуют все “женские” врачи:
” гинеколог;
” эндокринолог;
” невролог;
” маммолог;
” терапевт.
Благодаря большому спросу со сторону пациенток женского рода, здесь можно не только готовиться к беременности, а также вести ее у одного из докторов на протяжении всего периода.
Также часто в такие клиники обращаются те, кому необходимо пройти обследование и последующее лечение от заболеваний, которые передаются половым путем. В заведении можно пройти анонимное обследование на предмет выявления половых инфекций, а также имеются тесты для комплексного обследования.
Во время прохождения лечения в стационаре пациентки обеспечиваются всем необходимым.Комфортные помещения, где есть вся необходимая мебель, а в таких условиях и реабилитироваться получится в несколько раз быстрее. Как правило, лечебный персонал таких клиник стремится установить с больными доверительные личные отношения. Не стоит переживать по поводу того, что какая-либо информация будет обнародована лечащим врачом.
Главными достоинствами подобных гинекологических центров принято считать:
” высококвалифицированные сотрудники;
” все виды анализов в одном месте;
” гарантии и правовая поддержка;
” конфиденциальность процесса лечения;
” круглосуточная информационная поддержка.
Стоимость предоставляемых в данных центрах услуг не является заоблачной – она обоснована и прозрачна.