Liigu edasi põhisisu juurde
Illustratsioon ScriptRunner for Jira rakendusest

Soovid oma kõige vingemad Jira ideed ellu viia? Vaatame, kuidas ScriptRunner for Jira enda jaoks tööle panna

Alice Bakhoff

NB! Juhime tähelepanu, et artiklis välja toodud tooteomadused võivad ajas muutuda.

 

Kuigi Jiral on palju võimekaid funktsioone, võib siiski ilmneda vajadus teostada täiendavaid seadistusi - näiteks töövoogude, automaatikate, väljade või päringute puhul.

 

Järgnevalt toome välja ScriptRunner for Jira (edaspidi ScriptRunner) Data Center versioonile iseäralikud omadused ning ilmestame neid põnevate kasutuslugudega. 
 

 

Täiustatud automatiseerimine Groovy skriptidega

ScriptRunner võimaldab administraatoritel Jira funktsionaalsuseid laiendada Groovy skriptidega.


Jira Data Center platvormil saavad ScriptRunneri skriptid juurdepääsu kogu Jira API-le, mida Jira arendajatele avaldab.

 

Suure võimekusega kaasneb aga ka suur vastutus, mistõttu soovitame läheneda tasa ja targu.


Juhul, kui oled ScriptRunneri skriptide võlumaailmas algaja, võivad heaks alguspunktiks osutuda skriptide mallid.


Skriptide mallid

Piiratud Groovy teadmistega kasutajatele suunatud skriptide mallid võimaldavad eesmärke kiirelt saavutada ilma, et peaksid Groovy koodi nullist kirjutama.


Mallid on loodud mõnede ScriptRunneri kõige levinumate kasutuslugude lahendamiseks. Näiteks leiab mallide hulgast skripte, mille abil:

• teha Resolution väljale hulgimuudatusi (Fix Resolutions);
• kopeerida projekte (Copy Projects);
• kopeerida välja väärtus teisele väljale (Copy Field Values);
• eemaldada töövoo funktsioone, mis on süsteemi jäänud enam mitte kasutusel olevatest rakendustest (Clean Workflows).

 

 

Script Console

Kui mallidest jääb vajaka, tuleb appi Script Consolemis on nagu puhas lõuend, sobides ideaalselt sinu kõige vingemate Jira ideede realiseerimiseks.  

 

✨ Kasutuslugu: alampiletite ajalogide liitmine ja lisamine Epic piletile. 


Projektijuhtimise vaatest on tegu elementaarse nõudmisega, et tagada ülevaade ressursikasutusest.


Antud lähteülesande lahendamiseks on mitu võimalust; neist järgnev hõlmab Jira Automationi kasutamist koos ScriptRunneriga.


Automaatika päästiku (trigger) tingimused saab kirjeldada ka otse skriptis, aga kui neid on palju või kui Groovy keel vajab veel õppimist, saab tingimused kirjeldada kiirelt ning intuitiivselt Jira Automation liideses.


Päästikule järgneb ScriptRunneri spetsiifiline tegevus "Run a script", mis otsib ja liidab seotud alampiletite ajalogid Epic piletile (spetsiaalsele kohandatud väljale).


ScriptRunneri paindlikkus võimaldab seega luua sisuliselt mistahes kohandatud skripte, mis käsitlevad keerulisi arvutusi, seoseid mitmete tasandite vahel või süsteemi korrashoiu ja puhastamise tegevusi.

 

Illustratsioon ScriptRunner skriptist
Joonis 1. Näidis lihtsast ScriptRunneri skriptist, mille abil teostada automaatset pileti loomist.

 

✨ Kasutuslugu: välja väärtuste automaatne kopeerimine ülempiletist alampiletitele.

 

Jira Automation kasutamine väljade kopeerimiseks nõuab iga vajaliku välja manuaalset lisamist automatiseerimisreeglile.


ScriptRunner seevastu lihtsustab seda protsessi oluliselt, võrreldes ülem- ja alampiletite väljasid.


Kui skript tuvastab kattuvad väljad, kopeeritakse väljade väärtused automaatselt ülempiletist alampiletile.

 

Seega jääb tänu ScriptRunneri rakendamisele ära märkimisväärne halduskoormus, mis kaasneks automaatikareegli manuaalse uuendamisega iga kord juhul, kui piletitüüpidele lisatakse uus väli.

 

 

Töövoogude kohandamine

ScriptRunner tekitab Jirasse võimsaid töövoo funktsioone (post functions, conditions, validators), mida on võimalik kasutada mallidena või luua vastavalt vajadusele. 

 

