public/maester/azuredevops/Test-AzdoResourceUsageWorkItemTag.ps1
|
<# .SYNOPSIS Returns a boolean depending on the configuration. .DESCRIPTION Checks the status of the usage of tag definitions in Azure DevOps, as Azure DevOps supports up to 150,000 tag definitions per organization or collection. https://learn.microsoft.com/en-us/azure/devops/organizations/settings/work/object-limits?view=azure-devops .EXAMPLE ``` Test-AzdoResourceUsageWorkItemTag ``` Returns a boolean depending on the configuration. .LINK https://maester.dev/docs/commands/Test-AzdoResourceUsageWorkItemTag #> function Test-AzdoResourceUsageWorkItemTag { [CmdletBinding()] [OutputType([bool])] param() if ($null -eq (Get-ADOPSConnection)['Organization']) { Write-Verbose 'Not connected to Azure DevOps' Add-MtTestResultDetail -SkippedBecause Custom -SkippedCustomReason 'Not connected to Azure DevOps' return $null } $WorkItemTags = (Get-ADOPSResourceUsage -Force).'Work Item Tags' $CurrentUsage = $($WorkItemTags.count / $WorkItemTags.limit).ToString("P") if ($($WorkItemTags.count / $WorkItemTags.limit) -gt 0.9) { $resultMarkdown = "Work Item Tags Resource Usage limit is greater than 90% - Current usage: $CurrentUsage" $result = $false } else { $resultMarkdown = "Work Item Tags Resource Usage limit is at $CurrentUsage" $result = $true } Add-MtTestResultDetail -Result $resultMarkdown return $result } |