TL;DR

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

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

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


담당자

내가 담당한 이슈

project = myproj AND assignee = currentUser() 
SQL


담당 이슈중 미해결 이슈

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

assignee = currentUser() and resolution = Unresolved order by due, priority
SQL


업무 이력 조회

내 주간 업무 이력

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

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


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

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


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


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

status changed during (startofweek(-1) ,  endofweek(-1)) by  lesstif () order by updated, priority
CODE

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

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


팀 주간 업무 이력

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

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


상태 변경자 다수 지정

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

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

그룹원 명시

팀이 JIRA 그룹으로 묶여 있을 경우 membersOf 함수를 사용할 수 있습니다.

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

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

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


월간 업무 이력

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

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


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

status changed during (startOfMonth(-1) ,   endOfMonth (-1)) by lesstif order by updated, priority
SQL


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

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


올해 업무 회고

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

status changed during (startofyear() ,  endofyear()) by  lesstif order by updated, priority
SQL


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

status changed during (startofyear(-1) ,  endofyear(-1)) by  lesstif order by updated, priority
SQL


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

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

날자를 고정하기

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

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

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


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

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

기타

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

project = myproj AND parent = TEST-1234
SQL


미해결 이슈를 투표수와 생성일로 정렬

Atlassian 은 주기적으로 투표수를 파악해서 높은 경우 내부 판단 절차를 거쳐서 타당하며 요청이 많은 요구 사항일 경우 스프린트 백로그에 추가합니다.

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

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