Kujutleme, et tekib vajadus töövoo üleminekule (transition) lisada tingimuslik loogika. Selleks saab kasutada Condition funktsiooni, mille sisuline eesmärk on enne pileti liikumist töövoos veenduda, et nõutud tingimused on täidetud.

 

Tingimuslike üleminekute aluseks võivad olla erinevad pileti atribuudid, nagu näiteks staatus, prioriteet või välja väärtus.

 

✨ Kasutuslugu: tingimuslik üleminek, mis võimaldab piletitel liikuda staatusest "In Progress" olekusse "In Review" ainult siis, kui piletil on user picker väli nimega "Review approver" täidetud kindla väärtusega.

 

Lisaks peab üleminekut teostav kasutaja olema sama, kes on lisatud väljale „Review approver”.

 

Sellise nõude täitmiseks saab ScriptRunnerit kasutada kohandatud Condition skripti kirjutamiseks, et kinnitada nii kohandatud välja väärtus, kui ka üleminekut teostav kasutaja.

 

Post Functions funktsioonide abil on võimalik teostada automatiseeritud toiminguid pärast pileti liikumist töövoos.

 

✨ Kasutuslugu: kui pilet liigutatakse töövoo viimasesse staatusesse ning selle "Resolution" väärtuseks valitakse "Duplicate", peab pileti arhiveerima.

 

Aegunud või mitterelevantsete piletite arhiveerimine on mõistlik nii kasutaja, aga ka Jira haldamise perspektiivist. Kuigi arhiveerimist saab teostada ka piletiotsingus "Bulk change" liideses, eeldab see manuaalset lisatööd. 

 

 

Väljade "käitumise" seadistamine

Jira field configuration piirdub võimalustega muuta välju kohustuslikuks/valikuliseks ja peidetud/nähtavaks.


ScriptRunner sisaldab aga vinget funktsionaalsust behaviours, mis pakub rohkelt lisavõimalusi väljade seadistamiseks. Behaviours abil saate kohandada väljade “käitumist”, näiteks:

 

  • muuta väli kohustuslikuks sõltuvalt mõne teise välja väärtusest;
  • muuta väli kirjutuskaitstuks (read-only) konkreetsele rollile või grupile; 
  • näidata/peita lisavälju, kui teisele väljale on eelnevalt valitud konkreetne väärtus;
  • muuta väljade kirjeldusi;
  • piirata, millised piletitüübid on projektis saadaval millistele kasutajatele.
     

✨ Kasutuslugu: ainult projektijuht peab saama pileteid sprintidesse lisada.


Behaviours võimaldab muuta Sprint välja kirjutuskaitstuks kõigile peale projektijuhi rollis olevate kasutajate jaoks, tagades, et ainult projektijuhid saavad pileteid sprintidesse lisada.


Muuhulgas võimaldab Behaviours peita või keelata ekraani vahekaarte (screen tabs) ja luua valikväljasid valikuga “Other”.


Vahekaartide rakendamist koos nende peitmisega oleks kasulik rakendada näiteks juhul, kui tekib vajadus peita hulk välju korraga. 


Behaviours abil seadistatud valikväli valikuga „Other” kasutegur tekib näiteks olukorras, kus kasutaja ei leia väärtuste hulgast õiget valikut.

 

Sellisel juhul jääb talle võimalus valida „Other”, mille valimisel ilmub nähtavale vaba tekstiväli, et kasutaja saaks siiski sisendi anda.

 

 

Integreerimine teiste rakenduste ja väliste süsteemidega


ScriptRunner võimaldab sujuvat integreerimist erinevate Jira rakenduste ja väliste süsteemidega. 


✨ Kasutuslugu: piletite automaatne suunamine lähtuvalt töökoormusest.


ScriptRunneri integreerimine ressurssihalduse rakendusega (näiteks Activity Timeline või Planner by Tempo) võimaldab viia piletite haldusprotsessi järgmisele tasemele.


Kujutleme kriitilise prioriteediga bug piletite haldamise protsessi.

 

Esmalt tasuks rakendada automaatika, et kriitilise prioriteediga piletid suunatakse konkreetsele vanemarendajale.

 

Teoreetiliselt võikski sellise automaatikaga piirduda, kuid praktikas tuleks arvestada realistliku stsenaariumiga, et mingil ajahetkel on vanemarendaja tööpostilt eemal.

 

