JIRA 와 형상 관리 시스템을 연결했으면 커밋 메시지에 특정 문구를 넣으면 관련된 JIRA 이슈에 댓글을 달거나 시간을 기록하고 상태가 변경되도록 할 수 있으며 이 기능을 스마트 커밋이라고 부릅니다.

 

커밋 메시지의 문법은 아래와 같으며 COMMAND 는 3 가지를 지정할 수 있습니다.


<ignored text> <ISSUE_KEY> <ignored text> #<COMMAND> <optional COMMAND_ARGUMENTS>

ISSUE_KEY 는 TEST-123 처럼 스마트 커밋과 연결할 지라의 이슈 키를 적어주면 됩니다.

 

이슈에 코멘트 남기기

ISSUE_KEY 에 해당하는 JIRA 이슈에 커멘트를 남깁니다. 아래는 TEST-34 지라 이슈에 "corrected indent issue" 라는 커멘트를 남기게 됩니다.


TEST-34 #comment corrected indent issue

 

 

작업 시간 기록

time 키워드로 해당 JIRA 이슈에 작업 시간 기록을 남길수 있습니다.시간은 w, d, h, m 단위로 기록할 수 있으며 마지막에 커멘트를 적어주면 됩니다.

 

아래는 TEST-12 이슈에 "1주 3일 5시간 30분" 의 작업 기록을 남기고 "Total work logged" 라는 커멘트도 같이 남깁니다.


TEST-12 #time 1w 3d 5h 30m Total work logged

 

이슈 상태 전이(transition)

이슈의 상태를 전이할 경우 #뒤에 전이할 상태의 이름을 적어주면 됩니다.

transition 이름은 workflow 에서 확인할 수 있습니다.

아래의 workflow 그림에서 빨간 색으로 표시한 "Reopen Issue" 와 "Close Issue" 가 transition 이며 공백 뒤는 생략하고 #reopen 처럼 적어주면 됩니다. 

아래의 커밋 메시지는 TEST-23 이슈에 대해 "close issue" 상태로 전이하고 "Fixed this today" 라는 커멘트를 남깁니다.


TEST-23 #close #comment Fixed this today

 

많이 하는 실수가 JIRA 프로젝트의 work flow 를 확인하지 않고 커밋 메시지에 잘못된 이슈 상태를 적어주는 것입니다. 예로 칸반 프로젝트의 경우 Close 상태가 없으므로 close 라고 넣어도 전환되지 않습니다.

그래서 이슈 상세 화면에서 워크플로우를 확인하고 전환 상태 이름을 맞게 적어줘야 합니다.

 

아래와 같이 칸반 프로젝트는 Done 이 종료 상태를 의미하는 transition name 이므로 커밋 메시지에 다음과 같이 적어줘야 Done 상태로 전환됩니다.


TEST-23 #done #comment Fixed this today

 

만약 전환할 이슈 상태가 "In Progress" 같이 공백이 있는 경우 공백을 dash(-) 로 치환해서 커밋 메시지에 적어주면 됩니다.


TEST-23 #in-progress #comment 이슈를 진행중 상태로 변환합니다.

 

Ref