Kısaca Jira Misc Workflow Extensions
Jira Misc Workflow Extensions, Jira iş akışlarında bulunan “Conditions”, “Validators” ve “Post-functions” özelliklerini zenginleştiren bir eklentidir. Bu sayede iş akışlarında çalışırken daha kapsamlı, daha özelleştirilmiş koşullar, otomasyonlar ve Cloud için Rest API yazmayı sağlar.
Automation for Jira kullanım sınırları için ise elbette JMWE çok daha kullanışlı ve destekleyici bir hale gelmiştir. Ayrıca birçok seçenek ve hazır Nunjucks yapısıyla oldukça tercih edilebilir olmuştur. Burada aynı otomasyonları action olarak oluşturup aktif ederek, limitler konusunda problem yaşama ihtimalimizi düşürmüş oluruz.
JMWE Actions
Mevcut otomasyonların Trigger’ları ile ilgili “action” seçeneklerinden ihtiyacımız olanı belirleyerek düzenlemeye başlayabiliriz.
Biz JMWE Cloud çalışmalarımızda Scheduled actions, Event-based actions kullandık. Ayrıca gerekli Conditions için Nunjucks yapılarının test edilebileceği “Nunjucks and Jira expression Tester” kısmı da oldukça faydalı oldu.
Event-based Actions
Action’ın çalışması için tetikleyiciyi seçenekler arasından seçmek mümkün. Bir issue oluşturulduğunda, istenen field değeri değiştiğinde, yorum yapıldığında çalışmaya başlasın gibi tüm seçenekler mevcut. Oluşturduğumuz her actionda bu adımların doğru olmasına dikkat ettik.
Scheduled Actions
Scheduled Actions da belirli zaman aralığı, gün, saat gibi düzenlemeler yapılarak düzenli mail gönderen bir action kurduk. İlgili projeyi, varsa şartlandırılmış issue tiplerini seçerek gereklilikleri sağlamış oluyoruz. Sonrasında ilgili Scheduled Actions’ı düzenlerken talebe yönelik bir JQL oluşturarak, hangi kayıtların maile dahil olacağını belirlemiş olduk.
“Add post function” seçeneği ise oldukça işlevsel. Burada bildiğiniz üzere çeşitli işlemleri yapabiliyoruz. Söz konusu action için “Email Issues” post functionu ile mail için gerekli Subject, Text Body gibi alanları doldurduk. Nunjucks sayesinde ise “{{ issue.fields.reporter.displayName }}” gibi hazır yapılar kullanarak mail içeriğini doğru ve zengin bir şekilde düzenleyebildik.
Nelere Dikkat Ettik?
JMWE üzerinden action oluştururken dikkat ettiğimiz önemli noktalarsa, her ne kadar JQL yazmak zaman zaman isteğe bağlı kalsa da, Post function eklemek zorunlu. Çünkü yapmak istediğimiz işlemleri aslında asıl burada belirliyor ve düzenliyor olduk.
Diğer bir nokta ise post function içinde bulunan “Run As” seçeneğinde genellikle Current User seçili oluyor. Bizse bunu, kayıt içindeki history kısmında görebilmek ve ayrıca talebe yönelik çalıştığımız için “Add-on User” olarak tercih ettik.
Bizim çoğunlukla kullandığımız action ise “Event-based” oldu. Burada genellikle Transition issue, Set issue field gibi post functionlar kullandık. Koşullara uygun bir kural oluşturabilmek için Nunjucks yapısını kapsamlı bir araştırma ve düzenlemeye ihtiyaç duyduk. Bu aşamada, bize JMWE büyük bir rahatlık sağladı. Çünkü bu yapıyı yazarken hazır Nunjucks yapılarından faydalandık.
Conditions ve Nunjucks Seçenekleri
-Expected Value ve Nunjucks Basics
Yaptığımız çalışmalarda kullandığımız seçenekleri kısaca açıklamak gerekirse, conditions yazarken, Expected Value ve Nunjucks Basics gibi seçeneklerde temel yapılar bulunmaktadır. Syntax olarak kontrol edebileceğimiz, üzerinde ihtiyacımıza göre düzenlemeler ve değişimler yapabileceğimiz basit kodlar içeriyor.
-Blocks and Tags
Blocks and Tags kısmını ise blok içinde yazmamız gereken kurallar için kullandık. Bunlar çoğunlukla if-else yapıları oldu.
-Global Variables
Bunun yanında Global Variables seçeneğini ise istediğimiz transition kuralları, comment kuralları ya da users kural yapılarını düzenlerken kullandık. Daha önce belirttiğimiz gibi birçok kural için temel yapılar mevcut.
-Issue Fields
Action’ları JMWE tarafında düzenlerken farklı Nunjucks işlevleri kullanmış olduk. Bunlardan bir diğeri ise Issue Fields seçeneği. Field içini kurala göre doldurmak, değiştirmek ya da kontrol etmek istediğimizde issue field id ya da name kullanarak gerekli yapıları da yazmış olduk.
-Filtre, Kullanıcı ve Gruplar
Aynı bar üzerinde “Filtre” seçeneği de mevcut fakat biz çalışmalarımızda JQL yapısı ya da diğer kontrol yapılarını daha çok kullandığımız için bu seçeneğe çok ihtiyaç duymadık. Dilerseniz “Filtre” üzerinden linke giderek inceleyebilirsiniz.
En çok kullandığımız diğer bir özellik ise, aynı şekilde Nunjucks condition alanında bulunan “Lookup User” ve “Lookup Group” seçenekleri oldu. Buradan assignee işlemleri, field içindeki kullanıcı kontrol işlemleri gibi durumlarda ihtiyacımız olan, kullanıcı ya da ilgili grupları seçerek kuralımıza dahil etmiş olduk.
Bu konuda bize sağlanan kolaylık ise, grup ya da kullanıcı adını yazmaya başladığımızda bize öneri olarak göstermesi ve çıkan isimler arasından doğru tercih yapmamızı sağlaması oldu. Seçilen kullanıcı ya da grupların id bilgisini ise otomatik olarak kuralımıza eklemiş oldu.
-Test Nunjucks Template
Kurallarımızı kontrol etmek istediğimizde ise Lookup Groups yanında bulunan “Test Nunjucks Template” seçeneği ile istediğimiz bir kayıt içinde, mevcut Nunjucks dizimini kontrol edip, hatalarımızı görme şansını yakaladık. Gerekli düzenlemeler yaparak çalışmalarımızı tamamlamış olduk.
Son Olarak...
Son olarak, dediğimiz gibi Jira otomasyon kullanım sınırına dikkat etmemiz gerekebiliyor. Fakat bizim istediğimiz elbette, aynı zamanda talebi karşılamamıza olanak sağlayabilecek alternatif bir yol. Bu aşamada ise bahsettiğimiz üzere Jira Misc Workflow Extensions (JMWE) eklentisi kullanışlı bir çalışma ortamı sağlayarak tercih sebebimiz oldu. Biz de bu konudaki bazı çalışmalarımızı bu yazıda anlatmış olduk.
Güncel ve farklı konulardaki yazılarımızda görüşmek üzere.
Daha fazla bilgi ve istekleriniz için email@example.com adresinden bizimle iletişime geçebilirsiniz.