Skip to content

Instantly share code, notes, and snippets.

@ElieMalesys
Last active August 29, 2015 13:55
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save ElieMalesys/8711402 to your computer and use it in GitHub Desktop.
Save ElieMalesys/8711402 to your computer and use it in GitHub Desktop.
list Agile actors
import com.atlassian.jira.component.ComponentAccessor
import com.atlassian.jira.ComponentManager
import com.atlassian.jira.project.Project
import com.atlassian.jira.project.ProjectManager
import com.atlassian.jira.security.roles.ProjectRoleManager
import com.atlassian.jira.security.roles.ProjectRole
import com.atlassian.jira.security.roles.ProjectRoleActors
import com.atlassian.crowd.embedded.api.User
def ghPlugin = ComponentAccessor.getPluginAccessor().getEnabledPlugin("com.pyxis.greenhopper.jira")
def descriptor = ghPlugin.getModuleDescriptor("greenhopper-launcher")
def applicationContext = descriptor.getModule().greenHopperCacheManager.applicationContext
def bridgeServiceLocator = applicationContext.getBean("bridgeServiceLocator")
def greenhopper = bridgeServiceLocator.getInstance().getGreenHopper()
ComponentManager componentManager = ComponentManager.getInstance()
ProjectManager projectManager = componentManager.getProjectManager()
ProjectRoleManager projectRoleManager = ComponentManager.getComponentInstanceOfType(ProjectRoleManager.class) as ProjectRoleManager
ProjectRole devRole = projectRoleManager.getProjectRole("Developer")
ProjectRole adminsRole = projectRoleManager.getProjectRole("Administrator")
def projectsList = projectManager.convertToProjectObjects(greenhopper.getGHConfiguration().getGrantedProjects())
String display = '<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n'
display += '<prjList count=\"' + projectsList.size() + '\">\n'
for (project in projectsList){
display += '\t<project name=\"' + project.getName().replace("&","&amp;") + '\" key=\"' + project.getKey() + '\" lead=\"' + project.getLead().getEmailAddress() + '\">\n'
display += '\t\t <Admins>\n'
ProjectRoleActors admins = projectRoleManager.getProjectRoleActors(adminsRole, project)
for (user in admins.getUsers()){display += '\t\t\t <user>' + user.getEmailAddress() + '</user>\n'}
display += '\t\t </Admins>\n'
display += '\t\t <Devs>\n'
ProjectRoleActors devs = projectRoleManager.getProjectRoleActors(devRole, project)
for (user in devs.getUsers()){display += '\t\t\t <user>' + user.getEmailAddress() + '</user>\n'}
display += '\t\t </Devs>\n'
display += '\t</project>\n'
}
display += '</prjList>\n'
return display
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment