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,257,261
Community Members
 
Community Events
164
Community Groups

Add an existing Issue type to a existing issue type scheme using groovy

Hi,

I am trying to add an existing Issue type to a existing issue type schemes in specific projects.

I am trying o use scriptrunner for that, I can access the  Issue type and the Issue type scheme.

But I haven't found any method to add this issue type to the project issue type scheme.

I will appreciate any help .

 

Many thanks

1 answer

Hi @Joseszs welcome on the community. I think you can use IssueTypeSchemeManager component (https://docs.atlassian.com/software/jira/docs/api/8.0.0/com/atlassian/jira/issue/fields/config/manager/IssueTypeSchemeManager.html).

There are following methods which might be interesting for you

  • getConfigScheme - to get issuetypescheme for your project
  • OR
  • getAllSchemes - to get all the schemes
  • getIssueTypesForScheme - to get issuetypes for the scheme
  • update - to update scheme with adjusted collection of issuetype IDs

SO it might be

  1. search for required scheme based on the Project or filter it by name (or anything else)
  2. get Collection<String> of issueTypeIds
  3. update collection with required issueTypeId
  4. update issue type scheme with updated collection

Hi @Martin Bayer _MoroSystems_ s_r_o__ 

 

When I am calling to update I am getting the following error:

 

groovy.lang.MissingMethodException: No signature of method: Script35.update() is applicable for argument types: (com.atlassian.jira.issue.fields.config.FieldConfigSchemeImpl, ArrayList) values: [com.atlassian.jira.issue.fields.config.FieldConfigSchemeImpl@2083baf3, ...]
Possible solutions: putAt(java.lang.String, java.lang.Object)
at com.onresolve.scriptrunner.runner.rest.common.CustomEndpointDelegate.methodMissing(CustomEndpointDelegate.groovy:28)
at Script35.run(Script35.groovy:112)

 

Any idea what can be wrong?

 

Many thanks

Hi @Joseszs can you share the script?

something like this:

 

def KEY_NEW_PROJECT = "YEYG"
Project project = ComponentAccessor.getProjectManager()getProjectObjByKey(KEY_NEW_PROJECT);

IssueTypeSchemeManager its = ComponentAccessor.getIssueTypeSchemeManager();

FieldConfigScheme p = its.getConfigScheme(project);


Collection<IssueType> Itsm = ComponentAccessor.getIssueTypeSchemeManager().getIssueTypesForProject(project);

 


Collection<String> collection =   Itsm.eachWithIndex { val, idx -> println "$val in position $idx" }.id ;   

collection.add(11800)


update(p,collection);

 

 

regards

Hi @Joseszs , We had the same requirement. Try this it worked for us.

try by running the below snippet.

I made 2 changes, id 11800 must be string and update method needs to be invoked on its (object of IssueTypeSchemeManager )

 

def KEY_NEW_PROJECT = "YEYG"
Project project = ComponentAccessor.getProjectManager()getProjectObjByKey(KEY_NEW_PROJECT);

IssueTypeSchemeManager its = ComponentAccessor.getIssueTypeSchemeManager();

FieldConfigScheme p = its.getConfigScheme(project);


Collection<IssueType> Itsm = ComponentAccessor.getIssueTypeSchemeManager().getIssueTypesForProject(project);

 


Collection<String> collection =   Itsm.eachWithIndex { val, idx -> println "$val in position $idx" }.id ;   

collection.add(11800)

collection.add('11800')

update(p,collection);

its.update(p,collection); 

Suggest an answer

Log in or Sign up to answer
TAGS

Community Events

Connect with like-minded Atlassian users at free events near you!

Find an event

Connect with like-minded Atlassian users at free events near you!

Unfortunately there are no Community Events near you at the moment.

Host an event

You're one step closer to meeting fellow Atlassian users at your local event. Learn more about Community Events

Events near you