설치형 지라(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 를 클릭합니다.
설정화면에서 동작과 연결에 필요한 여러 설정을 해줍니다.
- 커밋 메시지로 JIRA transition 을 수행합니다.
- 연결할 JIRA URL 을 설정합니다.
- 위에서 만든 계정명을 입력합니다.
- 암호를 입력합니다.
- 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