Tänu liidestusele saab ScriptRunner konkreetse ressursi saadavuse/mittesaadavuse info, tänu millele tekib võimalus pilet automaatselt ümber suunata, kus järgmiseks omanikuks valitakse arendaja, kes on sel hetkel saadaval.

 

ScriptRunner ning ressursihaldustööriista vahelise integratsiooni abil on võimalik tõhustada ressursside haldamist ja parendada piletite lahendamisele kuluvat aega.


✨ Kasutuslugu: töötajate andmed Active Directory-st Jira Assets rakendusse.
 

Näiteks on võimalik teostada ScriptRunner ja Office365 liidestust, mis võimaldab Microsoft Entra ID-st (eelmise nimega Azure Active Directory) kiire ja lihtsa vaevaga tõmmata töötajad ja nendega seotud andmed Assets (eelmise nimega Insight) objektideks ja atribuutideks. 


Kasutajate kui objektide juures võib kirjeldada mitmeid atribuute, nagu kontaktandmed, osakonna seosed ja rollispetsiifiline teave. 


Assets-is olevaid andmeid saab omakorda efektiivselt rakendada erinevate protsesside toetamiseks – näiteks kasutajatoe projektides seadmete tellimisel või HR projektides onboarding-offboarding puhul.

 

 

Täiustatud JQL-funktsioonid

ScriptRunner võimendab Jira päringukeelt (JQL) üle 40 rikkaliku lisafunktsiooniga, mille abil saab luua võimsaid ja väga kohandatud päringuid.


✨ Kasutuslugu: leida Jira projektist kõik Epic piletid, mis sisaldavad lahendamata pileteid. 

Kuigi Jira standard JQL seda eesmärki kiirelt ei lahenda, saaks läheneda etapi kaupa järgmiselt:
 

  1. tuvastada kõik piletitüübid, mis võivad Epic pileti alla kuuluda;
  2. pärida neid pileti tüüpe, lisada kriteeriumiks Resolution välja ning tingimuse, et Epic Link väli ei ole tühi;
  3. otsinguvaatest lisada päringutulemustele “Epic link” väli;
  4. eksportida päringutulemused XML formaati;
  5. avada päringutulemused Excelis ning teostada täiendavaid tegevusi, et leida kõik Epic piletid.
     

Praktikas sobiks ülaltoodud lahenduskäiku edukalt kasutada juhul, kui sellist päringut oleks vaja luua ühekordselt. 

 

Kui tegemist oleks aga regulaarselt teostatava päringuga, oleks ajasäästlikum viis rakendada ScriptRunnerit ja luua päring issueFunction in epicsOf("resolutsioon = unresolved"), mille abil oleksid päringutulemused käes vaid paari klikiga.

 

Veelgi enam, administraatorid saavad Groovy abil luua kohandatud JQL-i funktsioone ilma Atlassiani SDK-d (software developer kit) õppimata.

 

Kujutleme olukorda projektijuhi vaatest, kelle ülesandeks on ennetavalt vältida projekti skoobi suurenemist ning aktiivselt tuvastada võimalikke kitsaskohti.


Näiteks võib tekkida ülevaate vajadus piletitest, kus on logitud esialgsest hinnangust rohkem tunde. Selleks saab kasutada välju “Time Spent” ja “Original Estimate”, et luua ScriptRunner abil päring:

 

  • issueFunction in expression("", "timespent > originalestimate")

 

Planeerimise vaatest oleks ilmselt kasulik tuvastada ka need piletid, millele logitud tundide arvu (Time spent) ja järele jäänud tundide arvu (Remaining estimate) summa on suurem, kui esialgne ajahinnang (Original estimate).


Selleks saab ülaltoodud päringut täiendada järgmiselt:

 

  • issueFunction in expression("", "timespent + remainingestimate > originalestimate")

 

 

Ready to "upgrade the matrix"?

Kui kirjeldada ScriptRunner for Jira rakendust võimalikult kokkuvõtlikult, viitaksin The Jira Guy öeldule:
 

The self-described “Everything” Plugin - The Jira Guy 

 

Et ülaltoodu on ScriptRunnerist kontsentreeritud kokkuvõte, siis sobib täheldada, et mis puutub funktsionaalsustesse ja nende rakendamise võimalustesse, siis kindlasti on veel paljugi, mida avastada.

 

Huvilistele leidub põnevat lisalugemist ametlikust dokumentatsioonist. Rakendus on olemas ka Cloud platvormil, mille puhul tuleb arvestada funktsionaalsuste erisustega.