Files
TylerLeonhardtandCopilot e9cfa3dce9 [4/4] authentication: enable multiple configured enterprise hosts (#338080)
* authentication: enable multiple configured enterprise hosts

Enable unordered enterprise host configuration, host-qualified account selection, and the extension-owned sign-in picker on top of the reviewed engine lifecycle and credential storage layers. Wire trust-aware enrollment and retain the complete eligible session list for platform account preferences.

Part of #277435.

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

* authentication: restore enterprise URL correction during setup

Validate configured instance URLs before starting authentication. Reuse enterprise input parsing across setup and onboarding, allow cloud and server URLs, and replace only the selected invalid entry while preserving current hosts. Cover cancellation, multiple corrections, keyboard focus, and changes made while the prompt is open.

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

* authentication: use the legacy enterprise setting in web builds

Default the enterprise enrollment setting to github-enterprise.uri when browser product metadata omits it. An empty key reads the whole configuration object and broke the legacy-only correction test in every browser CI job. Verified the failure before the fix and the affected suites in Chromium, WebKit and Electron afterward.

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

* authentication: preserve native enterprise session identities

Remove facade ID prefixes and session rewriting. Create account labels in the host engine, showing the instance only for multiple configured hosts and updating cached presentation without recreating engines or rewriting usernames in storage. Route native IDs using session provenance and cached ownership, preserve broker flows, and cover colliding account IDs through core RPC tests. Use async/await for configuration refresh error handling.

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

* chat: keep Copilot enterprise enrollment on GHE.com

Restore GHE.com-only names and HTTPS URLs in Copilot setup and onboarding, including their examples and validation messages. Keep the generic enterprise authentication provider and configured-URI validation compatible with GHES, and preserve correction and cancellation behavior.

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

* chat: enroll a cloud instance when only GHES is configured

Require a GHE.com instance before proceeding with Copilot setup while leaving existing GHES authentication configuration intact. Cover both the quick-input and onboarding paths without choosing a default host.

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

* authentication: keep enterprise account labels stable

Always include the host in enterprise account labels under the fixed GitHub Enterprise provider label. Derive the label suffix once from the engine host and remove the suffix setter, cached relabeling and host-count flags. Preserve native IDs, stored usernames and public GitHub labels; verify menu labels across host additions and removals.

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

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-09-30 12:54:34 -07:00
..

GitHub Authentication for Visual Studio Code

Notice: This extension is bundled with Visual Studio Code. It can be disabled but not uninstalled.

Features

This extension provides support for authenticating to GitHub. It registers the github Authentication Provider that can be leveraged by other extensions. This also provides the GitHub authentication used by Settings Sync.

GitHub Enterprise

For GitHub Enterprise Cloud (GHE.com) or GitHub Enterprise Server, add your instance URLs to your settings:

{
	"github-enterprise.uris": [
		"https://octocat.ghe.com",
		"https://github.example.com"
	]
}

The list order does not select a default instance. When signing in without a specific instance, you can choose from your configured instances.

The github-enterprise.uris setting replaces the deprecated github-enterprise.uri. If the list is not set, the older setting still applies. An explicitly empty list ([]) configures no enterprise instances.

Use Manage Extension Account Preferences... to choose which account an extension uses, or Use a new account... to sign in to another instance. Enterprise account labels always include their host, such as octocat - octocat.ghe.com, even when only one instance is configured.

Removing an instance hides its accounts without deleting saved sign-ins. You may be asked to select your enterprise account again after this update.

Workspace and folder instance settings only apply in trusted workspaces.

GitHub.com accounts do not need this setting.