Цель
При коммите в git упоминаем в комментарии какую-либо задачу из Jira по имени, после чего происходит две вещи:
- в GitLab название задачи превращается в активную ссылку на нее в Jira
- в Jira к задаче добавляется комментарий со ссылками на коммит и пользователя, его совершившего, а также добавляется сам текст упоминания
Настройка
- Нам нужен пользователь Jira с правами уровня write. Можно использовать существующего, важно помнить, что все комментарии в Jira при упоминании задач из гита будут падать от имени этого пользователя, поэтому лучше создать нового, назвать его, скажем, GitLab, и добавить в Jira с правами write во все ваши проекты.
- Нам нужен GitLab пользователь с правами администратора в каждом из проектов, который мы будем подключать. Для каждого проекта интеграция настраивается отдельно.
- В GitLab открываем проект, заходим в Settings -> Integrations. Скроллим вниз, видим Project services c длинным списком сервисов, которые можно подключить.
- Находим в этом списке Jira, появляется форма
- Проставляем галочку Active, чтобы активировать связь.
- Как видно из формы, можно отдельно настроить нужное поведение для коммитов и merge-реквестов.
- Вводим Web URL вашей компании в Jira, например 'https://companyname.atlassian.net'
- Jira API url — заполняется, если у вас есть другой инстанс Jira, по умолчанию будет использоваться значение Web URL.
- Поля Username/Email и Password/Token заполняются соответственно тому, используете вы Jira Server или Jira Cloud. В случае Jira Server вы вводите Username и пароль пользователя, от имени которого будут добавляться комментарии. В случае Jira Cloud вы проставляете email и токен, который можно получить здесь.
- Поле Transition ID(s). Если вы хотите, скажем, чтобы при упоминании задачи она автоматически закрывалась, то в этом поле нужно прописать ID перехода в состояние closed. Этот ID можно получить по API:
https://companyname.atlassian.net/rest/api/2/issue/ISSUENAME-123/transitions
где ISSUENAME-123 — имя какой-нибудь задачи в нужном состоянии. Вы получите JSON c массивом transitions, из которого можно взять нужный id.
В результате в GitLab в Settings -> Integrations Jira теперь имеет зеленый индикатор:
и в меню проекта появится пункт Jira, который ведет в соответствующий проект в Jira:
Использование:
Когда пишем комментарий к коммиту (не важно, какой инструмент мы при этом используем для работы с git), можем добавить название задач в текстовом виде (без кавычек или каких-либо спецсимволов типа @)
bugfix XPROJECT-123, XPROJECT-124
в результате к соответствующей задаче упадет комментарий:
и в гитлабе появится активная ссылка:
Автор: Cuckooshka