diff --git a/NuGet.config b/NuGet.config index 1af36e4f89c..d1a8a417e43 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,6 @@ - @@ -21,7 +20,6 @@ - diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 9a098f97227..abaf3b3665b 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -67,17 +67,17 @@ - + https://github.com/dotnet/arcade - f3bffca1f93573c88a7f9b79fac258dff76f6215 + 43f11677d894d27b41fce39c496836c8207f3b8d - + https://github.com/dotnet/arcade - f3bffca1f93573c88a7f9b79fac258dff76f6215 + 43f11677d894d27b41fce39c496836c8207f3b8d - + https://github.com/dotnet/arcade - f3bffca1f93573c88a7f9b79fac258dff76f6215 + 43f11677d894d27b41fce39c496836c8207f3b8d diff --git a/eng/Versions.props b/eng/Versions.props index 5748ef45d22..8136c1b98e4 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -34,7 +34,7 @@ 9.0.19 - 9.0.0-beta.26406.11 + 9.0.0-beta.26411.5 17.8.43 diff --git a/eng/common/Get-GitHubAppToken.ps1 b/eng/common/Get-GitHubAppToken.ps1 index 6b5899d7a29..9c7e3dcd6ac 100644 --- a/eng/common/Get-GitHubAppToken.ps1 +++ b/eng/common/Get-GitHubAppToken.ps1 @@ -113,10 +113,13 @@ try { $installations = @() $page = 1 do { - $pageInstallations = @(Invoke-RestMethod ` + # Assign the response before wrapping it in @(). PowerShell otherwise + # preserves a top-level JSON array as one nested pipeline object. + $pageResponse = Invoke-RestMethod ` -Uri "https://api.github.com/app/installations?per_page=100&page=$page" ` -Headers $headers ` - -Method Get) + -Method Get + $pageInstallations = @($pageResponse) $installations += $pageInstallations $page++ } while ($pageInstallations.Count -eq 100) @@ -125,12 +128,19 @@ catch { Write-PipelineTelemetryError -Category 'Build' -Message "Failed to list GitHub App installations: $_. The signed JWT may be invalid or the App's Client ID ('$AppClientId') may be incorrect." exit 1 } -$installation = $installations | Where-Object { $_.account.login -ieq $InstallationOwner } | Select-Object -First 1 -if (-not $installation) { +$matchingInstallations = @($installations | Where-Object { $_.account.login -ieq $InstallationOwner }) +if ($matchingInstallations.Count -eq 0) { $found = ($installations | ForEach-Object { $_.account.login }) -join ', ' Write-PipelineTelemetryError -Category 'Build' -Message "No installation found for '$InstallationOwner'. App is installed on: $found" exit 1 } +if ($matchingInstallations.Count -ne 1) { + $matchingIds = ($matchingInstallations | ForEach-Object { $_.id }) -join ', ' + Write-PipelineTelemetryError -Category 'Build' -Message "Found multiple installations for '$InstallationOwner': $matchingIds" + exit 1 +} +$installation = $matchingInstallations[0] +Write-Host "Using installation $($installation.id) for '$($installation.account.login)'." try { $tokenResponse = Invoke-RestMethod ` diff --git a/global.json b/global.json index 9898a5f3009..de74e6bac56 100644 --- a/global.json +++ b/global.json @@ -13,7 +13,7 @@ } }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.26406.11", - "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.26406.11" + "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.26411.5", + "Microsoft.DotNet.Helix.Sdk": "9.0.0-beta.26411.5" } }