Skip to content

Instantly share code, notes, and snippets.

@epishan
Created February 22, 2019 10:12
Show Gist options
  • Select an option

  • Save epishan/2cc28e1a592e7229b848ebf72886167b to your computer and use it in GitHub Desktop.

Select an option

Save epishan/2cc28e1a592e7229b848ebf72886167b to your computer and use it in GitHub Desktop.

Revisions

  1. epishan created this gist Feb 22, 2019.
    29 changes: 29 additions & 0 deletions jira_get_users_by_project_role
    Original file line number Diff line number Diff line change
    @@ -0,0 +1,29 @@
    import com.atlassian.jira.ComponentManager
    import com.atlassian.jira.project.Project
    import com.atlassian.jira.project.ProjectManager
    import com.atlassian.jira.security.roles.ProjectRole
    import com.atlassian.jira.security.roles.ProjectRoleActors
    import com.atlassian.jira.security.roles.ProjectRoleManager
    import com.atlassian.jira.component.ComponentAccessor
    import com.atlassian.jira.project.ProjectCategory



    ComponentManager componentManager = ComponentManager.getInstance()
    ProjectManager projectManager = ComponentAccessor.getProjectManager()
    ProjectRoleManager projectRoleManager = ComponentManager.getComponentInstanceOfType(ProjectRoleManager.class) as ProjectRoleManager

    // name of role here
    ProjectRole devsRole = projectRoleManager.getProjectRole("Administrator")
    ProjectCategory projectCat = projectManager.getProjectCategoryObjectByName("Logistics")

    projectManager.getProjectObjects().each {Project project ->
    if (project.getProjectCategory() == projectCat) {
    ProjectRoleActors actors = projectRoleManager.getProjectRoleActors(devsRole, project)

    log.warn "$project.key, $project.name, $project.lead, ${actors.getUsers()*.name}\n";

    // if there is only one member of the role or you only want the first you could do:
    //log.debug actors.getUsers().toList()?.first()?.name
    }
    }