Jira یکی از پرکاربردترین ابزارهای مدیریت پروژه و پیگیری مشکلات در تیمهای نرمافزاری است. برای مدیریت بهتر دادهها در Jira، نیاز به جستجوی دقیق و پیشرفته داریم که این امر با Jira Query Language (JQL) امکانپذیر است.
JQL زبانی انعطافپذیر برای فیلتر کردن و بازیابی اطلاعات از پروژههای Jira است که به متخصصان اجازه میدهد تا اطلاعات مرتبط را سریعتر و کارآمدتر پیدا کنند. این مقاله به طور تخصصی تمام جنبههای JQL را بررسی کرده و نکات کاربردی برای استفاده حرفهای از آن ارائه میدهد.

JQL چیست؟
JQL زبانی مبتنی بر کوئری است که کاربران را قادر میسازد تا درخواستهای پیشرفتهای برای بازیابی دادهها در Jira ایجاد کنند. این زبان فراتر از قابلیتهای جستجوی ساده (Quick Search) عمل میکند و امکان ترکیب معیارهای پیچیده برای استخراج دادههای خاص را فراهم میکند.
ویژگیهای اصلی JQL:
- انعطافپذیری بالا: ایجاد کوئریهای پیچیده با ترکیب چندین شرط.
- قابلیت فیلتر کردن عمیق: محدود کردن دادهها بر اساس فیلدهای خاص.
- پشتیبانی از اپراتورهای منطقی و مقایسهای: استفاده از AND، OR، NOT و اپراتورهای شرطی.
- تعریف جستجوهای پویا: امکان استفاده از پارامترهای متغیر مانند “تاریخ امروز” یا “کاربر جاری”.
ساختار اصلی JQL
یک کوئری JQL از سه بخش اصلی تشکیل شده است:
- فیلد (Field): فیلدی که دادهها در آن جستجو میشوند.
مثال:assignee(کاربر مسئول)،status(وضعیت). - اپراتور (Operator): رابطه بین فیلد و مقدار جستجو.
مثال:=,!=,>,<,IN. - مقدار (Value): مقدار مورد نظر برای فیلد.
مثال:"Open","In Progress","John Doe".
مثال ساده:
jqlCopy codestatus = "Open"
این کوئری تمام تسکهایی را که وضعیت آنها “باز” است برمیگرداند.
اپراتورها در JQL
JQL شامل مجموعهای از اپراتورهاست که هرکدام برای سناریوهای خاص طراحی شدهاند. در ادامه به تفصیل هر اپراتور را بررسی میکنیم:
1. اپراتورهای مقایسهای
| اپراتور | توضیح | مثال |
|---|---|---|
= | برابر با | priority = High |
!= | نابرابر | status != Closed |
> | بزرگتر از | created > "2023-01-01" |
< | کوچکتر از | duedate < "2024-01-01" |
>= | بزرگتر یا مساوی | updated >= "2023-06-01" |
<= | کوچکتر یا مساوی | resolved <= "2023-12-31" |
2. اپراتورهای عضویت
- IN: برای بررسی عضویت در یک مجموعه.
مثال:jqlCopy codepriority IN ("High", "Critical") - NOT IN: برای بررسی عدم عضویت در یک مجموعه.
مثال:jqlCopy codeassignee NOT IN ("Alice", "Bob")
با خرید نسخه کرک شده نرم افزار جیرا (Jira) با پرداخت مبلغ کمتر از 1% ارزش واقعی این نرم افزار، به تمام امکانات نرم افزار Jira دسترسی خواهید داشت!
3. اپراتورهای منطقی
- AND: ترکیب شروط.
مثال:jqlCopy codestatus = "Open" AND priority = "High" - OR: حداقل یکی از شروط برقرار باشد.
مثال:jqlCopy codeassignee = "John" OR reporter = "Jane" - NOT: شرط مخالف.
مثال:jqlCopy codeNOT status = "Resolved"
فیلدهای متداول در JQL
Jira شامل فیلدهای زیادی است که میتوان از آنها در JQL استفاده کرد. در ادامه پرکاربردترین آنها را بررسی میکنیم:
| فیلد | توضیح |
|---|---|
project | پروژه مرتبط با تسک |
status | وضعیت تسک (Open, In Progress, Closed) |
priority | اولویت (Low, Medium, High, Critical) |
assignee | فرد مسئول تسک |
reporter | فرد گزارشدهنده |
duedate | تاریخ تحویل تسک |
created | تاریخ ایجاد تسک |
updated | تاریخ آخرین بروزرسانی |
مثال کاربردی:
jqlCopy codeproject = "Development" AND status = "In Progress" AND assignee = currentUser()
این کوئری تمام تسکهای در حال پیشرفت در پروژه “Development” را که به کاربر جاری اختصاص داده شده است، برمیگرداند.
توابع پیشرفته در JQL
JQL از توابع مختلفی برای جستجوی پویا پشتیبانی میکند. این توابع بسیار قدرتمند هستند و به متخصصان اجازه میدهند تا کوئریهای انعطافپذیری ایجاد کنند.
توابع مربوط به زمان
now(): زمان جاری.
مثال:jqlCopy codeupdated >= startOfDay()startOfDay(): شروع روز جاری.endOfDay(): پایان روز جاری.startOfWeek(),endOfWeek(): شروع و پایان هفته جاری.
توابع پویا
currentUser(): کاربر جاری.
مثال:jqlCopy codeassignee = currentUser()membersOf("groupName"): اعضای یک گروه.
مثال:jqlCopy codeassignee IN membersOf("Developers")
ایجاد فیلترهای سفارشی
پس از ایجاد یک کوئری JQL، میتوان آن را به عنوان یک فیلتر ذخیره کرد. این فیلترها در داشبوردها و گزارشها قابل استفاده هستند.
مراحل ذخیرهسازی فیلتر:
- کوئری مورد نظر را در نوار جستجوی Advanced وارد کنید.
- روی دکمه Save as کلیک کنید.
- یک نام مناسب برای فیلتر وارد کنید.
اشتراکگذاری فیلتر:
میتوانید فیلتر خود را با اعضای تیم به اشتراک بگذارید:
- وارد تنظیمات فیلتر شوید.
- روی Edit Permissions کلیک کنید.
- گروه یا کاربر مورد نظر را اضافه کنید.
مثالهای عملی و کاربردی JQL
1. پیدا کردن تسکهای بدون مسئول
jqlCopy codeassignee IS EMPTY
2. جستجوی تسکهای اولویت بالا که امروز ایجاد شدهاند
jqlCopy codepriority = "High" AND created >= startOfDay()
3. پیدا کردن تمام تسکهایی که در هفته گذشته بسته شدهاند
jqlCopy codestatus = "Closed" AND resolved >= startOfWeek(-1)
4. جستجوی تسکهای تأخیر یافته
jqlCopy codeduedate < now() AND status != "Closed"
نکات و ترفندهای کاربردی
- استفاده از Wildcardها:
برای جستجوی متن در فیلدهای متنی میتوان از نماد~استفاده کرد.
مثال:jqlCopy codesummary ~ "bug" - بهینهسازی کوئریها:
کوئریهای خود را کوتاه و خوانا نگه دارید تا از عملکرد بهتر اطمینان حاصل کنید. - تست و اصلاح کوئریها:
قبل از ذخیره کوئری، آن را تست کنید تا مطمئن شوید دادههای مورد نظر بازگردانده میشوند.
نتیجهگیری
Jira Query Language ابزاری قدرتمند برای مدیریت دادهها در جیرا است که به متخصصان اجازه میدهد تا با ایجاد کوئریهای پیچیده، اطلاعات دقیقی را استخراج کنند. با یادگیری و تسلط بر JQL، میتوانید بهرهوری تیم خود را به طور چشمگیری افزایش دهید و گزارشهای دقیقتری ایجاد کنید. استفاده از این ابزار نه تنها جستجو را سریعتر میکند بلکه در مدیریت پروژههای بزرگ نقش اساسی دارد.
اگر سوالی در مورد JQL دارید یا به مثالهای بیشتری نیاز دارید، خوشحال میشویم به شما کمک کنیم!