Files
vscode/product.json
João Moreno 0b56f62682 Remove distro PAT (#322052)
* build: derive GitHub token from Monaco GitHub App instead of PAT

Replace the github-distro-mixin-password PAT (subject to 7-day rotation)
with a GitHub App installation token extracted from the persisted checkout
credentials. The token is republished under the same variable name to avoid
churning the many GITHUB_TOKEN consumers, and the distro netrc auth now uses
the x-access-token login.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: probe vscode-distro checkout via Monaco GitHub App endpoint

Reverts the failed token-extraction approach (1ES persists only a credential
placeholder, so the GitHub App token cannot be read from disk).

Instead validate Option A: add microsoft/vscode-distro as a pipeline repository
resource authenticated via the Monaco GitHub App endpoint, then check out the
exact pinned SHA locally. This probe job confirms the agent can authenticate the
distro checkout and that a local `git checkout <sha>` resolves the pinned commit.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: check out vscode-distro via Monaco GitHub App instead of PAT

Replace the PAT-based zipball download of the private microsoft/vscode-distro
repository with an agent-authenticated checkout of the distro repository
resource (Monaco GitHub App). The distro is checked out into .build/distro and
the pinned commit from package.json is checked out locally, preserving the
existing contract for mixin-npm.ts / mixin-quality.ts.

Self is pinned to the default sources directory so the added distro checkout
does not relocate it.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: route vscode-capi and vscode-encrypt through Monaco GitHub App

The github-distro-mixin-password PAT was also (via netrc) authenticating two
other private repositories that are no longer reachable once the netrc is gone:

- vscode-capi: cloned by common/mixin-vscode-capi.yml. Now checked out as a
  Monaco GitHub App repository resource and consumed from .build/vscode-capi.
- vscode-encrypt: a cargo git dependency injected by the distro cli-patches.
  Checked out via the Monaco GitHub App and redirected with git insteadOf to the
  local checkout so cargo (CARGO_NET_GIT_FETCH_WITH_CLI) resolves it without a PAT.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: also route vsda cargo dependency through Monaco GitHub App

The distro cli-patches inject both vscode-encrypt and vsda as private cargo git
dependencies. Add vsda as a Monaco GitHub App repository resource and redirect it
to a local checkout via git insteadOf, mirroring the vscode-encrypt handling.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: drop github-distro-mixin-password PAT

Replace the broad github-distro-mixin-password PAT with:
- Monaco GitHub App repo-resource checkouts for private repos
  (vscode-distro, vscode-capi, vscode-encrypt, vsda)
- the public github-token-code-oss secret (vscode-oss-build-secrets
  keyvault) for generic GITHUB_TOKEN rate-limit usages

Copilot now checks out vscode-capi via the Monaco App instead of a
netrc clone; checkDistroCommit derives the distro branch head from the
local checkout instead of the private GitHub API.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: check out vscode-extensions-loc via Monaco App

The copilot l10n import cloned the private microsoft/vscode-extensions-loc
repository with the distro PAT. Replace it with a Monaco GitHub App
repo-resource checkout (sparse) so no PAT is needed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: download prebuilt Electron from Azure Artifacts feed

Replaces the private GitHub release download (which required the
github-distro-mixin-password PAT) with an on-demand fetch from the
vscode-electron-prebuilt Azure Artifacts feed, via the new asset-resolver
support in @vscode/gulp-electron 1.42.0.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: resolve private vsda/vscode-encrypt git deps via local checkouts

The distro's npm postinstall and the CLI cargo patches both depend on the
private microsoft/vsda and microsoft/vscode-encrypt repositories. Now that the
distro PAT/.netrc is gone, redirect their public GitHub URLs (https and ssh) to
local GitHub App checkouts via git insteadOf in download-distro.yml so every job
that consumes the distro can resolve them without a PAT.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: download Alpine musl Node.js from Azure Artifacts feed

The Alpine build downloaded the musl Node.js tarball from the private
microsoft/vscode-node GitHub releases, which the public github-token-code-oss
cannot access. Consume the new vscode-node Azure Artifacts feed via
az artifacts universal download instead (authenticated with System.AccessToken),
mirroring the Electron prebuilt download.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: resolve private vscode-regexp-languagedetection git dep via local checkout

The distro's npm dependencies reference microsoft/vscode-regexp-languagedetection
in addition to microsoft/vsda. Check it out via the Monaco GitHub App and redirect
its public GitHub URL (https and ssh) to the local checkout so the distro npm
postinstall resolves it without a PAT.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: download server Node.js from Azure Artifacts feed

Fetch the prebuilt server (reh) Node.js binaries on demand from the
vscode-node Azure Artifacts feed (gated on VSCODE_NODEJS_INTERNAL_FEED)
instead of from a private GitHub release, so the build no longer needs a
long-lived PAT. Extracts the shared az universal-package download helper
into build/lib/azureFeed.ts, reused by the Electron resolver. Bumps the
server node ms_build_id to 449655 to match the feed.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: resolve distro private git deps inside the Alpine container

The Alpine server build installs the distro's npm dependencies (which
reference the private vsda and vscode-regexp-languagedetection git repos)
inside a docker container. The host git insteadOf redirects are not
visible there and use host paths, so emit a container-pathed gitconfig
(.build/.gitconfig-distro) from download-distro.yml and bind-mount it as
/root/.gitconfig, replacing the now-unused .netrc mount.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: use Electron/Node feeds job-wide and fix cmd.exe git redirect

