Return to site

Top 10 JQL Tips

Tác giả: Joe Emett

March 2, 2018

Trong bài blog này, tôi sẽ giới thiệu cho các bạn 10 mẹo hữu ích trong sử dụng JIRA Query Language (JQL) queries. Tôi cực kỳ yêu thích JQL bởi vì nó hỗ trợ giúp ích khá nhiều. Thay vì đưa ra các mô tả về từ khóa JQL, tôi hy vọng rằng bài blog này sẽ như một hướng dẫn nhanh để bạn có thể xây dựng các truy vấn cho riêng mình.

1. Create your own JQL with 2 character presses

Phía trên cùng bên phải màn hình Jira, có khung Tìm kiếm nhanh (Quick Search)

Khi bạn nhập vào "my", bạn sẽ được chuyển hướng tới Issue Navigator và thấy toàn bộ các Jira issue hiện đang được giao cho bạn. 

Sau đó, bạn có thể thiết lập lại JQL để điều chỉnh lại kết quả tìm kiếm, ví dụ nếu bạn muốn chỉ xem những issue đã được "open" bạn có thể sửa đổi truy vấn bằng cách thêm vào AND status = 'Open':

QuickSearch cung cấp khả năng truy cập nhanh vào Issue Navigator và bằng cách nhập từ cần tìm kiếm vào QuickSearch, nó sẽ tìm kiếm trên toàn bộ các dự án Jira cho các trường hợp của văn bản trong các trường này: Tóm tắt (Summary), Mô tả (Description) và Nhận xét (Comment).

2. Build on what is there already

Mỗi backlog đều có một truy vấn Jira liên quan. Nếu bạn có quyền truy cập vào backlog của dự án trong Jira, bạn sẽ nhìn vào kết quả của một truy vấn JQL. Trên mỗi bảng của Jira Scrum đều có một danh sách kéo xuống nằm trong phần "Board":

Khi nhấn "Configure", trên tab 'General' có các chi tiết của bộ lọc bảng được dựa trên:

mặc dù bạn không có quyền để chỉnh sửa truy vấn, bạn cũng có thể nhấn View Filter Query (Xem truy vấn bộ lọc), thay đổi truy vấn JQL và lưu dưới dạng bạn mong muốn.

Báo cáo (Reports) và tiện ích (Gadgets) Jira trên bảng điều khiển (Dashboards), là những nơi tốt khác để tìm kiếm vì chúng dựa trên các truy vấn JQL hiện có, bạn có thể nhúng vào và thay đổi.

Tìm hiểu thêm về View in Issue Navigator để hiểu hơn về JQL.

3. Just created an issue and you’ve forgotten the Key?

Bạn đã tạo ra một issue, đi đâu đó làm một tách cafe và không thể nhớ issue nằm ở đâu (đương nhiên là quên Key) 

Vào Issue Navigator, nhập: 

project = ACE and created >= startOfDay() ORDER BY Key DESC

5. Commented by a colleague

Đồng nghiệp của bạn vừa bình luận trên một issue của dự án, nhưng bạn không biết issue nào. Bạn nghĩ rằng bình luận đã được đăng trong 30 ngày qua, nhưng bạn có thể truy vấn trong 60 ngày trở lại, trong trường hợp này: Trong Issue Navigator nhập:

project = ACE and issueFunction in commented('by cthompson after startOfDay(-60d)')

Xin lưu ý, plug-in 'Adaptavist SciptRunner for Jira' có bao gồm issueFunction trong truy vấn của bạn. IssueFunction là một cơ chế tìm kiếm cho phép bạn thực hiện các tìm kiếm mà bạn không thể làm với "out of the box" JQL.​

6. Tracking Assignee

Bạn cần xác định một Jira issue đã được chỉ định cho một thành viên trong đội, nhưng bạn không biết chắc chắn là ai. Trong Navigator Issue, nhập:

project = ACE AND fixVersion in versionMatch(5.1) AND assignee WAS IN (cthompson, tbagnall, vhemmert, jemett) ORDER BY Rank

Bạn có thể đăng ký theo dõi (subscribe) bất kỳ bộ lọc nào, nơi Jira sẽ chạy tìm kiếm và gửi kết quả vào email. Điều này đặc biệt hữu ích khi dự án của bạn ở giai đoạn ổn định và bạn muốn cập nhật hàng ngày về các lỗi mới nhất. Trong chế độ filter view (xem bộ lọc), nhấp vào Details (Chi tiết) sau đó New subscription (Đăng ký mới):

7. Multiple teams in one project

Bạn đang chia sẻ một dự án với một nhóm khác, nhưng muốn có board (bảng), sprint và version control (kiểm soát phiên bản) của riêng bạn. Tạo một số JQL để theo dõi Epics, Stories và Sub-Tasks của bạn. Trong Issue Navigator nhập

project = SHA AND (key in (sha-847, sha-856, sha-860, sha-445) OR 'Epic Link' in (sha-847, sha-856, sha-860, sha-445)) OR issueFunction in subtasksOf('\'Epic Link\'=sha-847') OR issueFunction in subtasksOf('\'Epic Link\'=sha-856') OR issueFunction in subtasksOf('\'Epic Link\'=sha-436') OR issueFunction in subtasksOf('\'Epic Link\'=sha-445') ORDER BY Rank ASC

8. Bugs fixed after a certain date

Bạn muốn theo dõi những bug đã chuyển sang trạng thái Review hoặc Verify sau một mốc thời gian và những issue này chưa được giao cho Developers. Trong Issue Navigator, nhập:

project = SHA AND fixVersion in versionMatch(5.1) AND (status changed to Review after '2015/11/29' OR status changed to Verify after '2015/11/29') AND Status != Open AND status != 'In Progress' ORDER BY priority DESC

9. More on Empty

Đối với một số trường, chẳng hạn như 'Labels' (nhãn), bạn cần truy vấn một cách rõ ràng nếu bạn muốn kết quả trả về bao gồm cả các giá trị rỗng (Empty), ví dụ .. (labels! = CMM) .. sẽ chỉ trả lại các issue với các label field đã được với field label không rỗng và bỏ qua các issue mà field mang giá trị rỗng. Để tập hợp đầy đủ các bản ghi bạn cần ghi: .. (labels is empty or labels != CMM) ..

Kết hợp logic này vào một truy vấn lớn hơn, trong Issue Navigator nhập:

project = SHA and fixVersion='5.1' and (labels is empty or labels !=CMM) and type in (Story,Task,Bug) order by rank

10. Aggregate Expressions

JQL không phải là một nơi để tập hợp, nhưng tôi tìm thấy tổng cộng point of storeis, nó khá là hữu ích trong sprint.. Trong Issue Navigator nhập:

project = SHA and sprint in('CMM Sprint 5', 'CMM Sprint 6', 'CMM Sprint 7') and issueFunction in aggregateExpression('Total points', 'storyPoints.sum()')