افزونه Automation for Jira یکی از پرکاربردترین افزونههای جیراست که در این مقاله قصد داریم به توضیح آن بپردازیم. با این افزونه شما میتوانید با ایجاد Ruleهای مختلف، روالهای کاری را در جیرا خودکارسازی کنید. در استفاده از این افزونه نیازی به کدنویسی یا اسکریپتنویسی وجود ندارد و تنها با کشیدن و رها کردن کامپوننتهای مختلف Rule ها را ایجاد میکنید.
برای درک بهتر کاربرد این افزونه فرض کنید در Jira Service Desk زمانی که تیم پشتیبانی به یک تیکت یا پرسش مشتری پاسخ میدهد، لازم است مشتری تیکت را تایید کرده و آن را ببندد. اما معمولا مشتریان پس از دریافت پاسخ خود تیکت را به صورت باز رها میکنند و در این صورت ممکن است تیکت برای هفته باز بماند و باید تیکت به صورت دستی توسط یکی از افراد تیم پشتیبانی به وضعیت “Close” برده شود.
راه حل
برای این مسئله کافی است با ساختن یک Rule ساده در افزونه Automation for Jira تیکتها را پس از اینکه ۵ روز از سمت مشتری بدون پاسخ ماند به صورت خودکار به وضعیت “Close” ببرد.
برای اینکار لازم است یک trigger زمانبندی شده ایجاد کنید که به صورت روزانه اجرا میشود. هر روز یک JQL توسط این Rule اجرا میگردد و تمامی ایشوهایی که به مدت ۵ روز از مدت آخرین بهروز شدن آنها میگذرد و در وضعیت “Waiting for Customer” یا وضعیت معادل آن در فرآیند پاسخگویی به تیکت قرار دارد استخراج شده و وضعیت آنها به Close به روز میشود.
همچنین شما میتوانید یک مرحله دیگر نیز به این Automation اضافه کنید تا ایمیل یا پیامی به مشتری ارسال کند تا از بسته شدن تیکت مورد نظر آگاه شود.
نمونه خودکارسازی گفته شده تنها یکی از کاربردهای بیشمار خودکارسازی کارها در جیرا است. در انتهای این مقاله ما به برخی از کاربردهای دیگر این افزونه اشاره خواهیم کرد. اما پیش از آن، نحوه به کارگیری این افزونه توضیح داده خواهد شد.
قوانین یا Rule
به مجموعهای از یک trigger و شرطها و عملگردها، Rule گفته میشود که به شما امکان میدهد تا خودکارسازی را در جیرا انجام دهید. هر Rule با یک آغازگر (trigger) شروع میشود که باعث به جریان افتان یک rule میشود. پس از آن شرطها (condition) بررسی میشوند و در صورتی که هر کدام از شرطها برقرار باشند، عملگرد (action) درون شرط اجرا میشود. هر کدام از این کامپوننتها تنها با کشیدن و رها کردن قابل استفاده خواهند بود.
یک نمونه ساده از rule : زمانی که یک ایشو ایجاد میشود (trigger)، اگر اولویت آن زیاد بود (condition)، آنگاه ایشو به شخص خاصی تخصیص داده شود (action).
هر کدام از این بلاکها میتوانند به صورتهای مختلف با یکدیگر ترکیب شده و rule های شخصیسازی شده دیگری را برای حل مسائل دیگر ایجاد کنند.
آغازگر (Trigger)
همانطور که گفته شد هر rule با یک trigger شروع میشود. چیزی حدود ۲۰ نوع trigger در افزونه Automation for Jira وجود دارند که میتوان از آنها به عنوان آغازگر استفاده کرد. برخی از آنها عبارتاند از:
issue transitioned : زمانی که یک ایشو از یک state به state دیگر انتقال داده شد
scheduled trigger : اجرای rule به صورت زمانبندی شده
issue created : زمانی که یک ایشو ایجاد شد و …
زمانی که یک trigger را از بین لیست انتخاب کنید خواهید دید که در نوار سمت چپ نمایش داده خواهد شد. در صورتی که بخواهید trigger انتخاب شده را تغییر دهید از نوار سمت چپ بر روی آن کلیک کنید و trigger را تغییر دهید.
شرط (Condition)
در یک rule، شرطها به شما این امکان را میدهند تا محدوده اجرای یک rule را مشخص کنید. به عنوان مثال یک action زمانی اجرا شود که اولویت یک ایشو High باشد. مشخص کردن این محدوده توسط شروط در Automation for Jira امکانپذیر است. توجه کنید که ruleهایی که هیچ شرطی درون آنها تعریف نشده باشد بر روی تمامی ایشوها اعمال خواهند شد.
برای اضافه کردن یک شرط بر روی Add component کلیک کرده و New Condition را انتخاب کنید. در صورتی که یک شرط برقرار نباشد، اجرای rule متوقف خواهد شد. به جز در مواردی که از شرط IF/ELSE استفاده شده باشد.
عملگر (Action)
در یک rule یک action اجراکننده کار است. یک action میتواند انجام مختلف کارها باشد مانند ویرایش کردن یک ایشو جیرا، ارسال پیام، ساخت یک sub-task و یا حتی ایجاد یک لاگ و …
با استفاده از action ها میتوان بر روی ایشوها در جیرا یا بر روی یک سامانه خارجی تغییر ایجاد کرد.
شاخه / ایشوهای مرتبط (Branching / Related issues)
زمانی که شما از جیرا در مدیریت کارهای خود استفاده میکنید، قطعا لازم میشود ایشوهای مختلفی را برای مقاصد مختلف با یکدیگر لینک کنید. ارتباط بین ایشوها در جیرا امری متداول است. به عنوان مثال یک ایشو میتواند تعدادی sub-task داشته باشد یا قسمتی از یک User Story یا Epic باشد. همچنین ایشوها در جیرا میتوانند با روابط دیگری (relate,block,…) به یکدیگر لینک شوند.
در بسیاری از زمانها لازم است که در فرآیند خودکارسازی action خاصی را بر روی ایشوهای لینک شده به یک ایشو مبدا اعمال کنیم. به عبارت دیگر نمیخواهیم تغییرات بر روی یک ایشو مبدا اعمال شود، بلکه قصد داریم ایشوهایی را تغییر دهیم که به ایشو مبدا مرتبط هستند.
افزونه Automation for Jira این امکان را فراهم میسازد که به راحتی تغییرات را بر روی ایشوها مرتبط با یک ایشو مبدا اعمال کنیم. برای اینکار از کامپوننت Branching / Related issues استفاده میکنیم. این کامپوننت امکان ایجاد rule های قدرتمند و پیچیده را فراهم میکند. به عنوان مثال بررسی تمامی sub-task هایی یک ایشو که resolved شده است. یا sync کردن ایشوها در یک پروژه دیگر.
مقادیر هوشمند (Smart values)
یکی از بهترین ویژگیهای افزونه Automation for Jira امکان بکارگیری smart values در جیرا است. این مقادیر به راحتی به شما امکان میدهد تا به دادهها و اطلاعات مختلف یک ایشو دسترسی داشته باشید. برای مثال شما قصد دارید که پیام به صورت ایمیل یا پیام هیپچت و … به یک کاربر ارسال کنید و در این پیام اطلاعاتی از یک ایشو مانند نام ایشو و key آن و یا summary آن را نیز در پیام ارسال کنید. برای اینکار کافی است از Smart values های {{issue.key}} ، {{issue.summary}} و … در پیام خود استفاده کنید. لیست کامل Smart values های قابل استفاده در جیرا را میتوانید از این لینک مشاهده کنید.
اجراکننده قانون (Rule Actors)
اجرا کننده یک rule در افزونه Automation for Jira کاربری است که action ها و triggerها توسط این کاربر انجام میشود. این کاربر نیز یکی از کاربرهای جیرا است با این تفاوت که کاربری که اجراکننده یک rule است لازم است دسترسیها کافی برای خواندن اطلاعات در trigger یا اجرای یک action را داشته باشد. به عنوان مثال در یک rule در صورتی که از action ای استفاده کرده باشید که کامنتی در یک ایشو درج میکند، پس actor باید دسترسی add comment در آن پروژه داشته باشد. در غیر این صورت اجرای rule با خطا مواجه خواهد شد.
بهترین حالت برای اجرای یک rule این است که یک کاربر با نامی شبیه به “Auto Bot” یا “Jira Automation” ایجاد نمایید و آن را عضو گروهی کنید که دسترسی کافی به پروژهها داشته باشد. برای این کار نیز بهتر است role ای (با rule اشتباه نگیرید. role ها در جیرا تعیین کننده نوع دسترسی کاربران جیرا است) در جیرا با عنوان Automation Add-on User ایجاد نمایید و در Permission Scheme ها دسترسی لازم را به این role داده و یوزر actor را با این role به پروژه اضافه کنید.
همچنین لازم است که در rule های ایجاد شده در Automation for Jira نیز مقدار actor را تغییر داده و کاربر مناسب را انتخاب کنید.
فعال یا غیر فعال کردن یک Rule
هر rule در افزونه Automation for Jira میتواند یکی از سه وضعیت زیر را داشته باشد.
Enabled : در این وضعیت rule فعال است
Disabled : در این وضعیت rule غیر فعال است
Draft : در این وضعیت rule تغییراتی کرده است که انتشار داده نشده است
پس از آنکه یک rule ایجاد کردید لازم است نامی مناسب که نشاندهنده عملکرد rule است انتخاب کنید و rule را Publish کنید. در این صورت وضعیت rule به صورت خودکار فعال خواهد شد. در صورتی که قصد دارید تغییرات دیگری بر روی آن ایجاد کنید و سپس آن را منتشر کنید وضعیت آن را به Disabled تغییر دهید.
آغاز کردن یک Rule توسط Rule دیگر
به صورت پیش فرض، یک عملگر (action) در یک rule نمیتواند یک rule دیگر را آغاز کند. این به این دلیل است که از ایجاد حلقه (Loop) در rule های جلوگیری شود. شما میتوانید تنظیمات مروبط به این موضوع را در rule تغییر دهید و با فعال کردن گزینه Allow rule trigger این امکان را بدهید که ruleهای دیگر بتوانند rule را آغاز کنند.
تنها در صورتی از این گزینه استفاده کنید که لازم است rule در پاسخ به rule دیگری اجرا شود.
محدوده Rule
به صورت پیشفرض ادمین پروژه (Project Admin) و ادمین جیرا (Global Admin) میتوانند rule ها را ایجاد یا ویرایش کنند. ادمین جیرا میتواند این امکان را فراهم کند که ادمینهای تعریف شده به ازای هر پروژه نیز امکان ایجاد یا ویرایش rule را داشته باشند. برای اینکار از قسمت Global Configuration میتوانید گزینه Allow project administration to manage project rules را فعال کنید و یا در صورت عدم تمایل آن را غیر فعال نمایید. این گزینه برای سازمانها و شرکتهای بزرگ که تعداد زیادی پروژه و تعداد زیادی rule خواهند داشت مناسب است تا ادمین هر پروژه بسته به نیاز خود به ایجاد و ویرایش rule ها بپردازند.
مدیران پروژه تنها در صورتی میتوانند یک rule را ویرایش کنند که rule تنها به همان پروژه محدود شده باشد.
برای محدود کردن یک rule به پروژهها از قسمت Rule details و با پر کردن بخش Restrict to projects پروژههایی که قصد داریم تا Rule برای آن اجرا شود را انتخاب کنید.
برای عملکرد بهتر جیرا در صورتی که rule ایی برای پروژه خاص ایجاد شده است و در conditionهای در نظر گرفته شده درون آن، ایشوهای پروژه (یا پروژههای خاصی) تحت تاثیر قرار میگیرد، بهتر است در بخش Restrict to projects آن rule را به همان پروژه محدود کنید تا rule، تمامی ایشوهای جیرا را مورد بررسی قرار ندهد. این کار باعث افزایش سرعت جیرا میشود.
بخش Audit log
هر rule بخشی به نام Audit log دارد که شما در این بخش میتواند لاگ مربوط به هر rule و نحوه اجرا یا خطاها هنگام اجرا را مشاهده کنید. مشاهده Audit log بهترین راه برای مشکل یابی یک rule است.
کاربردهای متداول
همانطور که گفته شد با افزونه Automation for Jira شما میتواند تمامی کارهای تکراری که باید توسط کاربران جیرا انجام شود را به صورت خودکار انجام دهید. این کار باعث صرفجویی زمان زیادی از کاربران خواهد شد و کارهای تکراری کاربران حذف خواهد شد. در این بخش تنها به چند کاربرد متداول Automation for Jira خواهیم پرداخت. قطعا کاربرد این افزونه بسیار بیشتر از این موارد بوده و لازم است بسته به نیازمندی، ruleهای مورد نظر در این افزونه ایجاد گردد.
همگامسازی (Synchronizing) ایشوها و sub-task های آنها
این مورد زمانی است که یک ایشو به وضعیت “close” یا “done” رفته است و لازم است که در این شرایط تمامی sub-task های آن را متعاقبا به وضعیت مشابه برده شود. در این صورت شما میتوانید از related issue استفاده کرده و وضعیت sub-task ایشو را به “done” انتقال دهید.
علاوه بر این برخی از زمانها نیاز است تا مقداری از یک ایشو به sub-task منتقل شود. به عنوان مثال زمانی که یک issue انجام شود و مقدار fix version در آن پر شود، لازم است مقدار این فیلد برای sub-task های ایشو نیز با توجه به مقدار ایشو sync شود.
تخصیص خودکار ایشوها
در جیرا تیمها چگونه ایشوهای بدون assignee یا به اصلاح unassigned را مدیریت میکنند؟ معمولا تیمها برای این موضوع صفی (Queue) ایجاد میکنند و مدام با چک کردن این صف، ایشوهایی که به کاربر تخصیص داده نشده است را بررسی میکنند. در حالت بدتر، برخی از موارد ایشوهایی که به کاربری تخصیص داده نشده است برای مدتها مورد بررسی قرار نمیگیرد.
این موضوع به کمک افزونه Automation for Jira به راحتی قابل پیشگیری است. پس از آنکه یک trigger مناسب (مثلا زمانی که ایشو ایجاد میشود) و شروط مورد نظر را در rule قرار دادید کافی است در قسمت action گزینه Assign Issue را انتخاب کنید. در این حالت ایشو به یکی از اعضای تیم شما تخصیص داده خواهد شد. شما میتوانید از لیست این action نحوه تخصیص ایشو را مشخص کنید. به عنوان مثال گزینه A user in a defined list را انتخاب کنید.
در بخش بعد گزینه Balanced workload را انتخاب کنید. با این کار ایشوها به افرادی از لیستی که مشخص میکنید به گونه ای تخصیص مییابد که میزان کار همه افراد یکسان توزیع شود.
در بخش بعد لیست افرادی که لازم ایشو به آنها تخصیص داده شود را مشخص کنید.
شما به همین راحتی توانستید تمامی ایشوها را به خوبی به افراد تخصیص دهید و از unassigned ماندن ایشو و عواقب بد آن جلوگیری کنید.
برنامهریزی تسکها
همانطور که در ابتدای این مقاله نیز اشاره شد، ما باید از باز ماندن ایشوها به مدت طولانی مدت جلوگیری کنیم. یکی از مواردی که منجر به این موضوع میشود زمانی است که در یک تیکت (ایشو) به مشتری پاسخ داده شده است و نیاز است ایشو توسط مشتری تایید و بسته شود. در اکثر موارد ایشوها در این وضعیت به صورت باز باقی میمانند تا یک کاربر از تیم پشتیبانی به صورت دستی آنها را ببندد.
در این حالت کافی با ایجاد یک JQL مناسب تمامی ایشوهایی که به مدت ۵ روز در وضعیت Waiting for Customer باقی ماندهاند و هیچ بروزرسانی بر روی آنها انجام نشده استخراج شده و به صورت خودکار بسته شوند. شما میتوانید پیامی نیز پس از آن به مشتری ارسال نمایید.
در مواردی نیز میتوان با اطلاعرسانی به مشتری پیش از بسته شدن ایشو توسط یک rule مجزا، مشتری را در جریان بسته شدن ایشو در روزهای آتی قرار داد.
افزونه Automation for Jira از برترین افزونههای جیرا به گزارش شرکت Atlassian است که بیش از ۱۱۰۰۰ شرکت تا کنون از این افزونه استفاده میکنند.
در صورتی که تیم یا شرکت شما نیز به این افزونه برای خودکارسازی فرآیندها و روالهای خود در جیرا نیاز دارد میتوانید برای نصب و راهاندازی آخرین نسخه از این افزونه پر کاربرد با ما در تماس باشید
نظرات
mahnush ۱۴۰۱/۱۱/۰۱ در ۳:۱۲ ب٫ظ
سلام وقت بخیر ، یک سوال داشتم ، آیا با این افزونه میتوان فرمولی رو محاسبه کرد و خروجی آن در یک فیلد قرار بگیرد؟
مهدی حیدری ۱۴۰۱/۱۱/۱۰ در ۲:۳۶ ب٫ظ
با سلام
بله برای محاسبات ساده میتونید از smart value ها و function هایی که smart value ها میده استفاده کنید
اگر محاسبات پیچیده است بهتر از اسکریپت های groovy استفاده کنید که میتونید از پلاگین Script runner for jira استفاده کنید
امید ۱۴۰۲/۱۰/۱۶ در ۱۰:۰۴ ب٫ظ
دوره اتومیشن کی آماده میشه ؟!؟