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,359,865
Community Members
 
Community Events
168
Community Groups

Restricting issue types at creation - no conditions

My end goal is to restrict a project's issue creation to only a handful of issues, let's call them Document, Story, and Epic. I'm also very new to this add-on and scripting in general so apologies for any egregious errors; I hope it's an easy fix.

I think the following is syntactically correct but I can't get it to work. I have it set as an Initializer function and I've triple checked that my mapping is correct:

 

import static com.atlassian.jira.issue.IssueFieldConstants.ISSUE_TYPE
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.config.*

def allowedTypes = ConstantsManager.getAllIssueTypeObjects().findAll{
it.name in ["Document","Story","Epic"]}

getFieldById(ISSUE_TYPE).setFieldOptions(allowedTypes)

 

The logs say "Returning map: [:]" which makes me think I'm not using the right method to return issue types in the first place. Many of the current documentation/forum questions I do find are using deprecated methods like getIssueTypeObject. Does anyone have a working script or ideas?

We are using JIRA Server v 7.4.1, ScriptRunner 5.1.6.

 

 

3 answers

Hi Daniel, thanks for your help. Still not seeing the list of issues. I get the same result of  "Returning map: [:]", and I also see

"Script function failed on issue: (create issue) project/issuetype: DEV/Other, user: biasella, fieldId: __init__, file: <inline script>"

If I may: you could try to change your approach. When with an issue like this, I always say, "try to simplify the problem, and make it work in it's simplest form"

Try this:

import static com.atlassian.jira.issue.IssueFieldConstants.ISSUE_TYPE
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.config.*

def allowedTypes = ConstantsManager.getAllIssueTypeObjects()

getFieldById(ISSUE_TYPE).setFieldOptions(allowedTypes)

 If that loads anything, you know that your closure is the one that's failing, then, I would suggest that you google uses of findAll() closures in groovy and try to find the one that would suit you the most.

If you are still struggling after this, come back and I'll send you the proper code.

Cheers!

Dyelamos

Suggest an answer

Log in or Sign up to answer
TAGS
Community showcase
Published in Jira

Online AMA this week: Your project management questions answered by Jira Design Lead James Rotanson

We know that great teams require amazing project management chops. It's no surprise that great teams who use Jira have strong project managers, effective workflows, and secrets that bring planning ...

172 views 1 6
Read article

Atlassian Community Events