Repository navigation
fix: isolate SDL npm registry from build CFS configuration - #1727
Merged
Merged
Conversation
wenyt (wenytang-ms)
requested review from
Changyong Gong (chagong),
Sheng Chen (jdneo) and
Jinbo Wang (testforstephen)
as code owners
October 30, 2026 03:44
Changyong Gong (chagong)
approved these changes
Oct 30, 2026
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Add
npm_config_registrytoextends.parameters.sdl.sourceAnalysisVariablesToResetin.azure-pipelines/ci.yml,.azure-pipelines/nightly.yml, and.azure-pipelines/rc.yml. Preserve CI's existing SDL source-analysis pool and leave Build's CFS configuration, Node versions, and feed permissions unchanged.This prevents the pipeline-wide CFS registry environment variable from overriding Guardian's feed-scoped authenticated temporary
.npmrcin injected SDL source-analysis jobs. It follows the validated fix in microsoft/vscode-spring-boot-dashboard#453.Observed nightly failure
Debugger nightly 20261030.1 / build 32409803, running
mainata114556, failed before source scanning with:The Build stage and VSIX artifact succeeded. The failure is in Guardian's injected SDL job, not the extension's lint or package steps.
The upstream 1ES update changed Node initialization, leaving Guardian using the image's system npm instead of the previously installed ToolCache npm. The pipeline-wide CFS registry override conflicts with Guardian's feed-scoped file-authentication fallback. A same-image, same-toolchain Spring Dashboard registry-only control run 32408902 passed both Guardian ESLint tasks after clearing only this SDL registry variable; no Node downgrade or feed-permission change was needed.
Scope audit
Audited all five pipelines on current
main(a114556) using Azure Pipelines template previews:The release pipelines use 1ES templates but compile to release/tag jobs without injected SDL source analysis, so no reset is needed there.
Validation
git diff --checkpassed.previewRun: truewithyamlOverridecompiled all five baseline and final configurations successfully inmseng/VSJava.npm_config_registryoverride only inSDLSources_self.e90a15awith previews of all five final configurations and automated assertions for global versus SDL registry scope.Current check blocker
The existing GitHub Actions Windows check failed in
Windows process discovery / converts a legacy code page to UTF-8 in FullLanguage modewithspawnSync powershell.exe ETIMEDOUT. That test and its implementation are unchanged by this YAML-only PR; no unrelated test fix is included.Other Java extensions
The same Guardian installation failure was found in Maven nightly 32408936, Maven RC 32408927, and Java Test pre-release 32408766.
Current source already contains corresponding merged fixes: microsoft/vscode-maven#1235, microsoft/vscode-java-test#1952, microsoft/vscode-java-dependency#1117, microsoft/vscode-java-pack#1789, microsoft/vscode-gradle#1979 (active
developbranch), microsoft/vscode-spring-initializr#328, and microsoft/vscode-spring-boot-dashboard#453. No additional cross-repository changes or duplicate PRs were made.Limitations
This is a preventive isolation fix based on the validated cross-repository issue. No repository-specific HTTP 401 reproduction or post-fix execution run is claimed; preview compilation does not execute Guardian.