/
ScriptRunner for Jira

ScriptRunner for Jira

Update checklists using automated scripts⚡️

ScriptRunner for Jira is an all-in-one admin app. Automate DevOps workflows, actions with Built-in Scripts, improve the development workflow with Hooks. Automate the behaviour of the Smart Checklist as well.

Requires Checklists Custom Field "Checklists" Custom Field set up

📍Use Case: Set Checklist depending on Custom Field Value after Issue Creation

If you want the specific Checklist appended to your newly created ticket depending on the other Custom field value - you can easily do it by adding Script Runner Post Function to your Create Ticket workflow transition.

Assume that you have a custom field Environment with 2 values: Production/Staging. So you expect that while adding a new Issue - you'll have a proper checklist assigned.

 

Implementation flow:

  1. Go to Project Settings → Workflows

  2. Choose the Workflow you want to add a post function to and click Edit:

  3. Add a Post Function

3.1. Choose transition and click on the Post Functions link:

 

3.2. Add Post Function:

3.3. Choose ScriptRunner Post-Function (Runs a script in a post-function, or a built-in script) and click Add:

3.4. Choose Run Script (Run arbitrary code on transition):

3.5. Add a Script Code:

//package com.adaptavist.sr.cloud.samples.events def issueKey = issue.key def newSummary = 'Updated by a script' def cfName = 'Environment' //get custom field of "seelct" type def customFields = get('/rest/api/2/field') .asObject(List) .body .findAll { (it as Map).custom } as List<Map> def cfEnvironmentId = customFields.find { it.name == cfName }?.id def cfEnvironment = issue.fields[cfEnvironmentId] //get custom field def environment = cfEnvironment['value'] as String def propertyKey = 'com.railsware.SmartChecklist.checklist' def propertyValue //compare field values if (environment == 'Production') { propertyValue = '"- ToDo List\\n+ Checked\\nx Skipped\\n~ In Progress\\n# Another ToDo List\\n- Unchecked\\n> Quote line 1 https://rw.rw\\n> Quote line 2\\n> Quote line 3\\n"' }else if (environment == 'Staging') { propertyValue = '"- Uno\\n+ Dos\\nx Tres\\n~ Quatro\\n"' } logger.info('property' + environment) def result = put('/rest/api/2/issue/' + issueKey + '/properties/' + propertyKey) .header('Content-Type', 'application/json') .body(propertyValue) .asString() if (result.status == 204) { return 'Success' } else { return "${result.status}: ${result.body}" }


3.6. Check added post function and Publish Draft:

You're done! Now every time the Issue will be transitioned to to do, based on the Environment field value the proper Checklist items will be added to your Smart Checklist 🎉

Related content

Jira Misc Workflow Extensions (JMWE)
Jira Misc Workflow Extensions (JMWE)
Read with this
Workflows: Validate Checklist before Issue Transition
Workflows: Validate Checklist before Issue Transition
Read with this
Add a Checklist Template on Issue Transition
Add a Checklist Template on Issue Transition
Read with this
Add Checklist based on an Issue Field Value on Issue Creation
Add Checklist based on an Issue Field Value on Issue Creation
Read with this
Smart Checklist REST API v1.0
Smart Checklist REST API v1.0
Read with this
Add a Checklist to a Subtask on Issue Creation
Add a Checklist to a Subtask on Issue Creation
Read with this