Перейти до вмісту
Intum — Довідковий центр

GitHub - автоматичні коментарі під завданнями при pull request-ах

Оновлення: 3 хв читання

Що робить ця інтеграція

З’єднує GitHub з Intum так, що коли хтось відкриє чи змерджить pull request на GitHub, під пов’язаним завданням в Intum автоматично з’являється коментар. Умова одна: в описі PR-а має бути посилання на це завдання.

Автора PR-а (або особу, яка його змерджила) ми намагаємося призначити відповідному користувачу Intum за логіном GitHub, збереженим у профілі - завдяки цьому коментар з’являється «від цієї особи», а не анонімно.

Як це налаштувати

Усе налаштування ви зробите в одному застосунку в Intum, без втручання в код.

  1. У Налаштуваннях облікового запису перейдіть у Інтеграції та додатки і встановіть Інтеграція з GitHub (webhook-и PR). Після встановлення застосунок з’явиться у списку застосунків облікового запису.
  2. Відкрийте застосунок. Він сам згенерує випадковий секрет і покаже готову адресу webhook, яку потрібно вставити в GitHub.
  3. У репозиторії на 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”.
  4. Збережіть webhook у GitHub кнопкою Add webhook.
  5. Поверніться до застосунку в 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 (напр. неактивний конектор).

Чи була ця інформація корисною?

Поділитися

Коментарі