10 May 2019

Интеграция Jira с GitLab

IT Infrastructure

Цель


При коммите в git упоминаем в комментарии какую-либо задачу из Jira по имени, после чего происходит две вещи:

  • в GitLab название задачи превращается в активную ссылку на нее в Jira

  • в Jira к задаче добавляется комментарий со ссылками на коммит и пользователя, его совершившего, а также добавляется сам текст упоминания

Настройка


  1. Нам нужен пользователь Jira с правами уровня write. Можно использовать существующего, важно помнить, что все комментарии в Jira при упоминании задач из гита будут падать от имени этого пользователя, поэтому лучше создать нового, назвать его, скажем, GitLab, и добавить в Jira с правами write во все ваши проекты.
  2. Нам нужен GitLab пользователь с правами администратора в каждом из проектов, который мы будем подключать. Для каждого проекта интеграция настраивается отдельно.
  3. В GitLab открываем проект, заходим в Settings -> Integrations. Скроллим вниз, видим Project services c длинным списком сервисов, которые можно подключить.

  4. Находим в этом списке 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

в результате к соответствующей задаче упадет комментарий:



и в гитлабе появится активная ссылка:

image
Tags:gitlabjira
Hubs: IT Infrastructure
+13
13.2k 57
Comments 5