This script fetches all of the projects in a Jira Cloud instance. It then fetches all of the project roles for that project, and finally fetches all of the users in that role for that project. In this way, it iterates through the projects and returns information about the users in the project roles.
import groovy.json.JsonSlurper
def sb = []
//Define a string buffer to hold the results
def getUsers = get("/rest/api/2/project")
.header('Content-Type', 'application/json')
.asJson()
//Get the list of projects in the instance
def content = getUsers.properties.rawBody
//Get the raw body contents of the HTTP response
def scanner = new java.util.Scanner(content).useDelimiter("\\A")
String rawBody = scanner.hasNext() ? scanner.next() : ""
def json = new JsonSlurper().parseText(rawBody)
//Turn the raw body contents into JSON
json.each{ project ->
//Iterate through the projects
sb.add("$project.name")
def getRoles = get("/rest/api/2/project/$project.id/role")
.header('Content-Type', 'application/json')
.asObject(Map)
//For each project, get the list of roles
getRoles.body.each{ projectRole ->
//Iterate through the project roles
def getRoleMembers = get("$projectRole.value")
.header('Content-Type', 'application/json')
.asObject(Map)
//Return the details about each role
getRoleMembers.body.actors.each{ roleMember ->
//Get all the actors (users) in that role
sb.add("$getRoleMembers.body.name: $roleMember.displayName")
}
}
}
return sb
//Return the results
Leave a Reply