From b6dd27f0b11ce1879ec70ffa1e1307cb663b7db4 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Wed, 12 Aug 2026 19:45:43 +0000 Subject: [PATCH 1/6] Update dependencies from build 326816 Updated Dependencies: Microsoft.DotNet.Arcade.Sdk (Version 10.0.0-beta.26381.105 -> 10.0.0-beta.26412.106) [[ commit created by automation ]] --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 6 +- eng/common/Get-GitHubAppToken.ps1 | 164 ++++++++++++++++++ eng/common/core-templates/job/onelocbuild.yml | 28 ++- .../job/publish-build-assets.yml | 2 - .../core-templates/jobs/codeql-build.yml | 1 - .../post-build/common-variables.yml | 2 - .../steps/get-github-app-token.yml | 79 +++++++++ .../core-templates/steps/publish-logs.yml | 2 - .../steps/get-github-app-token.yml | 7 + .../templates/steps/get-github-app-token.yml | 7 + global.json | 2 +- 12 files changed, 289 insertions(+), 13 deletions(-) create mode 100644 eng/common/Get-GitHubAppToken.ps1 create mode 100644 eng/common/core-templates/steps/get-github-app-token.yml create mode 100644 eng/common/templates-official/steps/get-github-app-token.yml create mode 100644 eng/common/templates/steps/get-github-app-token.yml diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 11686696251..9e49e173784 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -7,7 +7,7 @@ This file should be imported by eng/Versions.props 10.0.10 - 10.0.0-beta.26381.105 + 10.0.0-beta.26412.106 10.0.10 10.0.10 10.0.10 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 66ea22bc30d..d0aef8359c6 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,6 +1,6 @@ - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -8,9 +8,9 @@ - + https://github.com/dotnet/dotnet - 6e38c59c51ac7a6995f6252de38caaff27af165d + 46d67f4a3e8271024855db8eef477b5b6509e19c diff --git a/eng/common/Get-GitHubAppToken.ps1 b/eng/common/Get-GitHubAppToken.ps1 new file mode 100644 index 00000000000..9c7e3dcd6ac --- /dev/null +++ b/eng/common/Get-GitHubAppToken.ps1 @@ -0,0 +1,164 @@ +# Mints a short-lived GitHub App installation access token by signing a JWT +# with a private key stored in Azure Key Vault (RSA, RS256). The signed JWT is +# exchanged with the GitHub API for a token scoped to a single installation. +# +# Requirements: +# - A GitHub App whose private key has been uploaded into Key Vault as an RSA +# key (the PEM converted to a Key Vault *key*, NOT stored as a secret). +# - The caller (the federated Azure service connection used to run this script) +# must have the `Key Vault Crypto User` role (or at minimum the `Sign` +# action) on that key. +# - The App must be installed on the target organization/account +# (`InstallationOwner`) with the permissions/repositories it needs. +# +# Installation tokens (ghs_*) are exempt from the enterprise classic-PAT +# lifetime policy, which is why this replaces the long-lived PAT. + +[CmdletBinding()] +param( + # Name of the Key Vault that holds the GitHub App's RSA signing key. + [Parameter(Mandatory = $true)] + [string] $KeyVaultName, + + # Name of the RSA key inside the Key Vault (the App's private key). + [Parameter(Mandatory = $true)] + [string] $KeyName, + + # The GitHub App's Client ID (the value to put in the `iss` JWT claim). + [Parameter(Mandatory = $true)] + [string] $AppClientId, + + # Login of the organization or user account whose installation we should + # mint the token for (e.g. `dotnet`, `microsoft`). + [Parameter(Mandatory = $true)] + [string] $InstallationOwner, + + # Optional Azure DevOps pipeline variable name to set with the installation + # token (marked as a secret). When not specified, the token is written to + # stdout instead. + [Parameter(Mandatory = $false)] + [string] $OutputVariableName +) + +$ErrorActionPreference = 'Stop' +$PSNativeCommandUseErrorActionPreference = $true + +. $PSScriptRoot\pipeline-logging-functions.ps1 + +function ConvertTo-Base64Url([byte[]] $bytes) { + return [Convert]::ToBase64String($bytes).TrimEnd('=').Replace('+', '-').Replace('/', '_') +} + +# Build JWT header and payload. Use [ordered] hashtables so JSON +# serialization is deterministic. +$jwtHeader = [ordered]@{ + alg = 'RS256' + typ = 'JWT' +} +$now = [System.DateTimeOffset]::UtcNow +$jwtPayload = [ordered]@{ + iat = $now.AddMinutes(-1).ToUnixTimeSeconds() + exp = $now.AddMinutes(5).ToUnixTimeSeconds() + iss = $AppClientId +} + +$headerEncoded = ConvertTo-Base64Url ([System.Text.Encoding]::UTF8.GetBytes(($jwtHeader | ConvertTo-Json -Compress))) +$payloadEncoded = ConvertTo-Base64Url ([System.Text.Encoding]::UTF8.GetBytes(($jwtPayload | ConvertTo-Json -Compress))) +$signingInput = "$headerEncoded.$payloadEncoded" + +# Key Vault `sign` expects the *digest* (base64), not the raw bytes. +$sha256 = [System.Security.Cryptography.SHA256]::Create() +$digestBytes = $sha256.ComputeHash([System.Text.Encoding]::UTF8.GetBytes($signingInput)) +$digestBase64 = [Convert]::ToBase64String($digestBytes) + +Write-Host "Signing JWT with key '$KeyName' in vault '$KeyVaultName'..." +$previousNativeCommandErrorPreference = $PSNativeCommandUseErrorActionPreference +try { + # Azure CLI can emit non-fatal Python warnings to stderr even when signing succeeds. + # Use the exit code to determine success for this invocation. + $PSNativeCommandUseErrorActionPreference = $false + $signatureBase64 = az keyvault key sign ` + --vault-name $KeyVaultName ` + --name $KeyName ` + --algorithm RS256 ` + --digest $digestBase64 ` + --query signature ` + --output tsv ` + --only-show-errors + $signExitCode = $LASTEXITCODE +} +catch { + Write-PipelineTelemetryError -Category 'Build' -Message "Failed to sign the JWT via Key Vault (key '$KeyName', vault '$KeyVaultName'): $_. Verify the service connection identity has the 'Key Vault Crypto User' role (Sign action) on the key." + exit 1 +} +finally { + $PSNativeCommandUseErrorActionPreference = $previousNativeCommandErrorPreference +} +if ($signExitCode -ne 0 -or [string]::IsNullOrWhiteSpace($signatureBase64)) { + Write-PipelineTelemetryError -Category 'Build' -Message "'az keyvault key sign' exited with code $signExitCode for key '$KeyName' in vault '$KeyVaultName'. Verify the service connection identity has the 'Key Vault Crypto User' role (Sign action) on the key." + exit 1 +} +$signatureUrl = $signatureBase64.Trim().TrimEnd('=').Replace('+', '-').Replace('/', '_') +$jwt = "$signingInput.$signatureUrl" + +$headers = @{ + Authorization = "Bearer $jwt" + 'X-GitHub-Api-Version' = '2022-11-28' + Accept = 'application/vnd.github+json' + 'User-Agent' = 'dotnet-arcade-onelocbuild' +} + +Write-Host "Looking up installation for '$InstallationOwner'..." +try { + $installations = @() + $page = 1 + do { + # 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 + $pageInstallations = @($pageResponse) + $installations += $pageInstallations + $page++ + } while ($pageInstallations.Count -eq 100) +} +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 +} +$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 ` + -Uri "https://api.github.com/app/installations/$($installation.id)/access_tokens" ` + -Headers $headers ` + -Method Post ` + -ContentType 'application/json' +} +catch { + Write-PipelineTelemetryError -Category 'Build' -Message "Failed to mint an installation access token for '$InstallationOwner' (installation $($installation.id)): $_" + exit 1 +} + +Write-Host "Got installation token for '$InstallationOwner' (expires $($tokenResponse.expires_at))." +if ($OutputVariableName) { + Write-Host "Setting pipeline variable '$OutputVariableName'." + Write-Host "##vso[task.setvariable variable=$OutputVariableName;issecret=true]$($tokenResponse.token)" +} +else { + Write-Host $tokenResponse.token -ForegroundColor Green +} diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml index 12d7e55a94b..b28af6613c2 100644 --- a/eng/common/core-templates/job/onelocbuild.yml +++ b/eng/common/core-templates/job/onelocbuild.yml @@ -14,6 +14,15 @@ parameters: # exist, and any pipeline that sets this to '' fall back to PAT-based auth via the CeapexPat parameter. CeapexServiceConnection: 'dnceng-onelocbuild-ceapex' + # GitHub App authentication for the OneLoc check-in PR (dnceng/internal only). + # The infrastructure identifiers are centralized here and the App path is enabled by default. + # DevDiv requires its own project-scoped service connection before this path can be enabled there. + UseGitHubAppAuthentication: true + GitHubAppServiceConnection: 'dnceng-oneloc-githubapp' + GitHubAppClientId: 'Iv23lijBU8x3gc9lDOc9' + GitHubAppKeyVaultName: 'EngKeyVault' + GitHubAppKeyName: 'oneloc-localization-app-key' + SourcesDirectory: $(System.DefaultWorkingDirectory) CreatePr: true AutoCompletePr: false @@ -88,6 +97,20 @@ jobs: outputVariableName: 'CeapexEntraToken' condition: ${{ parameters.condition }} + # Mint a short-lived GitHub App installation token for the loc check-in PR (dnceng/internal only). + # All other projects fall back to PAT-based auth, since the app service connection is scoped to dnceng/internal. + - ${{ if and(eq(parameters.RepoType, 'gitHub'), eq(parameters.UseGitHubAppAuthentication, true), eq(variables['System.TeamProject'], 'internal')) }}: + - template: /eng/common/core-templates/steps/get-github-app-token.yml + parameters: + is1ESPipeline: ${{ parameters.is1ESPipeline }} + azureSubscription: ${{ parameters.GitHubAppServiceConnection }} + keyVaultName: ${{ parameters.GitHubAppKeyVaultName }} + keyName: ${{ parameters.GitHubAppKeyName }} + appClientId: ${{ parameters.GitHubAppClientId }} + installationOwner: ${{ parameters.GitHubOrg }} + outputVariableName: 'GitHubAppInstallationToken' + condition: ${{ parameters.condition }} + - task: OneLocBuild@2 displayName: OneLocBuild env: @@ -109,7 +132,10 @@ jobs: patVariable: ${{ parameters.CeapexPat }} ${{ if eq(parameters.RepoType, 'gitHub') }}: repoType: ${{ parameters.RepoType }} - gitHubPatVariable: "${{ parameters.GithubPat }}" + ${{ if and(eq(parameters.UseGitHubAppAuthentication, true), eq(variables['System.TeamProject'], 'internal')) }}: + gitHubPatVariable: "$(GitHubAppInstallationToken)" + ${{ if or(eq(parameters.UseGitHubAppAuthentication, false), ne(variables['System.TeamProject'], 'internal')) }}: + gitHubPatVariable: "${{ parameters.GithubPat }}" ${{ if ne(parameters.MirrorRepo, '') }}: isMirrorRepoSelected: true gitHubOrganization: ${{ parameters.GitHubOrg }} diff --git a/eng/common/core-templates/job/publish-build-assets.yml b/eng/common/core-templates/job/publish-build-assets.yml index 53af522d6d4..718b7f0a0ac 100644 --- a/eng/common/core-templates/job/publish-build-assets.yml +++ b/eng/common/core-templates/job/publish-build-assets.yml @@ -58,8 +58,6 @@ jobs: parameters: is1ESPipeline: ${{ parameters.is1ESPipeline }} - ${{ if and(eq(parameters.runAsPublic, 'false'), ne(variables['System.TeamProject'], 'public'), notin(variables['Build.Reason'], 'PullRequest')) }}: - - group: Publish-Build-Assets - - group: AzureDevOps-Artifact-Feeds-Pats - name: runCodesignValidationInjection value: false # unconditional - needed for logs publishing (redactor tool version) diff --git a/eng/common/core-templates/jobs/codeql-build.yml b/eng/common/core-templates/jobs/codeql-build.yml index dbc14ac580a..7d5e0473a1d 100644 --- a/eng/common/core-templates/jobs/codeql-build.yml +++ b/eng/common/core-templates/jobs/codeql-build.yml @@ -18,7 +18,6 @@ jobs: enableTelemetry: true variables: - - group: Publish-Build-Assets # The Guardian version specified in 'eng/common/sdl/packages.config'. This value must be kept in # sync with the packages.config file. - name: DefaultGuardianVersion diff --git a/eng/common/core-templates/post-build/common-variables.yml b/eng/common/core-templates/post-build/common-variables.yml index d5627a994ae..3413a9a573e 100644 --- a/eng/common/core-templates/post-build/common-variables.yml +++ b/eng/common/core-templates/post-build/common-variables.yml @@ -1,6 +1,4 @@ variables: - - group: Publish-Build-Assets - # Whether the build is internal or not - name: IsInternalBuild value: ${{ and(ne(variables['System.TeamProject'], 'public'), contains(variables['Build.SourceBranch'], 'internal')) }} diff --git a/eng/common/core-templates/steps/get-github-app-token.yml b/eng/common/core-templates/steps/get-github-app-token.yml new file mode 100644 index 00000000000..6d42a48d3c3 --- /dev/null +++ b/eng/common/core-templates/steps/get-github-app-token.yml @@ -0,0 +1,79 @@ +# Mints a short-lived GitHub App installation access token by signing a JWT +# with a private key stored in Azure Key Vault (RSA, RS256). The JWT is +# exchanged with the GitHub API for a token scoped to a single installation. +# +# Requirements (per GitHub App you want to authenticate as): +# - A GitHub App with its private key uploaded into Key Vault as an RSA key +# (PEM converted to a key, NOT stored as a secret). +# - The Azure service connection passed via `azureSubscription` must be +# granted the `Key Vault Crypto User` role (or at minimum `Sign` action) +# on that key. +# - The App must be installed on the target organization/account +# (`installationOwner`) with the permissions/repositories you need. +# +# Output: a secret pipeline variable named ${{ parameters.outputVariableName }} +# containing the installation access token. Token lifetime is ~1 hour and is +# automatically scrubbed from logs. Installation tokens are exempt from the +# enterprise classic-PAT lifetime policy. + +parameters: +# Azure DevOps service connection (federated) that can call +# `az keyvault key sign` on the App's signing key. +- name: azureSubscription + type: string + +# Name of the Key Vault that holds the GitHub App's RSA signing key. +- name: keyVaultName + type: string + +# Name of the RSA key inside the Key Vault (the App's private key). +- name: keyName + type: string + +# The GitHub App's Client ID (the value to put in the `iss` JWT claim). +# Prefer this over the numeric App ID; GitHub accepts either, but Client ID +# is the documented form going forward. +- name: appClientId + type: string + +# Login of the organization or user account whose installation we should +# mint the token for (e.g. `dotnet`, `microsoft`). +- name: installationOwner + type: string + +# Name of the pipeline variable that will receive the installation token. +- name: outputVariableName + type: string + +- name: is1ESPipeline + type: boolean + +- name: stepName + type: string + default: getGitHubAppInstallationToken + +- name: condition + type: string + default: '' + +- name: displayName + type: string + default: Get GitHub App installation token + +steps: +- task: AzureCLI@2 + displayName: ${{ parameters.displayName }} + name: ${{ parameters.stepName }} + ${{ if ne(parameters.condition, '') }}: + condition: ${{ parameters.condition }} + inputs: + azureSubscription: ${{ parameters.azureSubscription }} + scriptType: pscore + scriptLocation: inlineScript + inlineScript: | + & "$(System.DefaultWorkingDirectory)/eng/common/Get-GitHubAppToken.ps1" ` + -KeyVaultName '${{ parameters.keyVaultName }}' ` + -KeyName '${{ parameters.keyName }}' ` + -AppClientId '${{ parameters.appClientId }}' ` + -InstallationOwner '${{ parameters.installationOwner }}' ` + -OutputVariableName '${{ parameters.outputVariableName }}' diff --git a/eng/common/core-templates/steps/publish-logs.yml b/eng/common/core-templates/steps/publish-logs.yml index 4411b3b0eeb..faf703157c8 100644 --- a/eng/common/core-templates/steps/publish-logs.yml +++ b/eng/common/core-templates/steps/publish-logs.yml @@ -30,8 +30,6 @@ steps: -TokensFilePath '$(System.DefaultWorkingDirectory)/eng/BinlogSecretsRedactionFile.txt' -runtimeSourceFeed https://ci.dot.net/internal -runtimeSourceFeedKey '$(dotnetbuilds-internal-container-read-token-base64)' - '$(publishing-dnceng-devdiv-code-r-build-re)' - '$(akams-client-id)' '$(dn-bot-all-orgs-build-rw-code-rw)' '$(System.AccessToken)' ${{parameters.CustomSensitiveDataList}} diff --git a/eng/common/templates-official/steps/get-github-app-token.yml b/eng/common/templates-official/steps/get-github-app-token.yml new file mode 100644 index 00000000000..c89f3641a4d --- /dev/null +++ b/eng/common/templates-official/steps/get-github-app-token.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/get-github-app-token.yml + parameters: + is1ESPipeline: true + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/eng/common/templates/steps/get-github-app-token.yml b/eng/common/templates/steps/get-github-app-token.yml new file mode 100644 index 00000000000..79e182c6416 --- /dev/null +++ b/eng/common/templates/steps/get-github-app-token.yml @@ -0,0 +1,7 @@ +steps: +- template: /eng/common/core-templates/steps/get-github-app-token.yml + parameters: + is1ESPipeline: false + + ${{ each parameter in parameters }}: + ${{ parameter.key }}: ${{ parameter.value }} diff --git a/global.json b/global.json index 6129774fa22..ba5546a8997 100644 --- a/global.json +++ b/global.json @@ -13,6 +13,6 @@ "dotnet": "10.0.302" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26381.105" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26412.106" } } From 3ab29f11c55dfeb520a1451a2247ac6bc30489c5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 13 Aug 2026 00:06:34 +0000 Subject: [PATCH 2/6] Update dependencies from build 326862 Updated Dependencies: Microsoft.DotNet.Arcade.Sdk (Version 10.0.0-beta.26412.106 -> 10.0.0-beta.26412.112) System.CommandLine (Version 2.0.10 -> 2.0.11) System.Formats.Asn1, Microsoft.Extensions.Logging, Microsoft.Extensions.Logging.Abstractions, Microsoft.Extensions.Logging.Console, Microsoft.Extensions.DependencyInjection.Abstractions, Microsoft.Bcl.AsyncInterfaces, System.Diagnostics.DiagnosticSource, System.Text.Json, System.IO.Pipelines, System.Text.Encodings.Web (Version 10.0.10 -> 10.0.11) [[ commit created by automation ]] --- eng/Version.Details.props | 24 +++++++++---------- eng/Version.Details.xml | 50 +++++++++++++++++++-------------------- global.json | 6 ++--- 3 files changed, 40 insertions(+), 40 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 9e49e173784..d688d51b913 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -6,18 +6,18 @@ This file should be imported by eng/Versions.props - 10.0.10 - 10.0.0-beta.26412.106 - 10.0.10 - 10.0.10 - 10.0.10 - 10.0.10 - 2.0.10 - 10.0.10 - 10.0.10 - 10.0.10 - 10.0.10 - 10.0.10 + 10.0.11 + 10.0.0-beta.26412.112 + 10.0.11 + 10.0.11 + 10.0.11 + 10.0.11 + 2.0.11 + 10.0.11 + 10.0.11 + 10.0.11 + 10.0.11 + 10.0.11 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index d0aef8359c6..7bf0ffac92d 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,57 +1,57 @@ - + - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://github.com/dotnet/dotnet - 46d67f4a3e8271024855db8eef477b5b6509e19c + 732e1d04befcd6bfe2a20b47f803a891ba5cbe74 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet - f7d90799ce4ef09a0bb257852a57248d2a8fb8dd + e2f47b0110ed922f21a1522da67279133ce28f32 diff --git a/global.json b/global.json index ba5546a8997..0a6822a7330 100644 --- a/global.json +++ b/global.json @@ -1,6 +1,6 @@ { "sdk": { - "version": "10.0.302", + "version": "10.0.400", "allowPrerelease": true, "rollForward": "latestFeature", "paths": [ @@ -10,9 +10,9 @@ "errorMessage": "The required .NET SDK wasn't found. Please run ./eng/common/dotnet.cmd/sh to install it." }, "tools": { - "dotnet": "10.0.302" + "dotnet": "10.0.400" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26412.106" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26412.112" } } From 65a4dd4092752c6153f95477012ee1e4c13487d5 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 13 Aug 2026 04:40:37 +0000 Subject: [PATCH 3/6] Backflow from https://github.com/dotnet/dotnet / 88c5780 build 326884 Diff: https://github.com/dotnet/dotnet/compare/732e1d04befcd6bfe2a20b47f803a891ba5cbe74..88c5780996625fa108589acd22adaf8246bc78e8 From: https://github.com/dotnet/dotnet/commit/732e1d04befcd6bfe2a20b47f803a891ba5cbe74 To: https://github.com/dotnet/dotnet/commit/88c5780996625fa108589acd22adaf8246bc78e8 [[ commit created by automation ]] --- NuGet.config | 2 ++ eng/Versions.props | 4 ++-- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/NuGet.config b/NuGet.config index 71ab1504e44..0d952a36bca 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,6 +4,7 @@ + @@ -23,6 +24,7 @@ + diff --git a/eng/Versions.props b/eng/Versions.props index 787cb786fcf..ef9b8d93dbb 100644 --- a/eng/Versions.props +++ b/eng/Versions.props @@ -4,9 +4,9 @@ 10.0.400 - false + true release - preview + servicing true true From e105350b7eb39bc7d1a9ca521cebd8db43eb2c1e Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 13 Aug 2026 04:40:38 +0000 Subject: [PATCH 4/6] Update dependencies from build 326884 Updated Dependencies: Microsoft.DotNet.Arcade.Sdk (Version 10.0.0-beta.26412.112 -> 10.0.0-beta.26412.118) [[ commit created by automation ]] --- NuGet.config | 2 -- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 6 +++--- global.json | 2 +- 4 files changed, 5 insertions(+), 7 deletions(-) diff --git a/NuGet.config b/NuGet.config index 0d952a36bca..71ab1504e44 100644 --- a/NuGet.config +++ b/NuGet.config @@ -4,7 +4,6 @@ - @@ -24,7 +23,6 @@ - diff --git a/eng/Version.Details.props b/eng/Version.Details.props index d688d51b913..8f072d9ba90 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -7,7 +7,7 @@ This file should be imported by eng/Versions.props 10.0.11 - 10.0.0-beta.26412.112 + 10.0.0-beta.26412.118 10.0.11 10.0.11 10.0.11 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 7bf0ffac92d..14dfcc234b9 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,6 +1,6 @@ - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -8,9 +8,9 @@ - + https://github.com/dotnet/dotnet - 732e1d04befcd6bfe2a20b47f803a891ba5cbe74 + 88c5780996625fa108589acd22adaf8246bc78e8 diff --git a/global.json b/global.json index 0a6822a7330..e1c41b56ede 100644 --- a/global.json +++ b/global.json @@ -13,6 +13,6 @@ "dotnet": "10.0.400" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26412.112" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26412.118" } } From c3f0fb9a7a938a6e90a88c714d182e34bf932f21 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Thu, 13 Aug 2026 19:30:40 +0000 Subject: [PATCH 5/6] Update dependencies from build 327051 Updated Dependencies: Microsoft.DotNet.Arcade.Sdk (Version 10.0.0-beta.26412.118 -> 10.0.0-beta.26413.106) [[ commit created by automation ]] --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 6 +++--- global.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index 8f072d9ba90..eefe3fd9b3d 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -7,7 +7,7 @@ This file should be imported by eng/Versions.props 10.0.11 - 10.0.0-beta.26412.118 + 10.0.0-beta.26413.106 10.0.11 10.0.11 10.0.11 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 14dfcc234b9..032af0fcc11 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,6 +1,6 @@ - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -8,9 +8,9 @@ - + https://github.com/dotnet/dotnet - 88c5780996625fa108589acd22adaf8246bc78e8 + ac1953eb268c2d1a3265e09dc9eab726997a6039 diff --git a/global.json b/global.json index e1c41b56ede..ddefd5a5421 100644 --- a/global.json +++ b/global.json @@ -13,6 +13,6 @@ "dotnet": "10.0.400" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26412.118" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26413.106" } } From 659f3669c3c337eedb30faa244c99b098336f306 Mon Sep 17 00:00:00 2001 From: "dotnet-maestro[bot]" Date: Fri, 14 Aug 2026 15:21:39 +0000 Subject: [PATCH 6/6] Update dependencies from build 327174 Updated Dependencies: Microsoft.DotNet.Arcade.Sdk (Version 10.0.0-beta.26413.106 -> 10.0.0-beta.26414.104) [[ commit created by automation ]] --- eng/Version.Details.props | 2 +- eng/Version.Details.xml | 6 +++--- global.json | 2 +- 3 files changed, 5 insertions(+), 5 deletions(-) diff --git a/eng/Version.Details.props b/eng/Version.Details.props index eefe3fd9b3d..a7a14961da6 100644 --- a/eng/Version.Details.props +++ b/eng/Version.Details.props @@ -7,7 +7,7 @@ This file should be imported by eng/Versions.props 10.0.11 - 10.0.0-beta.26413.106 + 10.0.0-beta.26414.104 10.0.11 10.0.11 10.0.11 diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml index 032af0fcc11..0f22eb6ab09 100644 --- a/eng/Version.Details.xml +++ b/eng/Version.Details.xml @@ -1,6 +1,6 @@ - + https://dev.azure.com/dnceng/internal/_git/dotnet-dotnet @@ -8,9 +8,9 @@ - + https://github.com/dotnet/dotnet - ac1953eb268c2d1a3265e09dc9eab726997a6039 + a12e9ed784ac46e968f87ff00b944cd1ff374da6 diff --git a/global.json b/global.json index ddefd5a5421..afe75623ae3 100644 --- a/global.json +++ b/global.json @@ -13,6 +13,6 @@ "dotnet": "10.0.400" }, "msbuild-sdks": { - "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26413.106" + "Microsoft.DotNet.Arcade.Sdk": "10.0.0-beta.26414.104" } }