I am trying to mass transfer projects from one category to another.
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.project.ProjectCategory
import com.atlassian.jira.project.ProjectManager
def projectManager = ComponentAccessor.getProjectManager()
String[] projectList = projectManager.getProjectObjectsFromProjectCategory(10300)
def i
for (i = 0; i <= projectList.length; i++){
projectManager.setProjectCategory(projectList[i].minus('Project: '), 'Close')
}
No signature of method: com.atlassian.jira.project.CachingProjectManager.setProjectCategory() is applicable for argument types: (java.lang.String, java.lang.String) values: [PFO, Close] Possible solutions: setProjectCategory(com.atlassian.jira.project.Project, com.atlassian.jira.project.ProjectCategory), getProjectCategory(java.lang.Long), createProjectCategory(java.lang.String, java.lang.String)
By defining your projectList as String[] ... you are hamstringing yourself. Just get them as objects.
Then you also need to get the object for the target new category.
And finally ... this is groovy ... leverage it for simplicity
Try this
import com.atlassian.jira.component.ComponentAccessor
def projectManager = ComponentAccessor.projectManager
def projectList = projectManager.getProjectObjectsFromProjectCategory(10300)
def newCat = projectManager.getProjectCategoryObjectByName('Close')
projectList.each{
projectManager.setProjectCategory(it,newCat )
}
Hi ,
Where to pass the projects? I need to set Project category for few projects .
Please suggest.
Regards
Likhitha
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Try this in the console:
import com.atlassian.jira.component.ComponentAccessor
import com.onresolve.scriptrunner.parameters.annotation.ShortTextInput
@ShortTextInput(description = "List of project Keys separated by commas", label = "Project Key List")
String projectListString
@ShortTextInput(description = '', label = "New Category")
String categoryName
def projectManager = ComponentAccessor.projectManager
def projectList = projectListString.tokenize(' ,').findResults { pkey ->
projectManager.getProjectByCurrentKey(pkey)
}
def newCat = projectManager.getProjectCategoryObjectByName(categoryName)
if (!newCat) {
return "There is no category by the name $categoryName. Manually assign that category to one project from the project settings first, then come back here to bulk-update more projects."
}
projectList.each {
projectManager.setProjectCategory(it, newCat)
}
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
The point of the script I wrote was to give you a simple tool to use in the console.
This is what it is supposed to look like:
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.
Online forums and learning are now in one easy-to-use experience.
By continuing, you accept the updated Community Terms of Use and acknowledge the Privacy Policy. Your public name, photo, and achievements may be publicly visible and available in search engines.
You must be a registered user to add a comment. If you've already registered, sign in. Otherwise, register and sign in.