Promote VSCODE_ELECTRON_PREBUILT_FEED, VSCODE_NODEJS_INTERNAL_FEED and
AZURE_DEVOPS_EXT_PAT to job-level variables so every step (including the
integration/smoke test steps that download Electron) resolves binaries
from our Azure Artifacts feeds instead of private GitHub releases.

Also keep the cross-platform private git redirect step to plain 'git
config' invocations so it works in cmd.exe on Windows agents, and move
the bash-only container gitconfig generation into a Linux-only step.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: pin server Node.js to build 438265 to match distro checksums

The distro overlays build/checksums/nodejs.txt with checksums for the
original 24.15.0-438265 Node.js build (including the Alpine musl binary,
whose contents differ from later rebuilds). Republish the original
438265 artifacts to the vscode-node Azure Artifacts feed and pin
ms_build_id back to 438265 so feed downloads match the pinned checksums.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: require ADO org/project from pipeline env vars

Resolve the Azure Artifacts organization and project from the
SYSTEM_COLLECTIONURI / SYSTEM_TEAMPROJECT pipeline variables (the
predefined System.CollectionUri / System.TeamProject), failing fast if
either is missing instead of falling back to hardcoded values.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: remove internal feed variables for Node.js and Electron from build configurations

* build: scope AZURE_DEVOPS_EXT_PAT to individual steps

Move the System.AccessToken propagation out of the job-level variables in
the alpine/darwin/linux/win32 product-build jobs and onto only the steps
that actually download Electron or Node.js from the Azure Artifacts feeds.
Adds it to the test 'Download Electron and Playwright' step (the sole feed
download outside the compile templates); every other download step already
declared it at step scope.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* :lipsitck:

* update distro

* build: declare vscode-capi for SDL scan in copilot recovery pipeline

The Copilot build steps now check out microsoft/vscode-capi via the Monaco
GitHub App (instead of a PAT). The product-copilot-recovery pipeline extends
the 1ES extension template, which requires every checked-out repository to be
declared under sdl.sourceRepositoriesToScan. Re-declare the template's default
excludes plus capi to fix 'repository "capi" ... has not been specified'.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* refactor: add assertDistroCheckout function to validate vscode-distro checkout

* build: fix NPM registry corruption in copilot recovery pipeline

setup-npm-registry.ts silently substituted the literal string "undefined"
into package-lock.json resolved URLs when invoked without a registry URL,
producing build/undefined<pkg>/... paths that npm ci could not resolve.

- Fail fast in setup-npm-registry.ts when no registry URL is provided.
- Set NPM_REGISTRY=none in product-copilot-recovery.yml so the shared
  copilot/setup-steps.yml skips its registry rewrite; the 1ES extension
  template already configures the registry via customNPMRegistry.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: fix self checkout and l10n in copilot recovery pipeline

The 1ES extension template's package job runs import-localized-files before
buildSteps, relying on an implicit self checkout. That implicit checkout is
disabled because copilot/build-steps.yml checks out microsoft/vscode-capi,
so the source tree was missing and the l10n-detection step failed with
'Not found workingDirectory: .../extensions/copilot'.

Mirror product-copilot.yml: check out self at the start of buildSteps, import
translations via copilot/l10n-steps.yml (with the vscode_loc resource), and
disable the template's own l10n jobs/import (l10nShouldProcess: false).

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: exclude vscode build-tooling natives from copilot recovery GLIBC check

The 1ES extension template's GLIBC/GLIBCXX check scans every .node under the
sources root, but only extensions/copilot is packaged into the VSIX. Native
modules outside it (e.g. build/node_modules/tree-sitter) belong to the vscode
build tooling and are never shipped, yet their newer GLIBC/GLIBCXX deps fail
the check. Remove them before the check so it only validates the copilot
extension's own shipped natives, alongside the existing pvrecorder removal.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* build: disable sysroot GLIBC check in copilot recovery pipeline

