[s360-breeze-toolkit: SFI-ES-4.2.4] Use internal npm feed in Azure Pipelines - #715
Conversation
S360-Run-Id: a40e6fea-b1de-4ded-b44a-af6bcd7b7bdb S360-KPI: SFI-ES-4.2.4 S360-Skill: sfi-es424-central-feed-services S360-Arm: dedicated_skill S360-Action-Items: 0f27291c-bc52-49fa-a978-7b4a9c362107:47a034ea-dc7f-4eee-8a18-567a05a98c1f Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0b1d2a96-1af9-41af-aa4e-dd385a363450
Keep local and external contributor builds on the public npm registry while authenticating ADO builds against the internal upstream feed. S360-Run-Id: a40e6fea-b1de-4ded-b44a-af6bcd7b7bdb S360-KPI: SFI-ES-4.2.4 S360-Skill: sfi-es424-central-feed-services S360-Arm: dedicated_skill S360-Action-Items: 0f27291c-bc52-49fa-a978-7b4a9c362107:47a034ea-dc7f-4eee-8a18-567a05a98c1f Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0b1d2a96-1af9-41af-aa4e-dd385a363450
[AI-Native] PR Code Quality AssessmentQuality: 🟢A Code QualityWhat's done well:
Human decisions required:
Potential Issues
Recommendations
Assessment performed by |
There was a problem hiding this comment.
Pull request overview
Configures Azure Pipelines to restore npm dependencies through the authenticated internal CFS feed while preserving public defaults elsewhere.
Changes:
- Adds the pipeline-only internal npm configuration.
- Authenticates and passes it to both npm build steps.
- Enables the release pipeline’s required network policy.
Reviewed changes
Copilot reviewed 4 out of 4 changed files in this pull request and generated no comments.
| File | Description |
|---|---|
.pipelines/internal-npmrc |
Defines the internal Azure Artifacts registry. |
.pipelines/templates/build.yaml |
Passes the npm configuration to npm-consuming tasks. |
.pipelines/ci.yml |
Authenticates the feed for CI builds. |
.pipelines/release.yml |
Adds feed authentication and the network policy. |
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
Move the pipeline-only npm feed config to a root .npmrc before authentication so npmAuthenticate@0 accepts it and npm discovers it naturally. Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0b1d2a96-1af9-41af-aa4e-dd385a363450
Build Metrics ReportBinary Sizes
Test Results✅ 4218 passed, 5 skipped out of 4223 tests in 547.0s (-102.8s vs. baseline) Test Coverage✅ 93% line coverage, 87.2% branch coverage · ✅ no change vs. baseline CLI Startup Time50ms median (x64, Try This BuildInstalls the MSIX for your architecture, replacing any previously installed build. Needs the GitHub CLI — the command offers to install it and sign you in if it is missing. & ([scriptblock]::Create((irm https://raw.githubusercontent.com/microsoft/winappCli/main/scripts/winapp-pr.ps1))) 715Switching between builds often?Put the tool on your PATH once: & ([scriptblock]::Create((irm https://raw.githubusercontent.com/microsoft/winappCli/main/scripts/winapp-pr.ps1))) -AddToPathThen this build is just: winapp-pr 715Run Updated 2026-08-05 21:21:40 UTC · commit |
Apply the CFS endpoint policy to the PR validation pipeline so remaining public feed access fails before the release pipeline. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0b1d2a96-1af9-41af-aa4e-dd385a363450
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0b1d2a96-1af9-41af-aa4e-dd385a363450
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0b1d2a96-1af9-41af-aa4e-dd385a363450
Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com> Copilot-Session: 0b1d2a96-1af9-41af-aa4e-dd385a363450
Summary - enable the
Permissive,CFSCleannetwork-isolation policy for the release pipeline - authenticate an ADO-only npm configuration against thepde-oss_InternalAzure Artifacts feed - move the pipeline-only npm config to a root.npmrcduring ADO execution and authenticate it before the build - preserve public npm defaults for external contributors and local builds ## Why The project is open source, so a default clone must restore from public feeds without Microsoft credentials. The private feed configuration is stored as.pipelines/release-npmrcand moved to the repository-root.npmrconly by Azure Pipelines, matching the existing NuGet pattern. Source manifests, lockfiles, scripts, and developer npm configuration remain unchanged. ## Validation - fresh-confignpm ci --ignore-scripts --no-audit --no-fundcompleted usingregistry.npmjs.org- the pipeline-only npm configuration resolves to the authenticated Azure Artifacts registry - both modified pipeline YAML files parse successfully - the generated four-file patch applies cleanly to the original base commit