Налаштування інтеграції Бітрікс24 з GitLab

Наша компанія займається розробкою, підтримкою та обслуговуванням рішень на Бітрікс та Бітрікс24 будь-якої складності. Від простих односторінкових сайтів до складних інтернет-магазинів, CRM систем з інтеграцією 1С та телефонії. Досвід розробників підтверджено сертифікатами від вендора.
Пропоновані послуги
Показано 1 з 1 послугУсі 1626 послуг
Налаштування інтеграції Бітрікс24 з GitLab
Проста
~1 робочий день
Часті питання

Наші компетенції:

Етапи розробки

Останні роботи

  • image_website-b2b-advance_0.png
    Розробка сайту компанії B2B ADVANCE
    1262
  • image_bitrix-bitrix-24-1c_fixper_448_0.png
    Розробка веб-сайту для компанії ФІКСПЕР
    851
  • image_bitrix-bitrix-24-1c_development_of_an_online_appointment_booking_widget_for_a_medical_center_594_0.webp
    Розробка на базі Бітрікс, Бітрікс24, 1С для компанії Development of an Online
    585
  • image_bitrix-bitrix-24-1c_mirsanbel_458_0.webp
    Розробка на базі 1С Підприємство для компанії МИРСАНБЕЛ
    751
  • image_crm_dolbimby_434_0.webp
    Розробка сайту на CRM Бітрікс24 для компанії DOLBIMBY
    657
  • image_crm_technotorgcomplex_453_0.webp
    Розробка на базі Бітрікс24 для компанії ТЕХНОТОРГКОМПЛЕКС
    989

Налаштування інтеграції Бітрікс24 з GitLab

Розробники ведуть код в GitLab, менеджери — завдання у Бітрікс24. Merge request висить на ревю третій день, а в Б24 завдання помічене як «В роботі» — менеджер думає, що розробник ще пише код. CI/CD pipeline упав на staging, але про це дізнаються лише коли QA пише «нічого не працює». Без системи між GitLab та Б24 дві системи живуть паралельно, і координація відбувається через чат — ненадійно та повільно.

Архітектура інтеграції

Інтеграція працює через GitLab Webhooks та Б24 REST API. GitLab дозволяє налаштовувати вебгуки на рівні проекту або групи (Settings → Webhooks). Middleware отримує события, витягує дані та транслює їх в Б24.

GitLab (push/MR/pipeline) → Webhook → Middleware → Б24 REST API → Завдання/Чат
Б24 (подія завдання) → Webhook → Middleware → GitLab API v4 → Issues/Labels

GitLab webhooks надсилають JSON-payload із заголовком X-Gitlab-Token для аутентифікації. Middleware перевіряє маркер при кожному запиті.

Сповіщення в Б24

Middleware маршрутизує события GitLab до чатів та завдань Б24:

Подія GitLab Дія в Б24 Одержувач
Push Events Повідомлення в чат проекту Учасники проекту
Merge Request Events Сповіщення + оновлення статусу завдання Відповідальна особа
Pipeline Events Повідомлення в чат проекту Учасники проекту
Note Events (коментарі) Коментар в прив'язаному завданні Виконавець
Release Events Повідомлення в загальний чат Усі
Deployment Events Коментар у завданні + сповіщення QA, менеджер

Повідомлення форматуються BB-кодами: посилання на MR, pipeline, коміти. Для pipeline middleware указує статус (success, failed, canceled) та тривалість.

Прив'язка merge requests до завдань

Розробник указує ID завдання Б24 у описі MR або у назві гілки: feature/B24-2103-payment-gateway. Middleware витягує ID і з'єднує MR із завданням.

Життєвий цикл MR відображається у статусі завдання:

  1. MR створений → завдання переходить на «На ревю». Middleware викликає tasks.task.update.
  2. MR отримав approve (Approval Rules) → завдання переходить на «Ревю пройдено».
  3. MR змерджений → завдання переходить на «Виконано» або «На тестуванні».
  4. MR закритий → завдання повертається в «В роботі».

Middleware відстежує ці события через webhook trigger Merge Request Events та поле payload object_attributes.action (open, close, merge, approved).

Статус CI/CD у завданнях

Статус pipeline — одна з ключових метрик для менеджера. Middleware додає інформацію про pipeline до завдання Б24:

  • Pipeline пройдений → коментар у завданні: «CI/CD пройдено, комбіт {sha}, гілка {ref}». Користувацьке поле UF_CI_STATUS = passed.
  • Pipeline упав → коментар із указанням упалої стадії та посиланням на лог. Сповіщення автору коміту в DM.
  • Pipeline для MR → статус відображається в коментарі до завдання поряд із інформацією про MR.

Для деталей pipeline middleware викликає GitLab API: GET /api/v4/projects/{id}/pipelines/{pipeline_id}/jobs — список jobs зі статусами та логами.

Синхронізація завдань Б24 та GitLab Issues

За необхідності middleware синхронізує завдання Б24 з GitLab Issues:

Поле Б24 Поле GitLab Issue Примітка
TITLE title Пряма відповідність
DESCRIPTION description HTML → Markdown
RESPONSIBLE_ID assignee_ids Через відображення користувачів
PRIORITY labels (priority::*) Scoped labels
STATUS labels (workflow::*) Scoped labels
GROUP_ID (проект) project_id Таблиця відповідностей

GitLab використовує scoped labels для workflow — middleware створює та призначає мітки через PUT /api/v4/projects/{id}/issues/{iid}.

Деплой-трекинг

GitLab Environments та Deployments API надають інформацію про те, куди та коли був розгорнутий код:

  • Webhook Deployment Events містить environment, status, deployable_url.
  • Middleware записує до завдання: «Розгорнуто на {environment}, URL: {url}».
  • Для production-деплоїв — окреме сповіщення до каналу релізів.

Аутентифікація

  • GitLab: Project Access Token або Personal Access Token з областю api. Для self-hosted GitLab — той же механізм, але з кастомним URL.
  • Б24: OAuth 2.0 з областю task,im,user.
  • Webhook secret token зберігається в middleware та перевіряється при кожному входящому запиті через заголовок X-Gitlab-Token.

Що ми реалізуємо

  • Middleware для з'єднання проектів GitLab з завданнями та чатами Б24
  • Сповіщення про push, merge requests, pipeline та деплої
  • Автоматичне оновлення статусів завдань протягом життєвого циклу MR
  • Відображення CI/CD-статусу у завданнях Б24
  • Двосторонню синхронізацію завдань Б24 та GitLab Issues
  • Деплой-трекинг із сповіщеннями за середовищами