github AtlassianPS/JiraPS v2.16.0-beta

pre-release6 hours ago

🚀 Added

  • Added Jira Cloud vs Data Center compatibility guidance for Copilot code review (#568, [@lipkau])
  • Added -Force parameter to Get-JiraServerInformation to bypass the server info cache
  • Added Test-JiraCloudServer private function — thin boolean wrapper around Get-JiraServerInformation for clean deployment type checks
  • Added Invoke-PaginatedRequest private function — extracts pagination from Invoke-JiraMethod and adds token-based pagination support for API v3
  • Added HTTP 429 rate limit handling in Test-ServerResponse with automatic retry via recursion in Invoke-JiraMethod (respects Retry-After header, exponential backoff)
  • Added Jira Cloud compatibility — the module now auto-detects Cloud vs Data Center/Server via Get-JiraServerInformation and adapts API calls accordingly
  • Added -AccountId parameter to Get-JiraUser for Cloud's account-based user lookup
  • Added Cloud deployment test contexts across test files to cover both Server and Cloud code paths
  • Added "Jira Cloud vs Data Center" section to the authentication documentation

⚙️ Changed

  • Modernized test infrastructure and standardized helper utilities (#549, [@copilot])
  • Removed redundant -Scope It from all test assertions (#562, [@lipkau])
  • Simplified Should -Invoke assertions in attachment tests (#563, [@lipkau])
  • Added -ExpectedMessage to all bare Should -Throw assertions (#564, [@lipkau])
  • Used -ErrorVariable to inspect non-terminating error in Remove-JiraIssue test (#565, [@lipkau])
  • Bumped actions/upload-artifact from 6 to 7 (#557)
  • Bumped actions/download-artifact from 7 to 8 (#559)
  • Bumped dawidd6/action-download-artifact from 12 to 19 (#560, #561)
  • Get-JiraServerInformation now caches its result in module scope; subsequent calls return cached data (cleared on Set-JiraConfigServer or with -Force)
  • ConvertTo-JiraServerInfo defaults DeploymentType to Server when the field is absent (old Jira Server versions)
  • Invoke-JiraMethod delegates pagination to Invoke-PaginatedRequest
  • Test-ServerResponse now handles HTTP 429 rate limit detection with backoff and sleep
  • Get-JiraUser uses ?query= for search and ?accountId= for exact lookup on Cloud; ?username= on Data Center
  • Set-JiraUser and Remove-JiraUser use ?accountId= on Cloud
  • New-JiraIssue reporter field uses @{ accountId = ... } on Cloud
  • Set-JiraIssue and Invoke-JiraIssueTransition assignee fields use @{ accountId = ... } on Cloud
  • Add-JiraGroupMember POST body uses @{ accountId = ... } on Cloud
  • Remove-JiraGroupMember uses &accountId= query parameter on Cloud
  • Add-JiraIssueWatcher and Remove-JiraIssueWatcher use accountId on Cloud
  • Get-JiraIssue JQL search uses /rest/api/3/search/jql with token-based pagination on Cloud
  • Get-JiraIssueWatcher now pipes watchers through ConvertTo-JiraUser for consistent typed output
  • ConvertTo-JiraUser.ToString() falls back to DisplayName or AccountId when Name is empty (GDPR compliance)
  • Resolve-JiraUser routes by accountId pattern on Cloud
  • All deployment type checks use Test-JiraCloudServer instead of inline (Get-JiraServerInformation).DeploymentType calls

🔧 Fixed

  • Fixed typos and casing errors in test assertions and fixtures (#566, [@lipkau])

Don't miss a new JiraPS release

NewReleases is sending notifications on new releases.