Всем привет!
Потребовалось настроить интеграцию Jira и Gitlab.
- Jira — 11.3.1 (self-hosted)
- Gitlab — 18.8.4 (self-gosted)
Конечная цель эксперимента: создание задачи —> автоматический запуск pipeline в Gitlab, отображение статусов стадий (stages) в задаче, добавление ссылки на pipeline.
Gitlab
- создаем нового пользователя:
1 | Admin -> Users -> New user |
- добавляем созданного пользователя в проект с ролью Maintainer
1 | Project -> Manage -> Members |
JIRA
Войти под админской учеткой. Далее, шестеренка — Applications

Далее, Integrations — Application links

Там уже Create link

Там уже
- Application type — External application
- Direction — Outgoing
Continue

В Configure an outgoing link
Grant type — Authorized code

Service provider — Custom

В открывшейся форме надо заполинть поля. Тут будет момент, когда надо будет перейти в Gitlab.

Заполнить поля:
| Authorization endpoint | [ваш_gitlab_url]/oauth/authorize |
| Token endpoint | [ваш_gitlab_url]/oauth/token |
После заполнения полей нажать на Generate в поле Redirect URL
Пример:

После нажатия Generate сформируется ссылка на Jira

Возвращаемся в Gitlab. Здесь ничего не закрываем, т.к. нам понадобятся данные оттуда.
Авторизируемся под ранее созданным пользователем в браузере. Переходим User — Prefences (справа вверху)

Там уже в Applications

Тут Add new application

Заполнеям поля:
- Name — произвольное, понятное название. Например, Jira DVCS
- Redirect URI — копируем из Jira ссылка из поля Redirect URL и вставляем здесь
- Confidential — отметить
- Scopes — отмечаем только api
Пример:

Нажать Save aaplication.
Появится окно со свойствами созданного приложения.

Здесь копируем и вставляем в Jira в раздел Application Details:
- Appication ID — Client ID
- Secret — Client secret
- Scope — api

Послу чего нажать Save.
Теперь в Jira в Application links должна появиться ссылка.

Если нажать на … то откроется меню

Для проверки можно выбрать любой пункт.
Go to remote — откроет новое окно с Gitlab.
Test connection — так же откроет новое окно с Gitlab, но после авторизации произоейдет редирект обратно в Jira, где потом будет сообщение об успешном соединении.

Далее тут же в Jira перейти в DVCS accounts.

Далее, Link an account
- Host — Gitlab Self-Managed
- Group Name — [имя_пользователя_из_gitlab]
- Host URL — [ваш_gitlab_server]
- Client Configuration — [должно_быть_из_application links созданного выше]
отметить (если автоматом не отмечаено) если надо
- Auto Link Mew Repositories
- Enable Smarts Commits
Нажать Add.
После должно появиться что-то типа такого:

Настройка закончена.
У нас в Gtilab и Jire проекты называются одинаково. Это одно из условий для обмена данными.
Например, проект в Jira называется PROJECT-01 и в Gitlab репозиторий так же называется.
И теперь в задачах этого проекта я вижу связанные элменты из Gitlab, которые ссылаются на название проекта.
К сожалению, приложить скрины не могу, т.к. репозитории приватные.
Дальнейший поиск информации и чтение всякого показал, что полная интеграция Jira с Gitlab возможна только:
- в Jira Cloud
- купить плагин в datacenter версии (один, который как будто бы обещает 2-х стороннюю синхронизацию, стоит 3’385$ в год).
Т.ч. пока в процессе поиска обходных путей…
[материал дополняется]
Ссылки:
If you found an error, highlight it and press Shift + Enter or to inform us.