Що робить ця інтеграція
З’єднує GitHub з Intum так, що коли хтось відкриє чи змерджить pull request на GitHub, під пов’язаним завданням в Intum автоматично з’являється коментар. Умова одна: в описі PR-а має бути посилання на це завдання.
Автора PR-а (або особу, яка його змерджила) ми намагаємося призначити відповідному користувачу Intum за логіном GitHub, збереженим у профілі - завдяки цьому коментар з’являється «від цієї особи», а не анонімно.
Як це налаштувати
Усе налаштування ви зробите в одному застосунку в Intum, без втручання в код.
- У Налаштуваннях облікового запису перейдіть у Інтеграції та додатки і встановіть Інтеграція з GitHub (webhook-и PR). Після встановлення застосунок з’явиться у списку застосунків облікового запису.
- Відкрийте застосунок. Він сам згенерує випадковий секрет і покаже готову адресу webhook, яку потрібно вставити в GitHub.
- У репозиторії на GitHub перейдіть у Settings → Webhooks → Add webhook і заповніть:
- Payload URL - скопіюйте із застосунку в Intum.
-
Content type - виберіть
application/json. - Secret - вставте секрет, згенерований Intum (він буде збережений з обох боків і слугує для верифікації кожної вхідної події).
- Which events would you like to trigger this webhook? - виберіть опцію “Let me select individual events.” і позначте лише один чекбокс: Pull requests. Усі інші чекбокси зніміть, включно з позначеним за замовчуванням “Pushes”.
- Збережіть webhook у GitHub кнопкою Add webhook.
- Поверніться до застосунку в Intum і натисніть Створити конектор. Із цього моменту інтеграція активна.
Ви можете підключити кілька репозиторіїв - у кожному з них ви налаштовуєте окремий webhook, але всі вони вказують на ту саму адресу в Intum і використовують той самий секрет.
Як цим користуватися
В описі pull request-а вставте повне посилання на завдання в Intum, напр.:
https://twoja-firma.intum.com/organize/tasks/123
Ви можете вставити його в будь-якому місці опису, разом з іншим текстом - інтеграція шукає перше відповідне входження.
Що станеться далі:
- Після відкриття PR-а під завданням з’явиться коментар типу “Новий pull request , створений: <логін GitHub="">".логін>
- Після мерджу PR-а допишеться другий коментар: “Pull request , змерджений: <логін GitHub="">".логін>
- Звичайне закриття PR-а без мерджу, push до гілки, review тощо не створюють жодних коментарів.
Зіставлення автора PR-а з користувачем Intum
Щоб коментар був підписаний правильною особою, ця особа повинна мати заповнений свій логін GitHub у профілі в Intum (у розділі зовнішніх ідентифікаторів). Без цього коментар з’явиться зі стандартного технічного облікового запису “GitHub” - сам зміст (хто відкрив чи змерджив) буде правильним, але коментар не буде пов’язаний з конкретним обліковим записом Intum.
Безпека
Кожну подію, що надходить з GitHub, ми верифікуємо цифровим підписом, обчисленим із секрету. Якщо секрет у GitHub і в Intum розійдуться (напр. хтось згенерує новий на одному з боків), webhook-и перестануть прийматися до моменту вирівнювання.
У застосунку в Intum ви можете будь-коли згенерувати новий секрет - після його генерування потрібно той самий секрет вписати також у налаштуваннях webhook у GitHub.
Що робити, якщо не працює
-
Відкриваю PR і нічого не відбувається під завданням - переконайтеся, що в описі PR-а є посилання на конкретне завдання у форматі
https://twoja-firma.intum.com/organize/tasks/<numer>. Без посилання інтеграція не знає, до якого завдання дописати коментар. - GitHub показує помилку 401 при спробі доставки webhook (вкладка Recent Deliveries у налаштуваннях webhook) - секрет у GitHub і в Intum не ідентичні. Згенеруйте новий у застосунку Intum і перевставте його в GitHub.
- Коментар з’являється, але підписаний “GitHub” замість особи - автор PR-а не має вписаного свого логіну GitHub у профілі в Intum.
- Webhook не доходить взагалі - перевірте в GitHub вкладку Recent Deliveries: там є повна історія спроб з відповіддю сервера. Це допомагає швидко локалізувати, чи проблема на боці GitHub (напр. неправильний шлях), чи Intum (напр. неактивний конектор).