Come for the products,
stay for the community

The Atlassian Community can help you and your team get more value out of Atlassian products and practices.

Atlassian Community about banner
4,369,187
Community Members
 
Community Events
168
Community Groups

Possible to automatically create stories when an epic is created (ScriptRunner)

Hello All,

I'd like to know if it is possible through ScriptRunner or another addon to easily set some rules to create stores. Something like this:

Let's say on Epic, there is a custom field with A, B, and C

If Epic is created and custom field = A, create story 1, 2, and 3

If Epic is created and custom field = B, create story 4

If Epic is created and custom field = C, create story 5

 

If this is possible, does anyone have an example I could reference?

2 answers

Hello Wes,

I think the following  postfunction script will be helpful for you. Do not forget the place the postfunction to move under the issue created event.

import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.issue.Issue
import com.atlassian.jira.issue.MutableIssue
import com.atlassian.jira.issue.fields.CustomField
import org.apache.log4j.Logger

Logger log = Logger.getLogger("Your script name")
log.debug ("Script started")

try {
def user = ComponentAccessor.getJiraAuthenticationContext().getLoggedInUser()
def issue = issue

def customField = ComponentAccessor.getCustomFieldManager().getCustomFieldObject("your custom field id")
def customFieldValue = customField.getValue(issue)

switch (customFieldValue){
case "A":
createStory(user, issue, ...); // story1
createStory(user, issue ,...); // story2
createStory(user, issue, ...); // story3
break
case "B":
createStory(user, issue, ...); // story4
break
case "C":
createStory(user, issue, ...); // story5
break
default:
log.error("Invalid input!")
break
}
}catch(Exception e){
log.error(e)
}

private void createStory(user, issue, ...){
MutableIssue newStory = ComponentAccessor.getIssueFactory().getIssue()
newStory.setSummary(...)
newStory.setReporter(...)
newStory.setAssignee(...)
newStory.setParentObject(...)
newStory.setProjectObject(...)
newStory.setIssueTypeId(...)

def inputParameters = ["issue": newStory] as Map<String, Object>
ComponentAccessor.getIssueManager().createIssueObject(user, inputParameters)
ComponentAccessor.getSubTaskManager().createSubTaskIssueLink(issue, newStory, user)
}

You can use Create on transition add-on. Once this add-on installed, you can go to workflow, and add a post-function which will show you below options:

 

createIssueOnTransition.PNG

You can create issues based on the conditions. Hope this helps.

Suggest an answer

Log in or Sign up to answer
TAGS

Atlassian Community Events