diff --git a/eng/Version.Details.xml b/eng/Version.Details.xml
index 4ba0bd8d65..b9e9f549ca 100644
--- a/eng/Version.Details.xml
+++ b/eng/Version.Details.xml
@@ -27,18 +27,18 @@
-
+
https://github.com/dotnet/arcade
- 43f11677d894d27b41fce39c496836c8207f3b8d
+ df7cbf719bdc6a2e6dfc229542a53bf28a8d5180
-
+
https://github.com/dotnet/arcade
- 43f11677d894d27b41fce39c496836c8207f3b8d
+ df7cbf719bdc6a2e6dfc229542a53bf28a8d5180
-
+
https://github.com/dotnet/arcade
- 43f11677d894d27b41fce39c496836c8207f3b8d
+ df7cbf719bdc6a2e6dfc229542a53bf28a8d5180
diff --git a/eng/common/core-templates/job/onelocbuild.yml b/eng/common/core-templates/job/onelocbuild.yml
index d76ed063ff..932fcef649 100644
--- a/eng/common/core-templates/job/onelocbuild.yml
+++ b/eng/common/core-templates/job/onelocbuild.yml
@@ -9,15 +9,15 @@ parameters:
GithubPat: $(BotAccount-dotnet-bot-repo-PAT)
# Service connection for WIF-based Entra authentication to ceapex feeds (replaces CeapexPat).
- # When set, dnceng/internal builds acquire a federated Entra token instead of using a PAT.
- # All other projects (e.g. DevDiv, public), where this dnceng-scoped service connection does not
- # exist, and any pipeline that sets this to '' fall back to PAT-based auth via the CeapexPat parameter.
+ # dnceng/internal and DevDiv/DevDiv have same-named, project-scoped connections. Other projects,
+ # 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.
+ # GitHub App authentication for the OneLoc check-in PR.
+ # dnceng/internal and DevDiv/DevDiv are enabled by default with their project-scoped service
+ # connections. Other projects must explicitly opt in after provisioning equivalent infrastructure.
UseGitHubAppAuthentication: true
+ UseGitHubAppAuthenticationInOtherProjects: false
GitHubAppServiceConnection: 'dnceng-oneloc-githubapp'
GitHubAppClientId: 'Iv23lijBU8x3gc9lDOc9'
GitHubAppKeyVaultName: 'EngKeyVault'
@@ -88,9 +88,8 @@ jobs:
displayName: Generate LocProject.json
condition: ${{ parameters.condition }}
- # Acquire an Entra token for ceapex feed access via WIF (dnceng/internal only).
- # All other projects use PAT-based auth, since the ceapex service connection is scoped to dnceng/internal.
- - ${{ if and(ne(parameters.CeapexServiceConnection, ''), eq(variables['System.TeamProject'], 'internal')) }}:
+ # Acquire an Entra token for ceapex feed access in the supported internal and DevDiv projects.
+ - ${{ if and(ne(parameters.CeapexServiceConnection, ''), or(eq(variables['System.TeamProject'], 'internal'), eq(variables['System.TeamProject'], 'DevDiv'))) }}:
- template: /eng/common/core-templates/steps/get-federated-access-token.yml
parameters:
is1ESPipeline: ${{ parameters.is1ESPipeline }}
@@ -98,13 +97,16 @@ 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')) }}:
+ # Mint a short-lived GitHub App installation token for the loc check-in PR. Use the connection
+ # provisioned in each supported project; other projects must explicitly opt in and override it.
+ - ${{ if and(eq(parameters.RepoType, 'gitHub'), eq(parameters.UseGitHubAppAuthentication, true), or(eq(variables['System.TeamProject'], 'internal'), eq(variables['System.TeamProject'], 'DevDiv'), eq(parameters.UseGitHubAppAuthenticationInOtherProjects, true))) }}:
- template: /eng/common/core-templates/steps/get-github-app-token.yml
parameters:
is1ESPipeline: ${{ parameters.is1ESPipeline }}
- azureSubscription: ${{ parameters.GitHubAppServiceConnection }}
+ ${{ if and(eq(variables['System.TeamProject'], 'DevDiv'), eq(parameters.GitHubAppServiceConnection, 'dnceng-oneloc-githubapp')) }}:
+ azureSubscription: 'devdiv-oneloc-githubapp'
+ ${{ else }}:
+ azureSubscription: ${{ parameters.GitHubAppServiceConnection }}
keyVaultName: ${{ parameters.GitHubAppKeyVaultName }}
keyName: ${{ parameters.GitHubAppKeyName }}
appClientId: ${{ parameters.GitHubAppClientId }}
@@ -128,15 +130,15 @@ jobs:
${{ if eq(parameters.RepoType, 'gitHub') }}:
isShouldReusePrSelected: ${{ parameters.ReusePr }}
packageSourceAuth: patAuth
- ${{ if and(ne(parameters.CeapexServiceConnection, ''), eq(variables['System.TeamProject'], 'internal')) }}:
+ ${{ if and(ne(parameters.CeapexServiceConnection, ''), or(eq(variables['System.TeamProject'], 'internal'), eq(variables['System.TeamProject'], 'DevDiv'))) }}:
patVariable: $(CeapexEntraToken)
- ${{ if or(eq(parameters.CeapexServiceConnection, ''), ne(variables['System.TeamProject'], 'internal')) }}:
+ ${{ if or(eq(parameters.CeapexServiceConnection, ''), and(ne(variables['System.TeamProject'], 'internal'), ne(variables['System.TeamProject'], 'DevDiv'))) }}:
patVariable: ${{ parameters.CeapexPat }}
${{ if eq(parameters.RepoType, 'gitHub') }}:
repoType: ${{ parameters.RepoType }}
- ${{ if and(eq(parameters.UseGitHubAppAuthentication, true), eq(variables['System.TeamProject'], 'internal')) }}:
+ ${{ if and(eq(parameters.UseGitHubAppAuthentication, true), or(eq(variables['System.TeamProject'], 'internal'), eq(variables['System.TeamProject'], 'DevDiv'), eq(parameters.UseGitHubAppAuthenticationInOtherProjects, true))) }}:
gitHubPatVariable: "$(GitHubAppInstallationToken)"
- ${{ if or(eq(parameters.UseGitHubAppAuthentication, false), ne(variables['System.TeamProject'], 'internal')) }}:
+ ${{ else }}:
gitHubPatVariable: "${{ parameters.GithubPat }}"
${{ if ne(parameters.MirrorRepo, '') }}:
isMirrorRepoSelected: true
diff --git a/eng/common/sdl/packages.config b/eng/common/sdl/packages.config
index 4585cfd6bb..e5f543ea68 100644
--- a/eng/common/sdl/packages.config
+++ b/eng/common/sdl/packages.config
@@ -1,4 +1,4 @@
-
+
diff --git a/global.json b/global.json
index 2a5ff94906..37499f2afe 100644
--- a/global.json
+++ b/global.json
@@ -3,7 +3,7 @@
"dotnet": "9.0.116"
},
"msbuild-sdks": {
- "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.26411.5",
+ "Microsoft.DotNet.Arcade.Sdk": "9.0.0-beta.26429.3",
"Microsoft.Build.NoTargets": "3.7.0"
}
}