From cdb427a50ad2987ea8364287156bdb66a5be6c15 Mon Sep 17 00:00:00 2001 From: Azure SDK Bot <53356347+azure-sdk@users.noreply.github.com> Date: Tue, 11 Feb 2025 11:34:30 -0800 Subject: [PATCH] Sync eng/common directory with azure-sdk-tools for PR 9803 (#24091) * update Get-ObjectKey to coalesce boolean-like values to their true boolean value * update Get-ObjectKey to call Get-ObjectKey on each item of an array or pscustom object - versus utilizing their values directly --------- Co-authored-by: Scott Beddall --- eng/common/scripts/Helpers/Package-Helpers.ps1 | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/eng/common/scripts/Helpers/Package-Helpers.ps1 b/eng/common/scripts/Helpers/Package-Helpers.ps1 index ee62c0c4e1a6..a8537e22a561 100644 --- a/eng/common/scripts/Helpers/Package-Helpers.ps1 +++ b/eng/common/scripts/Helpers/Package-Helpers.ps1 @@ -178,13 +178,13 @@ function Get-ObjectKey { if ($Object -is [hashtable] -or $Object -is [System.Collections.Specialized.OrderedDictionary]) { $sortedEntries = $Object.GetEnumerator() | Sort-Object Name - $hashString = ($sortedEntries | ForEach-Object { "$($_.Key)=$($_.Value)" }) -join ";" + $hashString = ($sortedEntries | ForEach-Object { "$($_.Key)=$(Get-ObjectKey $_.Value)" }) -join ";" return $hashString.GetHashCode() } elseif ($Object -is [PSCustomObject]) { $sortedProperties = $Object.PSObject.Properties | Sort-Object Name - $propertyString = ($sortedProperties | ForEach-Object { "$($_.Name)=$($_.Value)" }) -join ";" + $propertyString = ($sortedProperties | ForEach-Object { "$($_.Name)=$(Get-ObjectKey $_.Value)" }) -join ";" return $propertyString.GetHashCode() } @@ -194,7 +194,12 @@ function Get-ObjectKey { } else { - return $Object.GetHashCode() + $parsedBool = $null + if ([bool]::TryParse($Object, [ref]$parsedBool)) { + return $parsedBool.GetHashCode() + } else { + return $Object.GetHashCode() + } } }