Public/Jira/Users/Get-AtlassianCloudJiraUser.ps1
function Get-AtlassianCloudJiraUser{ [CmdletBinding()] param( [Parameter(Mandatory = $false, Position=0)] [ValidateNotNullOrEmpty()] [string]$Query, [Parameter(Mandatory, Position=2)] [ValidateNotNullOrEmpty()] [string]$AtlassianOrgName, [Parameter(Mandatory, Position=3)] [ValidateNotNullOrEmpty()] [string]$Pat ) $headers = @{ Authorization = "Basic $($Pat)" 'X-ExperimentalApi' = 'opt-in' } $jiraRoot = "https://$AtlassianOrgName.atlassian.net/rest/api/3/" if ($Query) { $uri = $jiraRoot + "user/search?query=$Query" Write-Verbose "[GET] $uri" return Invoke-RestMethod -Method Get -Uri $uri -ContentType application/json -Headers $headers -Verbose:($Verbose.IsPresent) } else { $uri = $jiraRoot + "users/search?maxResults=1000" Write-Verbose "[GET] $uri" $users = @() $i = 0 $response = Invoke-RestMethod -Method Get -Uri $uri -ContentType application/json -Headers $headers -Verbose:($Verbose.IsPresent) foreach ($user in $response) { $users += $user } $i = $i + $response.Count do { $nextUri = "$($uri)&startAt=$($i)" Write-Verbose "[GET] $nextUri" $response = Invoke-RestMethod -Method Get -Uri $nextUri -ContentType application/json -Headers $headers -Verbose:($Verbose.IsPresent) foreach ($user in $response) { $users += $user } $i = $i + $response.Count } while ($response.Count -eq 1000) return $users } } |