The copilot extension is bundled with esbuild and vendors prebuilt native
modules (@os-theme, @picovoice/pvrecorder-node) that depend on a newer GLIBC
than the 1ES template's sysroot check allows. The main product build ships
these natives without a sysroot or GLIBC check, so set useSysroot: false on the
recovery pipeline's Linux platform for parity, which skips the toolchain setup
and the GLIBC/GLIBCXX verification. Drop the now-unnecessary native-removal
workaround.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* fix: update distro version in package.json

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-06-23 07:22:42 +00:00

241 lines
7.5 KiB
JSON

{
"nameShort": "Code - OSS",
"nameLong": "Code - OSS",
"applicationName": "code-oss",
"dataFolderName": ".vscode-oss",
"sharedDataFolderName": ".vscode-oss-shared",
"win32MutexName": "vscodeoss",
"licenseName": "MIT",
"licenseUrl": "https://github.com/microsoft/vscode/blob/main/LICENSE.txt",
"serverLicenseUrl": "https://github.com/microsoft/vscode/blob/main/LICENSE.txt",
"serverGreeting": [],
"serverLicense": [],
"serverLicensePrompt": "",
"serverApplicationName": "code-server-oss",
"serverDataFolderName": ".vscode-server-oss",
"tunnelApplicationName": "code-tunnel-oss",
"win32DirName": "Microsoft Code OSS",
"win32NameVersion": "Microsoft Code OSS",
"win32RegValueName": "CodeOSS",
"win32x64AppId": "{{D77B7E06-80BA-4137-BCF4-654B95CCEBC5}",
"win32arm64AppId": "{{D1ACE434-89C5-48D1-88D3-E2991DF85475}",
"win32x64UserAppId": "{{CC6B787D-37A0-49E8-AE24-8559A032BE0C}",
"win32arm64UserAppId": "{{3AEBF0C8-F733-4AD4-BADE-FDB816D53D7B}",
"win32AppUserModelId": "Microsoft.CodeOSS",
"win32ShellNameShort": "C&ode - OSS",
"win32TunnelServiceMutex": "vscodeoss-tunnelservice",
"win32TunnelMutex": "vscodeoss-tunnel",
"darwinBundleIdentifier": "com.visualstudio.code.oss",
"darwinProfileUUID": "47827DD9-4734-49A0-AF80-7E19B11495CC",
"darwinProfilePayloadUUID": "CF808BE7-53F3-46C6-A7E2-7EDB98A5E959",
"linuxIconName": "code-oss",
"licenseFileName": "LICENSE.txt",
"reportIssueUrl": "https://github.com/microsoft/vscode/issues/new",
"nodejsArtifactFeed": "",
"electronArtifactFeed": "",
"urlProtocol": "code-oss",
"agentsTelemetryAppName": "agents",
"webviewContentExternalBaseUrlTemplate": "https://{{uuid}}.vscode-cdn.net/insider/ef65ac1ba57f57f2a3961bfe94aa20481caca4c6/out/vs/workbench/contrib/webview/browser/pre/",
"builtInExtensions": [
{
"name": "ms-vscode.js-debug-companion",
"version": "1.1.3",
"sha256": "7380a890787452f14b2db7835dfa94de538caf358ebc263f9d46dd68ac52de93",
"repo": "https://github.com/microsoft/vscode-js-debug-companion",
"metadata": {
"id": "99cb0b7f-7354-4278-b8da-6cc79972169d",
"publisherId": {
"publisherId": "5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",
"publisherName": "ms-vscode",
"displayName": "Microsoft",
"flags": "verified"
},
"publisherDisplayName": "Microsoft"
}
},
{
"name": "ms-vscode.js-debug",
"version": "1.117.0",
"sha256": "854eeb8a785b1f41ba2bd02d7ccd4fdbe10021b61473293973c7e96d036c7fb8",
"repo": "https://github.com/microsoft/vscode-js-debug",
"metadata": {
"id": "25629058-ddac-4e17-abba-74678e126c5d",
"publisherId": {
"publisherId": "5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",
"publisherName": "ms-vscode",
"displayName": "Microsoft",
"flags": "verified"
},
"publisherDisplayName": "Microsoft"
}
},
{
"name": "ms-vscode.vscode-js-profile-table",
"version": "1.0.10",
"sha256": "7361748ddf9fd09d8a2ed1f2a2d7376a2cf9aae708692820b799708385c38e08",
"repo": "https://github.com/microsoft/vscode-js-profile-visualizer",
"metadata": {
"id": "7e52b41b-71ad-457b-ab7e-0620f1fc4feb",
"publisherId": {
"publisherId": "5f5636e7-69ed-4afe-b5d6-8d231fb3d3ee",
"publisherName": "ms-vscode",
"displayName": "Microsoft",
"flags": "verified"
},
"publisherDisplayName": "Microsoft"
}
}
],
"defaultChatAgent": {
"extensionId": "GitHub.copilot",
"chatExtensionId": "GitHub.copilot-chat",
"chatExtensionOutputId": "GitHub.copilot-chat.GitHub Copilot Chat.log",
"chatExtensionOutputExtensionStateCommand": "github.copilot.debug.extensionState",
"documentationUrl": "https://aka.ms/github-copilot-overview",
"termsStatementUrl": "https://aka.ms/github-copilot-terms-statement",
"privacyStatementUrl": "https://aka.ms/github-copilot-privacy-statement",
"skusDocumentationUrl": "https://aka.ms/github-copilot-plans",
"publicCodeMatchesUrl": "https://aka.ms/github-copilot-match-public-code",
"managePlanUrl": "https://aka.ms/github-copilot-manage-plan",
"upgradePlanUrl": "https://aka.ms/github-copilot-upgrade-plan",
"signUpUrl": "https://aka.ms/github-sign-up",
"provider": {
"default": {
"id": "github",
"name": "GitHub"
},
"enterprise": {
"id": "github-enterprise",
"name": "GHE"
},
"google": {
"id": "google",
"name": "Google"
},
"apple": {
"id": "apple",
"name": "Apple"
}
},
"providerExtensionId": "vscode.github-authentication",
"providerUriSetting": "github-enterprise.uri",
"providerScopes": [
[
"read:user",
"user:email",
"repo",
"workflow"
],
[
"user:email"
],
[
"read:user"
]
],
"entitlementUrl": "https://api.github.com/copilot_internal/user",
"entitlementSignupLimitedUrl": "https://api.github.com/copilot_internal/subscribe_limited_user",
"chatQuotaExceededContext": "github.copilot.chat.quotaExceeded",
"completionsQuotaExceededContext": "github.copilot.completions.quotaExceeded",
"walkthroughCommand": "github.copilot.open.walkthrough",
"completionsMenuCommand": "github.copilot.toggleStatusMenu",
"chatRefreshTokenCommand": "github.copilot.refreshToken",
"generateCommitMessageCommand": "github.copilot.git.generateCommitMessage",
"resolveMergeConflictsCommand": "github.copilot.git.resolveMergeConflicts",
"completionsAdvancedSetting": "github.copilot.advanced",
"completionsEnablementSetting": "github.copilot.enable",
"nextEditSuggestionsSetting": "github.copilot.nextEditSuggestions.enabled",
"tokenEntitlementUrl": "https://api.github.com/copilot_internal/v2/token",
"mcpRegistryDataUrl": "https://api.github.com/copilot/mcp_registry",
"managedSettingsUrl": "https://api.github.com/copilot_internal/managed_settings"
},
"trustedExtensionAuthAccess": {
"github": [
"GitHub.copilot-chat"
],
"github-enterprise": [
"GitHub.copilot-chat"
]
},
"onboardingKeymaps": [
{
"id": "vscode",
"label": "VS Code",
"description": "Default keyboard mapping"
},
{
"id": "sublime",
"label": "Sublime Text",
"extensionId": "ms-vscode.sublime-keybindings",
"description": "Keyboard mapping from Sublime Text"
},
{
"id": "intellij",
"label": "IntelliJ / JetBrains",
"extensionId": "k--kato.intellij-idea-keybindings",
"description": "Keyboard mapping from IntelliJ IDEA"
},
{
"id": "vim",
"label": "Vim",
"extensionId": "vscodevim.vim",
"description": "Vim modal editing"
},
{
"id": "eclipse",
"label": "Eclipse",
"extensionId": "alphabotsec.vscode-eclipse-keybindings",
"description": "Keyboard mapping from Eclipse"
},
{
"id": "notepadpp",
"label": "Notepad++",
"extensionId": "ms-vscode.notepadplusplus-keybindings",
"description": "Keyboard mapping from Notepad++"
}
],
"onboardingThemes": [
{
"id": "dark-2026",
"label": "Dark 2026",
"themeId": "Dark 2026",
"type": "dark"
},
{
"id": "hc-dark",
"label": "Dark High Contrast",
"themeId": "Default High Contrast",
"type": "hcDark"
},
{
"id": "solarized-dark",
"label": "Solarized Dark",
"themeId": "Solarized Dark",
"type": "dark"
},
{
"id": "light-2026",
"label": "Light 2026",
"themeId": "Light 2026",
"type": "light"
},
{
"id": "hc-light",
"label": "Light High Contrast",
"themeId": "Default High Contrast Light",
"type": "hcLight"
},
{
"id": "solarized-light",
"label": "Solarized Light",
"themeId": "Solarized Light",
"type": "light"
}
],
"builtInExtensionsEnabledWithAutoUpdates": [
"GitHub.copilot-chat"
],
"sessionsWindowAllowedExtensions": [],
"voiceWsUrl": "wss://falcon-caas.mai.microsoft.com/voice-code/api/v1/realtime/voice"
}