설치형 지라(Server/Data Center)를 사용할 경우 gitlab 을 연동해서 사용하는 방법에 대해서 설명합니다.

설치형 JIRA 와 gitlab community version은 매끄럽게 연결되지 않습니다. gitlab 을 premium 을 사용하거나 Bit Bucket 을 사용하는 것을 권장합니다.


JIRA 설정

gitlab 계정 생성

관리자 권한으로 Jira cloud에 연결한 후에 상단의 설정을 클릭하고 "사용자 관리"를 선택합니다.

gitlab 이라는 이름의 계정을 생성하고 "gitlab-developers" 라는 그룹을 생성한 후에 gitlab 계정을 gitlab-developers 그룹에 속하도록 설정합니다.


permission scheme 생성

관리자 설정에서 이슈  → "권한 계획(Permission scheme)" 메뉴에 들어간 후에 권한명 옆의 "사용 권한" 을 클릭합니다.


권한 설정 화면에서 우측 상단의 "권한 허가" 메뉴를 클릭합니다.


권한 허가 창에서 권한명은 "프로젝트 관리(Administer Projects)" 를 선택하고 그룹은 위에서 생성한 gitlab-developers 를 선택합니다.



gitlab 설정

JIRA 설정이 완료되면 gitlab 에 로그인 한 후에 연결할 프로젝트로 들어갑니다.

프로젝트의 Settings  → Integration  메뉴에 들어갑니다.

app 목록에서 Jira 를 클릭합니다.


설정화면에서 동작과 연결에 필요한 여러 설정을 해줍니다.

  1. 커밋 메시지로 JIRA transition 을 수행합니다.
  2. 연결할 JIRA URL 을 설정합니다.
  3. 위에서 만든 계정명을 입력합니다.
  4. 암호를 입력합니다.
  5. Test settings  를 클릭하고 정상적으로 연결되면 Save changes  를 클릭합니다.

저장하고 다시 Integration  화면에 들어가면 JIRA 가 설정된 것을 확인할 수 있습니다.




사용

JIRA server 와 gitlab 간 연동은 gitlab 이 커밋 메시지에 Issue Key 가 있을 경우 JIRA 에 REST API 로 요청하는 형식으로 동작하므로 JIRA 에서는 정상 연결 여부를 확인할수 없습니다.

대신 직접 커밋을 해 봐야 정상 동작 여부를 알 수 있습니다.

브랜치 연결

둘 간의 연계는 gitlab 에서 이벤트 발생시 REST API 를 호출하는 방식이라 통합 기능이 미약합니다.

그래서 JIRA Server 와 gitlab 간 브랜치 연결은 제공되지 않습니다.


Commit 연결

커밋시에 이슈 키를 추가하면 이슈 별 커밋 내역을 확인할 수 있습니다.

예로 아래와 같은 수정을 하고 커밋시에 이슈 키와 수정 사항을 커밋 메시지로 입력하고 push 까지 해보겠습니다.

그런후에 이슈 상세 화면을 보면 댓글과 mention 에 커밋 내역이 연결된 것을 확인할 수 있습니다.


Issue status transition

gitlab premium plan 이어야 동작하는 기능입니다.


커밋 메시지에 전환할 Issue 상태를 기술하면 이슈 상태도 변경할 수 있습니다.

예로 다음과 같이 전환할 상태인 Done 을 넣고 #comment 태그 뒤에 댓글로 남길 메시지를 넣으면 이슈가 종료 상태로 전환되고 댓글로 "응답 메시지에 현재 시간 추가 " 가 남게 됩니다.

KANTEST-19 #done #comment 응답 메시지에 현재 시간 추가
CODE

스마트 커밋시 자주 하는 실수로 work flow 에 없는 상태명(예: close) 를 넣는 것입니다. 이슈의 work flow를 확인해서 적절한 상태명을 넣어주세요.

그리고 이슈 상세 화면을 보면 이슈 상태가 완료로 변경된 것을 확인할 수 있습니다.


전환할 이슈가 "IN Progress" 나 "Selected for Development" 같이 공백이 있을 경우 공백을 대쉬(-) 로 치환해서 커밋 메시지에 적어주면 됩니다.

AA-26 #in-progress #comment 날자 출력시 안내 메시지를 한글로 변경
CODE


같이 보기

Ref