Public/Jira/Issues/Find-AtlassianCloudJiraIssue.ps1
function Find-AtlassianCloudJiraIssue{ [CmdletBinding()] param( [Parameter(Mandatory, Position=0)] [ValidateNotNullOrEmpty()] [string]$Query, [Parameter(Mandatory, Position=1)] [ValidateNotNullOrEmpty()] [string]$AtlassianOrgName, [Parameter(Mandatory, Position=2)] [ValidateNotNullOrEmpty()] [string]$Pat ) $headers = @{ Authorization = "Basic $($Pat)" } $jiraEndpoint = "https://$AtlassianOrgName.atlassian.net/rest/api/3/" $body = @{ jql = $Query } | ConvertTo-Json $jqlIssueRequest = Invoke-RestMethod -Method Post -Body $body -Uri ($jiraEndpoint + "search?maxResults=1000") -ContentType application/json -Headers $headers $issues = @() foreach ($issue in $jqlIssueRequest.issues) { $issues += $issue } while (($jqlIssueRequest.startAt + $jqlIssueRequest.maxResults) -lt $jqlIssueRequest.total) { $end = 2000 + $jqlIssueRequst.startAt if ($end -gt $jqlIssueRequst.total) { $end = $jqlIssueRequst.total } Write-Verbose "Getting issues [$($jqlIssueRequest.maxResults + $jqlIssueRequst.startAt)-$end/$($jqlIssueRequst.total)]" $jqlIssueRequest = Invoke-RestMethod -Method Post -Body $body -Uri ($jiraEndpoint + "search?maxResults=1000&startAt=$($jqlIssueRequest.maxResults + $jqlIssueRequst.startAt)") -ContentType application/json -Headers $headers foreach ($issue in $jqlIssueRequest.issues) { $issues += $issue } } return $issues } |