Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Table of Contents
minLevel1
maxLevel7

Tip

JQL 활용 예제입니다. JQL 문법은 🔎 JQL(JIRA Query Language) 로 JIRA Issue(지라 이슈) 검색하기 #1 을 참고하세요.

Warning

JIRA Cloud 는 GDPR(General Data Protection Regulation) 때문에 lesstif 같은 사용자 ID 를 직접 지정할 수 없습니다.

jql 입력시 사용자의 정보가 필요할 경우 Atlassian 의 ID 형식을 사용해야 합니다.

담당자

내가 담당한 이슈

Code Block
languagesql
project = myproj AND assignee = currentUser() 

...

내가 담당인 이슈중에 해결되지 않은 이슈를 마감 기한과 우선 순위로 정렬하는 경우입니다.

Code Block
languagesql
assignee = currentUser() and resolution = Unresolved order by due, priority

...

지난 주에 저에 의해 완료 상태로 변경된 이슈들을 변경일은 오름차순, 우선순위는 내림차순으로 표시하는  JQL입니다.

Code Block
languagesql
status changed to Done during (startofweek(-1) ,  endofweek(-1)) by lesstif order by updated, priority

...

Worfklow 에 따라 완료 상태 이름이 Done 이 아닐수 있는데 위 쿼리는 그런 경우 원하는 데이터가  제외되므로 status 가 아닌 resolution 필드를 사용하면 됩니다.

Code Block
languagesql
resolution changed to Done during (startofweek(-1) ,  endofweek(-1)) by lesstif order by updated, priority

...

모든 담당 이슈를 한 주안에 다 처리해서 완료 상태로 전환할 수 없을 텐데 위의 JQL 은 진행중 업무는 빠질 우려가 있습니다.

상태를 바꾼 모든 이슈를 표시하려면 to 구문을 제외하고 검색하면 됩니다.

Code Block
languagesql
status changed during (startofweek(-1) ,  endofweek(-1)) by  lesstif () order by updated, priority

Tip

상태를 바꾸지 않고 comment 가 추가된 경우 위 JQL 에는 나오지 않습니다.

기본 JQL 로는 특정 기간내에 comment 추가 여부를 확인할 수 없으며 Custom Field 를 만들고 Automation 으로 처리해야 합니다.

팀 주간 업무 이력

JIRA 이슈를 열심히 기록했으면 팀 주간 업무 보고로 JQL 을 바로 활용할 수 있습니다. 

팀이므로 상태 변경자를 팀원들을 명시하면 되는데 여럿을 지정할 경우 by 뒤에 괄호로 사용자 id 를 넣어주면 됩니다.

상태 변경자 다수 지정

다음은 지난 주에 지정한 3명이 상태를 변경한 이슈 목록을 나열합니다.

Code Block
languagesql
resolution changed to Done during (startofweek(-1) ,  endofweek(-1)) by (lesstif, qa-leader, sys-auditor) order by updated, priority

...

다음은 awesome-project 그룹 멤버가 지난 주에 상태 변경한 이슈를 나열합니다.

Code Block
languagesql
resolution changed to Done  during (startofweek(-1) ,  endofweek(-1)) by (membersOf('awesome-project')) order by updated, priority
Note

by 구문 뒤에 membersOf 함수를 사용할 경우 () 로 둘러싸야 제대로 결과가 나옵니다.

월간 업무 이력

지난 달에 내가 완료 상태로 변경한 이슈들은 주간 업무 보고를 활용하여 startOfMonth, endOfMonth 함수를 사용하면 됩니다.

Code Block
languagesql
status changed to "done" during (startOfMonth(-1) ,   endOfMonth (-1)) by lesstif order by updated, priority

...

마찬가지로 상태 변경한 모든 이슈는 to status 를 빼면 됩니다.

Code Block
languagesql
status changed during (startOfMonth(-1) ,   endOfMonth (-1)) by lesstif order by updated, priority

...

팀의 월간 업무 이력도 쉽게 파악 가능합니다.

Code Block
languagesql
resolution changed to Done during (startOfMonth(-1) ,   endOfMonth (-1)) by (membersOf('awesome-project')) order by updated, priority

...

만약 올해 업무를 회고한다면 month 를 year 로 변경하고 파라미터는 주지 않으면 됩니다.

Code Block
languagesql
status changed during (startofyear() ,  endofyear()) by  lesstif order by updated, priority

...

지난 해의 업무는 -1 을 파라미터로 주면 확인할 수 있습니다.

Code Block
languagesql
status changed during (startofyear(-1) ,  endofyear(-1)) by  lesstif order by updated, priority

...

작년에 수행한 업무중 완료 상태로 변경한 이슈를 출력합니다.

Code Block
languagesql
status was in ("Resolved", Done, Closed) by lesstif during (startOfYear(-1), endOfYear(-1)) order by updatedDate 

...

2020-04-06 부터 2020-04-13 까지 주간 업무를 위해서 다음과 같이 주간 업무를 작성했다고 가정해 봅시다.

Code Block
languagesql
resolution changed to Done  during (startofweek(-1) ,  endofweek(-1)) by (membersOf('awesome-project')) order by updated, priority

이 JSQL 은 2020-04-16 에 조회하는 것과 2020-07-15 등 조회하는 날자에 따라서 결과가 달라지는 문제가 있습니다.

이런 문제를 해결하려면 주간이나 월간 업무 공유는 date function 을 사용하지 말고 아래처럼 날자를 고정시키는게 좋습니다.

Code Block
languagesql
resolution changed to Done during ('2020-04-06' , '2020-04-13') by (membersOf('awesome-project')) order by updated, priority

...

특정 이슈의 하위 이슈(Subtask) 검색

Code Block
languagesql
project = myproj AND parent = TEST-1234

...

이렇게 투표 기능을 사용해서 고객의 요구 사항을 수집해서 제품에 반영하는 것은 좋은 방법이며 아래 JQL 로 투표수 높은 이슈를 출력할 수 있습니다.

Code Block
languagesql
status not in (Resolved, Closed, done) and votes  > 0 order by votes, createdDate 

...